A feature rich Discord music bot built with discord.py. Supports YouTube, Spotify, and everything else yt-dlp/ supports with a fully interactive music player, queue management, playlists, radio sessions, voting system, deep and highly configurable multi guild supported all with slash commands.
- Spotify playback - Spotify links are supported, bot will search them in YouTube to play since its copyright protected.
- Interactive Music Player - A persistent embed with buttons for customizable controls for playback.
- Queue system - Up to 10,000 tracks per queue with paginated view, search, go-to-page.
- Playlist system - Per user saved playlists which highly customizable, share, import and export support.
- Radio mode - Endless radio sessions based on a seed track using YouTube Music's recommendation mix.
- Voting system - Democratic control: regular users vote on actions while DJs and admins can act immediately.
- Per server settings - Extensive configuration through an interactive
/settingspanel. - Localization - 31 locale files with full support for translating all user-facing strings, command names, and descriptions.
- Persistent views - Music player and queue views survive bot restarts.
- SQLite database - All settings and playlists stored locally with WAL mode.
- Lightweight intents - Only requires
guildsandvoice_statesintents. - Auto-updates - Both pip packages and bot itself has auto update capabilites can be set with intervals or fixed time.
- Setup Guide - Requirements, installation, configuration, Spotify setup, troubleshooting
- Commands & Features - All commands, settings, permission system, vote system, radio system
- Localization Guide - Adding and editing locale files
Requires Python 3.10+, FFmpeg, and a JS runtime (deno, node, quickjs, or quickjs-ng).
Clone the repo or download a zip/tar.gz from the latest release.
git clone https://github.com/wuuthradd/Discord-Music-Bot.git
cd Discord-Music-Bot
# Fill in your bot token in env-template, then:
chmod +x setup-update.sh
./setup-update.sh
./run_bot.shSee the Setup Guide for detailed instructions.
Most Discord music bots use Lavalink, a standalone Java audio server. This bot uses yt-dlp + FFmpeg directly instead. The main reason is source support, yt-dlp supports over 1,800 sites out of the box. Any URL that yt-dlp can extract audio from works as a playback source, with no plugins or extra configuration needed. Discord links, SoundCloud, Bandcamp, anything that yt-dlp can extract excluding copyright protected can be a track to play.
If you run into a bug, please open an issue using the bug report template. It asks for your environment details, bot configuration and steps to reproduce so we can diagnose the problem quickly. You can also open a blank issue for general questions and feature requests but don't be vague about them.