Plapy is a Discord Music Bot built with TypeScript, discord.js & uses Command Handler from discordjs.guide The project is based on a fork of the open source music bot evobot https://github.com/eritislami/evobot. Goals of the project are:
- To add more functionality like saving and playing playlists from the bots database.
- To provide an API for the user that allows control outside of discord command
- To create a web interface that allows control via the API with a GUI
- To improve the queue experience by providing new features like autoplay and play next
- To host the bot and website on an external server enabling 24/7 access
- Discord Bot Token Guide
1.1. Enable 'Message Content Intent' in Discord Developer Portal - Node.js 16.11.0 or newer
- Open port 80 (or the desired port that you configured) on the server that's hosting the project for API and website access
After installation finishes follow configuration instructions then run npm run start
to start the bot.
If you want to setup the Bot on an Ubuntu server you can follow the instructions in UbuntuServerSetup.md
Copy or Rename config.json.example
to config.json
and fill out the values:
{
"TOKEN": "",
"MAX_PLAYLIST_SIZE": 100,
"PRUNING": false,
"LOCALE": "en",
"DEFAULT_VOLUME": 10,
"STAY_TIME": 30,
"SERVER_IP": "localhost",
"STRUCTS_LOCATION": "structs/*.ts"
// if you want to run the compiled version of the bot, change the extension of the file to .js :
// "STRUCTS_LOCATION": "dist/structs/*.js"
}
- 🎶 Play music from YouTube via url
/play https://www.youtube.com/watch?v=GLvohMXgcBo
- 🔎 Play music from YouTube via search query
/play under the bridge red hot chili peppers
- 🔎 Search and select music to play
/search Pearl Jam
- 📃 Play youtube playlists via url
/playlist https://www.youtube.com/watch?v=YlUKcNNmywk&list=PL5RNCwK3GIO13SR_o57bGJCEmqFAwq82c
- 🔎 Play youtube playlists via search query
/playlist linkin park meteora
- Now Playing (/np)
- Queue system (/queue)
- Loop / Repeat (/loop)
- Shuffle (/shuffle)
- Volume control (/volume)
- Lyrics (/lyrics)
- Pause (/pause)
- Resume (/resume)
- Skip (/skip)
- Skip to song # in queue (/skipto)
- Move a song in the queue (/move)
- Remove song # from queue (/remove)
- Show ping to Discord API (/ping)
- Show bot uptime (/uptime)
- Help (/help)
- Command Handler from discordjs.guide
- Media Controls via Reactions
-
Soundcloud support
-
Start an autoplay radio based on a song (/radio)
-
Add the currently playing song to a server specific playlsy (/add)
-
Load a server specific playlist from a dropdown menu (/savedplaylist)
-
Register for API access (/registerapi)
-
Create a permanent queue maping to start playing songs from the api without using discord at all (/createpermanentqueue)
- Stop the playback (/stop)
- Skip (/skip)
- Volume control (/volume)
- Play (/play)
- Now Playing (/nowplaying)
Currently available locales are:
- English (en)
- Arabic (ar)
- Brazilian Portuguese (pt_br)
- Bulgarian (bg)
- Romanian (ro)
- Czech (cs)
- Dutch (nl)
- French (fr)
- German (de)
- Greek (el)
- Indonesian (id)
- Italian (it)
- Japanese (ja)
- Korean (ko)
- Minionese (mi)
- Persian (fa)
- Polish (pl)
- Russian (ru)
- Simplified Chinese (zh_cn)
- Singaporean Mandarin (zh_sg)
- Spanish (es)
- Swedish (sv)
- Traditional Chinese (zh_tw)
- Thai (th)
- Turkish (tr)
- Ukrainian (uk)
- Vietnamese (vi)
- Check Contributing if you wish to help add more languages!
- For languages please use ISO 639-1 two letter format