What the Bot Does
Simple Discord Music Bot handles the full music lifecycle — from joining a voice channel to cleaning up embeds after the last track ends. Key capabilities include:- Lavalink audio backend — offloads decoding and streaming to a dedicated Java node, keeping the Python process lightweight
- YouTube & SoundCloud search — find tracks by name or paste a direct URL
- Playlist support — enqueue entire playlists in a single
/playcommand - Paginated queue browser — session-locked interactive embed with Prev/Next buttons, showing 10 tracks per page
- Live Now Playing embeds — auto-updating embed that edits in place as tracks change, then self-deletes when the queue ends
- Presence sync — bot status reflects the current track title, artist, and live timestamps
Getting Started
1
Start the Lavalink node
Run
docker compose up -d to spin up the pre-configured Lavalink container.2
Install Python dependencies
Run
uv sync from the project root to install runtime and development dependencies.3
Configure your bot token
Create a
.env file at the project root and set BOT_TOKEN=your_token_here.4
Run the bot
Execute
uv run python bot.py — the bot registers all slash commands on startup and connects to Lavalink automatically.Lavalink must be running before you start
bot.py. The bot connects to the node during the on_ready event, and playback commands will fail if the connection is unavailable.Related Topics
Quickstart
Follow the setup path from clone to first playback.
Configuration
Review the bot token, Lavalink, and permission settings.
Install Uv
Install Uv Package Manager for dependency management in your project.
Playback Commands
Dive into the slash commands that power the music experience.