What the Bot Does
When a user runs/play in a Discord server, the bot searches YouTube or SoundCloud for the requested song, adds it to a per-guild queue, and streams the audio through a Lavalink node into the voice channel. As each track plays, the bot posts a live “Now Playing” rich embed and updates its own Discord presence with the track title, artist, and a live timestamp. When the queue is exhausted the bot cleans up its embed, resets its presence, and disconnects — no manual cleanup needed.
Key Features
- Lavalink audio backend — audio decoding and streaming are handled by a dedicated Java process, keeping the Python bot lightweight and stable
- 18 slash commands —
/play,/join,/queue,/nowplaying,/ping,/help,/voteskip,/skip,/pause,/resume,/stop,/volume,/loop,/autoplay,/clearqueue,/shuffle,/previous, and/remove - YouTube and SoundCloud search — search by name or paste a direct URL; both video and playlist URLs are supported
- Playlist support — adding a playlist URL enqueues all tracks at once and reports the playlist name and track count
- Paginated queue browser — the
/queuecommand opens an interactive, session-locked pagination view so users can browse long queues without flooding the channel - Live Now Playing embeds — a persistent embed in the voice channel updates automatically when each new track starts and deletes itself when the queue ends
- Automated presence sync — the bot’s Discord status reflects the currently playing track, including live start/end timestamps
How the Pieces Fit Together
You issue a slash command in Discord. Nextcord receives it in the modular startup path and delegates the playback logic tocogs/music_commands.py, while cogs/events.py manages the live player UI and queue lifecycle. Wavelink forwards the request to the Lavalink node (a Java process running inside Docker). Lavalink fetches the audio from the source, decodes it, and streams it directly into the Discord voice channel — the Python process never touches raw audio data.
Technology Stack
Explore the Docs
Quickstart
Get the bot running in minutes — clone, configure, and play your first song.
Configuration
Customize environment variables, Lavalink connection settings, and bot permissions.
Lavalink Setup
Deep-dive into running and tuning the Lavalink Docker node.
Playback Commands
Full reference for every slash command the bot exposes.