Skip to content

Groove Music

by A l e x Node.js Music

A powerful Discord music bot with LavaLink integration, featuring support for YouTube and Spotify, playlists, favorites, and much more!

Groove Music screenshot 1
README.md

๐ŸŽต Groove Music

Groove Music Version Node.js Discord.js

High-Quality โ€ข Fast โ€ข Reliable

A powerful Discord music bot with LavaLink integration, featuring support for YouTube and Spotify, playlists, favorites, and much more!

Discord Server โ€ข Report Bug โ€ข Request Feature


โœจ 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

  • /playlist-save - Save the current queue as a playlist
  • /playlist-load - Load a saved playlist
  • /playlist-list - View all your playlists
  • /playlist-delete - Delete a playlist
  • /playlist-rename - Rename a playlist
  • /playlist-share - Share a playlist with others
  • /playlist-import - Import a playlist from a link
  • /playlist-track-add - Add a track to a playlist
  • /playlist-track-remove - Remove a track from a playlist
  • /playlist-track-list - View tracks in a playlist

โญ Favorites

  • /favorite-add - Add current track to favorites
  • /favorite-remove - Remove a track from favorites
  • /favorite-list - View all your favorite tracks
  • /favorite-play - Play a track 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

Installation

  1. Clone the repository

    Bash
    git clone https://github.com/faisalg1t/Groove-Music.git
    cd Groove-Music
    
  2. Install dependencies

    Bash
    npm install
    
  3. Configure environment variables

    Create a .env file in the root directory:

    Env
    # 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_key
    
  4. Configure bot settings

    Edit Groove-Music/config.js to customize your bot:

    • Change the prefix (default: ,)
    • Adjust playlist limits
    • Configure default music platform
    • Set artwork style
  5. Start the bot

    Bash
    npm start
    

Groove Music requires a LavaLink server to function. You have two options:

You can use free public LavaLink servers (not recommended for production):

  1. Download LavaLink from GitHub
  2. Create an application.yml configuration file
  3. Run LavaLink: java -jar Lavalink.jar
  4. Update your .env with your LavaLink credentials

๐ŸŽจ Customization

Changing the Prefix

Edit Groove-Music/config.js:

JavaScript
PREFIX: '!',  // Change to your desired prefix

Adjusting Playlist Limits

JavaScript
MUSIC: {
    PLAYLIST_LIMIT: 3,  // Maximum number of playlists per user
}

Artwork Style

Choose between MusicCard (custom image card) or Banner (media gallery):

JavaScript
MUSIC: {
    ARTWORK_STYLE: 'MusicCard'  // or 'Banner'
}

๐Ÿ“ Project Structure

Groove-Music/
โ”œโ”€โ”€ commands/           # Slash commands
โ”œโ”€โ”€ pCommands/          # Prefix commands
โ”œโ”€โ”€ music/              # Music client and event handlers
โ”œโ”€โ”€ helpers/            # Utility functions and helpers
โ”œโ”€โ”€ utils/              # Logging, permissions, validation
โ”œโ”€โ”€ database/           # Database models (favorites, playlists)
โ”‚   โ””โ”€โ”€ models/
โ”œโ”€โ”€ assets/             # Images and resources
โ”œโ”€โ”€ config.js           # Bot configuration
โ”œโ”€โ”€ index.js            # Main entry point
โ””โ”€โ”€ emojis.json         # Custom emoji definitions

๐Ÿ”ง 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 Connect and Speak permissions in voice channels

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“ Credits

Development Team

Groove Music is developed and maintained by Eleone Hub

Lead Developer

  • Faisal (faisalg1t)

Built With

Special Thanks

  • Eleone Hub community for testing and feedback
  • All contributors who helped improve this project

๐Ÿ“ž Support

Need help? Join our community!


๐Ÿ“„ 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.


Made with โค๏ธ by Eleone Hub

Discord Portfolio

If you like this project, please consider giving it a โญ on GitHub!