Skip to content

Latest commit

 

History

History

music

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

music (formerly mikmusic)

Plugin providing full music functionality for the bot

Platform Support

  • All native Lavaplayer platforms
  • Spotify

Features

  • 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

Requirements

Adding this plugin adds the following requirements:

Required permissions: 328576854080

Configuration

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>

Development

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

Plugins

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

Setup

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>"})

Redeploy

This plugin supports a /redeploy command restarting player sessions after updating (click here for more)