A self-hosted Discord bot that uses YT-DLP to play audio from YouTube, Spotify, direct links, and livestreams in your Discord voice channels.
- Multi-platform support (YouTube, Spotify, direct links)
- High-quality audio streaming
- Livestream support
- Playlist support
- Basic controls (play, pause, skip)
- Queue management
- Loop mode with count option
- Shuffle functionality
- Real-time track information
- YouTube search integration
- Spotify playlist parsing
- Genius lyrics integration
- Automatic FFmpeg setup
- Configurable auto-leave
- Download cleanup
- Role-based permissions
- Configurable command prefix
- Detailed logging system
- Auto-updates capability
⚠️ Note: This bot is currently in development. While functional, it's recommended for use on a single private Discord server only.
- Install Python 3.8+
- Run
pip install -r requirements.txt
- Rename
.env.example
to.env
and add your Discord token - Run
python bot.py
-
Python Installation
- Install Python 3.8 or higher
- Verify installation:
python --version
-
Dependencies
pip install -r requirements.txt
-
Discord Bot Token
- Rename
.env.example
to.env
- Add your token:
DISCORD_TOKEN=your_token_here
- Rename
-
Configuration
- Edit
config.json
to set:- Owner ID
- Command Prefix
- Permissions
- Autoleave
- Default Volume
- Auto Clear Downloads
- Log Level
- UI Buttons
- Edit
-
Spotify Integration
- Rename
.spotifyenv.example
to.spotifyenv
- Add credentials:
SPOTIPY_CLIENT_ID=your_client_id_here SPOTIPY_CLIENT_SECRET=your_client_secret_here
- Get credentials from Spotify Developer Dashboard
- Rename
-
Genius Lyrics
- Edit
.geniuslyrics
(created on first startup) - Add your Genius API credentials
- Edit
-
YouTube Authentication
- Install Get Cookies.txt extension
- Export cookies and place in root directory
- Learn more about cookies setup
!play [URL/search]
- Play audio from URL or search!search [term]
- Search YouTube for a song!pause
- Pause playback!resume
- Resume playback!stop
- Stop and clear queue!skip
- Skip current track!replay
- Replay current track!random
- Searches for a random song on YouTube!loop [count]
- Toggle loop mode (optional count)!nowplaying
- Show current track info
!queue
- Show queue!clear
- Clear entire queue!clear [position]
- Remove specific track!shuffle
- Shuffle queue
!join
/!summon
- Join your channel!leave
/!disconnect
- Leave channel
!lyrics
- Get lyrics for current song
!alias [add/remove/list]
- Manage aliases!ping
- Show bot status!version
- Show bot version!log
- Log current context!restart
- Restart bot (Owner)!logclear
- Clear logs (Owner)!update
- Update bot files (Owner)!help
- Show all commands
-
FFmpeg Issues:
- Windows: Relaunch after first install
- macOS: Manual placement in root directory
- Linux: Automatic installation
-
YouTube Sign-In Error/403 Error: Check/update cookies.txt
-
Known Limitations:
- ❌ Multiple server support (WIP)
- Python 3.8+
- FFmpeg
- Stable internet connection
- Discord Bot Token