Skip to content

A fork of EvoBot (Discord Music Bot) that uses Invidious.

License

Notifications You must be signed in to change notification settings

hoangvu12/megumin

Repository files navigation

Node build Docker build Commitizen friendly

🤖 Megumin (A fork of EvoBot)

Megumin is a Discord Music Bot built with TypeScript, discord.js & uses Command Handler from discordjs.guide

Why a seperate repository but not a fork?

I decided to create a separate repository because forks can't open issues. Also, I have plans to maintain and add more features.

What's the difference from Megumin with EvoBot?

The main difference is that Megumin uses an Invidious instance to make YouTube requests instead of relying on your own network, as the chance of getting blocked by YouTube is quite high

And more features such as:

  • Clear command

Requirements

  1. Discord Bot Token Guide
    1.1. Enable 'Message Content Intent' in Discord Developer Portal
  2. Node.js 16.11.0 or newer

🚀 Getting Started

git clone https://github.com/hoangvu12/megumin.git
cd megumin
npm install

After installation finishes follow configuration instructions then run npm run start to start the bot.

⚙️ Configuration

Copy or Rename config.json.example to config.json and fill out the values:

⚠️ Note: Never commit or share your token or api keys publicly ⚠️

{
  "TOKEN": "",
  "MAX_PLAYLIST_SIZE": 10,
  "PRUNING": false,
  "LOCALE": "en",
  "DEFAULT_VOLUME": 100,
  "STAY_TIME": 30,
  "INVIDIOUS_BASE_URL": "",
  "USE_INVIDIOUS_PROXY": false
}

⚙️ Invidious Configuration

You can change the Invidious instance by updating the INVIDIOUS_BASE_URL in your configuration. You can either use a public Invidious instance or host your own.

If you are having trouble streaming (the bot doesn't play audio), try setting USE_INVIDIOUS_PROXY to true.

🐬 Docker Configuration

For those who would prefer to use our Docker container, you may provide values from config.json as environment variables.

docker run -e "TOKEN=<discord-token>" hoangvudev12/megumin

📝 Features & Commands

  • 🎶 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

  • Clear all the queue (/clear)
  • Now Playing (/nowplaying)
  • 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)
  • Toggle pruning of bot messages (/pruning)
  • Help (/help)
  • Command Handler from discordjs.guide
  • Media Controls via Buttons

buttons

🌎 Locales

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

🤝 Contributing

  1. Fork the repository
  2. Clone your fork: git clone https://github.com/your-username/megumin.git
  3. Create your feature branch: git checkout -b my-new-feature
  4. Stage changes git add .
  5. Commit your changes: cz OR npm run commit do not use git commit
  6. Push to the branch: git push origin my-new-feature
  7. Submit a pull request

About

A fork of EvoBot (Discord Music Bot) that uses Invidious.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published