Master Bot

A Discord music bot and dashboard with slash commands, playlist support, Spotify, music quiz, saved playlists, lyrics, gifs and more
Alternatives To Master Bot
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
7 months ago258mpl-2.0Swift
🎶 Ultimate lyrics app for macOS.
Lyricify App1,613
3 days ago
A fantastic app to provide scroll lyrics for Spotify (iTunes, Music Center, QQ Music, Netease Cloud Music, and YesPlayMusic are only supported by Lyricify 3). 一款为 Spotify 提供滚动歌词的软件。(iTunes、Music Center、QQ音乐、网易云音乐、YesPlayMusic 仅 Lyricify 3 支持)
Alltomp3 App1,238
22 days ago186agpl-3.0CSS
Download and Convert YouTube, SoundCloud & Spotify in MP3 with full tags (title, artist, genre, cover, lyrics 🔥)
a day ago143gpl-3.0Python
The desktop music player from the future! :city_sunset:
3 years ago27unlicensePython
Fetches and displays lyrics to currently playing song in Spotify.
4 years ago20cc0-1.0TypeScript
a Spotify Lyrics alternative app | New updates at (a faster version in golang)
2 years ago72September 30, 201711mitGo
Fixes music metadata and adds album art.
Spotify Lyrics547
a month ago19TypeScript
🎉 Desktop Spotify Web Player Instant Synchronised Lyrics
Master Bot415
a month ago2June 07, 20202gpl-3.0TypeScript
A Discord music bot and dashboard with slash commands, playlist support, Spotify, music quiz, saved playlists, lyrics, gifs and more
a year ago25mitSCSS
Smart playlists for Spotify! Stop relying on fancy pants algorithms to organize your library and instead build playlists the way you want.
Alternatives To Master Bot
Select To Compare

Alternative Project Comparisons

A Discord Music Bot written in TypeScript using Sapphire, discord.js, Next.js and React

image image

System dependencies

Setup bot

Create an application.yml file root folder.

Download the latest Lavalink jar from here and also place it in the root folder.



Either from the official site or follow the tutorial for your distro.


Get brew, then enter 'brew install postgresql'.


Getting Postgres and Prisma to work together on Windows is not worth the hassle. Create an account on heroku and follow these steps:

  1. Open the dashboard and click on 'New' > 'Create new app', give it a name and select the closest region to you then click on 'Create app'.
  2. Go to 'Resources' tab, under 'Add-ons' search for 'Heroku Postgres' and select it. Click 'Submit Order Form' and then do the same step again (create another postgres instance).
  3. Click on each 'Heroku Postgres' addon you created, go to 'Settings' tab > Database Credentials > View Credentials and copy the each one's URI to either DATABASE_URL or SHADOW_DB_URL in the .env file you will be creating in the settings section.
  4. Done!



brew install redis.


Download from here.


Follow the instructions here.

Settings (env)

Create a .env file in the root directory and copy the contents of .env.example to it. Note: if you are not hosting postgres on Heroku you do not need the SHADOW_DB_URL variable.

DATABASE_URL="postgresql://john:[email protected]:5432/master-bot?schema=public"
SHADOW_DB_URL="postgresql://john:[email protected]:5432/master-bot?schema=public"

# Bot Token

# Next Auth


# Next Auth Discord Provider

# Lavalink

# Spotify

# Twitch

# Other APIs

Gif features

If you have no use in the gif commands, leave everything under 'Other APIs' empty. Same applies for Twitch, everything else is needed.


Change 'john' to your pc username and 'doe' to some password, or set the name and password you created when you installed Postgres.

Bot Token

Generate a token in your Discord developer portal.

Next Auth

You can leave everything as is, just change 'yourclientid' in NEXT_PUBLIC_INVITE_URL to your Discord bot id and then change 'domain' in NEXTAUTH_URL to your domain or public ip. You can find your public ip by going to

Next Auth Discord Provider

Go to the OAuth2 tab in the developer portal, copy the Client ID to DISCORD_CLIENT_ID and generate a secret to place in DISCORD_CLIENT_SECRET. Also, set the following URLs under 'Redirects':

Make sure to change 'domain' in http://domain:3000/api/auth/callback/discord to your domain or public ip.


You can leave this as long as the values match your application.yml.

Spotify and Twitch

Create an application in each platform's developer portal and paste the relevant values.

