Groove Music
A powerful Discord music bot with LavaLink integration, featuring support for YouTube and Spotify, playlists, favorites, and much more!
About
README.md
Contents
🎵 Groove Music
High-Quality • Fast • Reliable • Premium
A powerful Discord music bot with LavaLink integration, featuring support for YouTube and Spotify, playlists, favorites, and much more!
Discord Server • Bot-Hosting.net • Report Bug • Request Feature
🚀 Deploy on Bot-Hosting.net
Want to host Groove Music without setting up your own server? You can easily deploy it using Bot-Hosting.net.
💙 Get Started
👉 Click Here to create free Bot-Hosting.net account.
After creating your account:
- Go to the Templates section in your Bot-Hosting.net dashboard.
- Search for Groove-Music.
- Select the Groove-Music template.
- Deploy the template to your server.
- Configure your required environment variables, including your Discord bot token and LavaLink credentials.
- Start your bot and you're ready to enjoy Groove Music! 🎵
💡 New to Bot-Hosting.net? Use the button above to create your account, then find Groove-Music in the Templates section.
🎶 Quick & Easy
Create Account → Templates → Groove-Music → Deploy → Configure → Start
Enjoy hosting Groove Music on Bot-Hosting.net! 💙
✨ Features
- 🎶 High-Quality Music Playback - Powered by LavaLink for the best audio quality
- 🎵 Multi-Platform Support - Play from YouTube and Spotify
- 📝 Playlist Management - Create, save, and share custom playlists
- ⭐ Favorites System - Save your favorite tracks for quick access
- 🎼 Queue Management - Full control over your music queue
- 🎚️ Audio Filters - Apply various audio effects to customize your listening experience
- 🎤 Lyrics Support - Display lyrics for currently playing tracks
- 🔄 Loop Modes - Loop single tracks or entire queues
- ⏯️ Playback Controls - Play, pause, skip, shuffle, and more
- 🎲 Autoplay - Automatically queue similar songs when the queue ends
- 🖼️ Beautiful Music Cards - Custom artwork for now playing displays
- ⚡ Slash Commands - Modern Discord slash command support
- 📌 Prefix Commands - Traditional prefix commands (
,by default)
📋 Commands Overview
🎵 Music Playback
/play- Play a song or add it to the queue/pause- Pause the current track/resume- Resume playback/skip- Skip to the next track/stop- Stop playback and clear the queue/nowplaying- Display currently playing track/queue- View the current queue
🎛️ Queue Management
/shuffle- Shuffle the queue/clear- Clear the entire queue/remove- Remove a specific track from the queue/move- Move a track to a different position/back- Go back to the previous track/seek- Seek to a specific position in the track
📝 Playlists
/playlistsave- Save the current queue as a playlist/playlistload- Load a saved playlist/playlistlist- View your playlists/playlistdelete- Delete a playlist/playlistrename- Rename a playlist/playlistshare- Share a playlist with others/playlistimport- Import a playlist from a share code or Spotify URL/playlisttrackadd- Add a track to a playlist/playlisttrackremove- Remove a track from a playlist/playlisttracklist- View tracks in a playlist/playlistcreate- Create an empty playlist/playlistappend- Append a playlist to the queue
⭐ Favorites
/favoriteadd- Add a track to favorites/favoriteremove- Remove a track from favorites/favoritelist- View your favorite tracks/favoriteplay- Play tracks from your favorites
🎚️ Audio Settings
/volume- Adjust the volume/filter- Apply audio filters/loop- Set loop mode (off/track/queue)/autoplay- Toggle autoplay mode
ℹ️ Information
/help- Display help information/ping- Check bot latency/lyrics- Display lyrics for the current track
🚀 Quick Setup
Prerequisites
- Node.js v18 or higher
- A Discord bot token (Create one here)
- LavaLink server (see LavaLink Setup)
- (Optional) Spotify API credentials
- (Optional) Genius API key for lyrics
Installation
Clone the repository
git clone https://github.com/faisaljs/Groove-Music.git cd Groove-MusicInstall dependencies
npm installConfigure environment variables
Create a
.envfile in the root directory:# Bot Configuration BOT_TOKEN=your_discord_bot_token CLIENT_ID=your_bot_client_id # LavaLink Configuration LAVALINK_HOSTS=your.lavalink.host LAVALINK_PORTS=2333 LAVALINK_PASSWORDS=youshallnotpass LAVALINK_SECURES=false # Optional: Genius Lyrics GENIUS_API_KEY=your_genius_api_keyConfigure bot settings
Edit
Groove/config.jsto customize your bot:- Change the prefix (default:
,) - Adjust playlist limits
- Configure default music platform
- Set artwork style
- Change the prefix (default:
Start the bot
npm start
🎸 LavaLink Setup
Groove Music requires a LavaLink server to function. You have two options:
Option 1: Use a Public LavaLink Server
You can use free public LavaLink servers (not recommended for production):
Option 2: Host Your Own LavaLink Server
- Download LavaLink from GitHub
- Create an
application.ymlconfiguration file - Run LavaLink:
java -jar Lavalink.jar - Update your
.envwith your LavaLink credentials
🎨 Customization
Changing the Prefix
Edit Groove/config.js:
PREFIX: '!', // Change to your desired prefix
Adjusting Playlist Limits
MUSIC: {
PLAYLIST_LIMIT: 3, // Maximum number of playlists per user
}
Artwork Style
Choose between MusicCard (custom image card) or Banner (media gallery):
MUSIC: {
ARTWORK_STYLE: 'MusicCard' // or 'Banner'
}
📁 Project Structure
Groove-Music/
├── Groove/
│ ├── commands/ # Slash commands
│ ├── pCommands/ # Prefix commands
│ ├── music/ # Poru event handlers
│ ├── helpers/ # Music helpers and card rendering
│ ├── utils/ # Permission helpers
│ ├── config.js # Bot configuration
│ └── index.js # Bot entry point
├── database/ # Database models (favorites, playlists)
│ └── models/
└── README.md
🔧 Troubleshooting
Bot doesn't respond to commands
- Ensure the bot has proper permissions in your server
- Check that the bot token is correct
- Verify LavaLink is running and accessible
Music doesn't play
- Confirm LavaLink server is online
- Check LavaLink credentials in
.env - Ensure the bot has
ConnectandSpeakpermissions in voice channels
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
📝 Credits
Development Team
Groove Music is developed and maintained by Eleone Hub
Lead Developer
- Faisal (faisaljs)
- Discord:
alex.jsz - Portfolio: faisal.dev
- Discord:
Built With
- Discord.js - Discord API library
- Poru - LavaLink client
- LavaLink - Audio delivery server
- Sequelize - Database ORM
Special Thanks
- Eleone Hub community for testing and feedback
- All contributors who helped improve this project
📞 Support
Need help? Join our community!
- Discord Server: https://discord.gg/TGF3fCXtRm
- Developer Contact: Discord @
alex.jsz - Portfolio: faisal.dev
📄 License
This project is licensed under the MIT License.
⚠️ Disclaimer
This bot is for educational and entertainment purposes. Please respect copyright laws and Discord's Terms of Service when using this bot.
How to deploy it
- 1 Open the deploy pageName your deployment. You sign in when you confirm.
- 2 Fill in its variablesThe values the template asks for, stored as environment variables of your deployment.
- 3 Check your resourcesIt draws from your plan's shared pool, then launches. Every account starts free.