A powerful, feature-rich Discord music bot that streams high-quality music from Tidal to your Discord server.
- π΅ TidalCord
- π΅ High-Quality Streaming: Stream lossless music from Tidal directly to Discord
- π Smart Track Resolution: Automatically find Tidal tracks from YouTube links, Spotify URLs, or search queries
- ποΈ Advanced DSP Effects: Built-in equalizer, bass boost, reverb, and convolution reverb (IR files)
- π€ Voice Commands: Control the bot with voice commands using Whisper AI
- π± Cross-Platform: Works on Windows, Linux, and macOS
- πΎ Smart Caching: Intelligent caching system with automatic cleanup
- π Queue Management: Advanced queue features with looping, shuffling, and history
- π Last.fm Integration: Automatic scrobbling and now-playing updates
- ποΈ Real-time Controls: Seek, volume control, and live playback adjustments
- π€ Auto-DJ: Intelligent playlist continuation when queue is empty
TidalCord may violate the terms of service of Tidal, YouTube, and/or other third-party services. By using this software, you accept full responsibility for any potential issues, including account bans or other consequences. The maintainers of this project are not responsible for any misuse or violations of third-party terms of service.
- Python 3.8+ (Download)
- FFmpeg (Download)
- Tidal Premium Account (required for streaming)
- Discord Bot Token (Create one here)
-
Clone the repository:
git clone https://github.com/MrSpookyAngel/TidalCord.git cd TidalCord -
Create a virtual environment:
python -m venv venv # On Windows: venv\Scripts\activate # On Linux/macOS: source venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt
-
Get your Discord bot token:
- Go to Discord Developer Portal
- Create a new application
- Go to "Bot" section and create a bot
- Copy the token
-
Configure the bot:
- Copy
config.jsonand modify settings as needed - The bot will prompt for your Discord token on first run
- Copy
-
Run the bot:
python main.py
-
Authenticate with Tidal:
- The bot will display an authentication URL
- Visit the URL and log into your Tidal Premium account
- Enter the authorization code when prompted
-
Invite the bot to your server:
- Use the OAuth2 URL generator in Discord Developer Portal
- Give the bot these permissions:
- Send Messages
- Use Slash Commands
- Connect
- Speak
- Use Voice Activity
| Command | Description | Example |
|---|---|---|
!play <query> |
Play music from Tidal, YouTube, or search | !play despacito |
!pause |
Pause current playback | !pause |
!resume |
Resume playback | !resume |
!skip |
Skip current track | !skip |
!stop |
Stop playback and clear queue | !stop |
!queue |
Show current queue | !queue |
!nowplaying |
Show current track info | !nowplaying |
!volume <0-100> |
Set playback volume | !volume 75 |
| Command | Description | Example |
|---|---|---|
!seek <time> |
Seek to specific time | !seek 2:30 |
!loop |
Toggle single track loop | !loop |
!loopqueue |
Toggle queue loop | !loopqueue |
!shuffle |
Shuffle the current queue | !shuffle |
!clear |
Clear the queue | !clear |
!favorites |
Show your favorite tracks | !favorites |
!history |
Show recently played tracks | !history |
| Command | Description | Example |
|---|---|---|
!eq <band> <gain> |
Adjust equalizer bands | !eq 1000 3 |
!bass <gain> |
Set bass boost | !bass 5 |
!reverb <level> |
Adjust reverb level | !reverb 0.7 |
!ir <file> |
Load impulse response file | !ir concert_hall.wav |
!dsp reset |
Reset all DSP effects | !dsp reset |
Control TidalCord hands-free using voice commands powered by OpenAI's Whisper.
-
Install voice dependencies:
pip install openai-whisper numpy pydub
-
Configure in
config.json:{ "voice_commands_enabled": true, "whisper_model": "base", "voice_command_confidence": 0.7 } -
Enable voice commands:
!voicecommands on
| Voice Command | Action |
|---|---|
| "play [song]" | Play a song by name |
| "pause" | Pause playback |
| "resume" | Resume playback |
| "skip" | Skip current track |
| "stop" | Stop playback |
| "volume up/down" | Adjust volume |
| "what's playing" | Get current track info |
| "queue" | Show current queue |
| "clear queue" | Clear the queue |
- Speak clearly and at normal volume
- Use the command
!voicecommands offto disable - Voice commands only work for the user who enabled them
- Best results in quiet environments
Key configuration options in config.json:
{
"discord_token": "your_bot_token_here",
"command_prefix": "!",
"default_volume": 35,
"max_queue_size": 300,
"cache_size_mb": 10240,
"voice_commands_enabled": false,
"lastfm_enabled": false,
"rename_voice_channel": false
}See the full configuration documentation for all options.
Bot doesn't respond to commands:
- Check that the bot has proper permissions in your server
- Verify the command prefix in config.json
- Ensure the bot is online and connected
No audio playback:
- Verify FFmpeg is installed and in PATH
- Check that you're in a voice channel
- Ensure the bot has voice permissions
Tidal authentication fails:
- Verify you have a Tidal Premium account
- Try re-authenticating: delete
data/tidal_token.json - Check your internet connection
Voice commands don't work:
- Install whisper dependencies:
pip install openai-whisper - Check your microphone permissions
- Try a smaller Whisper model for better performance
Enable debug logging by setting environment variable:
export TIDALCORD_DEBUG=1
python main.pyWe welcome contributions! Please:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
git clone https://github.com/your-username/TidalCord.git
cd TidalCord
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate on Windows
pip install -r requirements.txt
cp config.json.example config.json
# Edit config.json with your tokens
python main.pyThis project is licensed under the MIT License - see the LICENSE file for details.
Original Author: MrSpookyAngel
Contributors:
- Community contributors and maintainers
Libraries Used:
- discord.py - Discord API wrapper
- tidalapi - Tidal API client
- yt-dlp - YouTube downloader
- openai-whisper - Speech recognition
- FFmpeg - Audio processing
Made with β€οΈ for the Discord music community