Plugin providing full music functionality for the bot
- All native Lavaplayer platforms
- Spotify
- slash-commands for everything
- Queue songs from context actions (Also supports Discord file uploads) (DEMO)
- Music channel ( Like Hydra) (DEMO)
- Bot internal playlist system (Supports import from other sources, just
do
/playlist add name: <name> query: <existing yt/spotify playlist>
) - i18n
- Ability to skip through YouTube Chapters with
/next
- Song guizes (Inspired by the AirConsole game MusicGuess) (now housed here)
- Embed song cover color using image-color-service
Adding this plugin adds the following requirements:
- Youtube Data API key
- Spotify API application
- One Lavalink instance
- Happi.dev API key (For lyrics)
- image-color-service
Required permissions: 328576854080
This plugin adds the following new env variables.
// Used to fetch more information about YouTube video, like thumbnails and descriptions (for chapters)
YOUTUBE_API_KEY=<>
// Required for Spotify support
SPOTIFY_CLIENT_SECRET=<>
SPOTIFY_CLIENT_ID=<>
HAPPI_KEY=<token from happi.dev for lyrics>
IMAGE_COLOR_SERVICE_URL=<image color service url>
You can install image-color-service for development via Crates.io.
cargo install image-color-service
image-color-service
Or use docker-compose in this directory:
docker-compose up -d
If you want to deploy this Bot I recommend these plugins
DOWNLOAD_PLUGINS=gdpr,database-i18n,game-animator,music,music-quiz
I personally run my instance with these plugins
DOWNLOAD_PLUGINS=redeploy-hook,gdpr,database-i18n,game-animator,music,game-api,music-quiz,uno-game,ktor,verification-system,epic-games-notifier
For additional configuration please check redeploy-hook and verification-system
For a full Setup guide, if you don't know how to set up mikbot take a look at this and view the "Setting up Mikmusic" section of the document under the Optional Steps
Using this plugin requires additional first-time setup
Run this commands before running docker-compose up -d
- Run
docker-compose up -d mongo
- Run
docker-compose exec mongo mongo -u bot -p bot
- Run this mongo shell commands
use bot_prod
db.createCollection("lavalink_servers")
db.lavalink_servers.insertOne({"url": "wss://...", "password": "<password>"})
This plugin supports a /redeploy command restarting player sessions after updating (click here for more)