Building KithWave
A project note on KithWave, a Discord music bot built around music playback, live radio, queue controls, Spotify metadata, and server-friendly controls.
KithWave is a Discord music bot built for my own server. The goal was to make a bot that could handle the music features I actually wanted: playing music from YouTube search or URLs, managing a server queue, supporting live radio, importing playlist-style content, and giving people simple playback controls without needing a complicated interface. The bot uses prefix commands and a now-playing panel with buttons for common actions like pause, skip, stop, queue, volume changes, shuffle, and lyrics. That matters because music bots are easier to use when the controls are visible instead of hidden behind command memorization. One of the more useful parts of KithWave is the radio system. It supports a preset dropdown, quick-play radio by preset name, station lookup, and direct stream URLs. Radio presets can be managed through a JSON file, then reloaded without turning the whole idea into a giant admin panel. KithWave also supports Spotify links, but it does not stream Spotify audio directly. Instead, Spotify metadata is resolved into playable sources. That keeps the bot focused on practical playback while still making Spotify links useful for discovery and queue building. The stack is simple and direct: Python, discord.py, yt-dlp for extraction, ffmpeg for audio, and spotipy for Spotify metadata. It also includes optional Windows launcher files to make running it easier on a local machine. The biggest lesson from KithWave is that a useful bot does not need to be massive. It needs to solve the right problem cleanly. In this case, that problem was giving a Discord server reliable music, radio, queue control, and simple interaction without overcomplicating the experience. Next steps for KithWave include slash-command versions of the core controls, better tests around URL and query handling, and improved reconnect behavior after voice disconnects.