- 🎹 High Quality Music: Powered by Lavalink (Kazagumo & Shoukaku) for lag-free, high-quality audio.
- 🛰️ Smart Node Selection: Automatically discovers and connects to stable public Lavalink nodes.
- 🛡️ Domain-Aware Filtering: Intelligent logic to prevent redundant connections and avoid IP rate limits (429 errors).
- 🎛️ Interactive Dashboard: Real-time updating embed with control buttons (Play, Pause, Skip, Loop, Shuffle, Volume).
- ⚡ Autocomplete Cache: Instant search suggestions with a 5-minute memory to reduce server load.
- 💾 Persistence: Automatically saves your volume settings and music channel preferences using Appwrite.
- ** Aesthetic UI**: Modern embeds, dynamic status, and a clean, lightweight design.
Before you start, make sure you have:
- Node.js: Version 18.0.0 or higher.
- Discord Bot Token: Get it from the Discord Developer Portal.
- Appwrite Cloud: Create a free account at Appwrite.io (Project ID, API Key).
-
Clone the Repository
git clone https://github.com/vulk7n/black-music.git cd black-music -
Install Dependencies
npm install
-
Configure Environment Create a
.envfile and fill in your details:# Discord Configuration DISCORD_TOKEN=your_bot_token_here CLIENT_ID=your_client_id GUILD_ID=your_testing_guild_id # Primary Lavalink Node LAVALINK_HOST=lavalink.serenetia.com LAVALINK_PORT=443 LAVALINK_PASSWORD=https://dsc.gg/ajidevserver LAVALINK_SECURE=true # Smart Node Discovery (Recommended) SMART_NODE_SELECTION=true # Appwrite (Database Persistence) APPWRITE_PROJECT_ID=your_project_id APPWRITE_ENDPOINT=https://sgp.cloud.appwrite.io/v1 APPWRITE_API_KEY=your_api_key
-
Start the Bot
npm start
This bot is designed for production-level stability:
- Rate Limit Protection: Auto-filters redundant nodes to stay within provider limits.
- Resource Optimized: Dashboard refresh rates are tuned for low CPU usage (15s updates).
- Auto-Fallback: If one node fails, Kazagumo automatically shifts the player to the next healthy node.
| Command | Description |
|---|---|
/play <song> |
Play a song with instant autocomplete suggestions |
/setup |
Initialize the aesthetic music dashboard |
/volume <0-200> |
Adjust volume (Persists across restarts!) |
/skip |
Skip to the next track |
/reset |
Clean up and reset the bot state |
Distributed under the MIT License. See LICENSE for more information.