Running the bot

  1. If you followed everything right, hit npm i in the root folder. When it finishes make sure prisma didn't error.
  2. Open a separate terminal in the root folder and run 'java -jar Lavalink.jar'.
  3. Wait a few seconds and hit npm run dev.
  4. If everything works, your bot and dashboard should be running.
  5. Enjoy!


A full list of commands for use with Master Bot


Command Description Usage
/play Play any song or playlist from youtube, you can do it by searching for a song by name or song url or playlist url /play darude sandstorm
/pause Pause the current playing song /pause
/resume Resume the current paused song /resume
/leave Leaves voice channel if in one /leave
/remove Remove a specific song from queue by its number in queue /remove 4
/queue Display the song queue /queue
/shuffle Shuffle the song queue /shuffle
/skip Skip the current playing song /skip
/skipall Skip all songs in queue /skipall
/skipto Skip to a specific song in the queue, provide the song number as an argument /skipto 5
/volume Adjust song volume /volume 80
/music-trivia Engage in a music trivia with your friends. You can add more songs to the trivia pool in resources/music/musictrivia.json /music-trivia
/loop Loop the currently playing song or queue /loop
/lyrics Get lyrics of any song or the lyrics of the currently playing song /lyrics song-name
/now-playing Display the current playing song with a playback bar /now-playing
/move Move song to a desired position in queue /move 8 1
/queue-history Display the queue history /queue-history
/create-playlist Create a custom playlist /create-playlist 'playlistname'
/save-to-playlist Add a song or playlist to a custom playlist /save-to-playlist 'playlistname' 'yt or spotify url'
/remove-from-playlist Remove a track from a custom playlist /remove-from-playlist 'playlistname' 'track location'
/my-playlists Display your custom playlists /my-playlists
/display-playlist Display a custom playlist /display-playlist 'playlistname'
/delete-playlist remove a custom playlist /delete-playlist 'playlistname'


Command Description Usage
/gif Get a random gif /gif
/jojo Get a random jojo gif /jojo
/gintama Get a random gintama gif /gintama
/anime Get a random anime gif /anime
/baka Get a random baka gif /baka
/cat Get a cute cat picture /cat
/doggo Get a cute dog picture /doggo
/hug Get a random hug gif /hug
/slap Get a random slap gif /slap
/pat Get a random pat gif /pat
/triggered Get a random triggered gif /triggered
/amongus Get a random Among Us gif /amongus


Command Description Usage
/fortune Get a fortune cookie tip /fortune
/insult Generate an evil insult /insult
/chucknorris Get a satirical fact about Chuck Norris /chucknorris
/motivation Get a random motivational quote /motivation
/random Generate a random number between two provided numbers /random 0 100
/8ball Get the answer to anything! /8ball Is this bot awesome?
/rps Rock Paper Scissors /rps
/bored Generate a random activity! /bored
/advice Get some advice! /advice
/game-search Search for game information. /game-search super-metroid
/kanye Get a random Kanye quote /kanye
/world-news Latest headlines from reuters, you can change the news source to whatever news source you want, just change the source in line 13 in world-news.js or ynet-news.js /world-news
/translate Translate to any language using Google translate.(only supported languages) /translate english
/about Info about me and the repo /about
/urban dictionary Get definitions from urban dictionary /urban javascript
/activity Generate an invite link to your voice channel's activity /activity voicechannel Chill
/twitch-status Check the status of a Twitch steamer /twitch-status streamer: bacon_fixation


Getting a Tenor API key

Getting a NewsAPI API key

Getting a Genius API key

Getting a rawg API key

Getting a Twitch API key

Installing Node.js on Debian

Installing Node.js on Windows

Installing on a Raspberry Pi

Using a LavaLink server

Using a public LavaLink server

Using an Internal LavaLink server


Fork it and submit a pull request! Anyone is welcome to suggest new features and improve code quality!


** Bacon Fixation - Countless contributions**

ModoSN - 'resolve-ip', 'rps', '8ball', 'bored', 'trump', 'advice', 'kanye', 'urban dictionary' commands and visual updates

PhantomNimbi - bring back gif commands, lavalink config tweaks

Natemo6348 - 'mute', 'unmute'

kfirmeg - play command flags, dockerization, docker wiki

rafaeldamasceno - 'music-trivia' and Dockerfile improvements, minor tweaks

navidmafi - 'LeaveTimeOut' and 'MaxResponseTime' options, update issue template, fix leave command

Kyoyo - added back 'now-playing'

MontejoJorge - added back 'remind'

malokdev - 'uptime' command

chimaerra - minor command tweaks

Popular Lyrics Projects
Popular Spotify Projects
Popular Media Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.