Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/DJERLO/Simple-Discord-Music-Bot-Using-Nextcord/llms.txt

Use this file to discover all available pages before exploring further.

Simple Discord Music Bot brings studio-quality music playback to any Discord server. Powered by Lavalink for offloaded audio processing and Wavelink for async streaming, the bot supports YouTube search, full playlist queuing, and an interactive paginated queue browser — all through Discord’s native slash command interface.

Quickstart

Get the bot running in your server in under 10 minutes.

Configuration

Configure your bot token, Lavalink credentials, and audio sources.

Command Reference

Explore all 11 slash commands for playback, queue, and utilities.

Architecture

Understand how Nextcord, Wavelink, and Lavalink work together.

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 /play command
  • 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

Create a virtual environment and run pip install -r requirements.txt.
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 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.

Build docs developers (and LLMs) love