hoangvu12 / megumin

A fork of EvoBot (Discord Music Bot) that uses Invidious.
MIT License
2 stars 0 forks source link

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:

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 https://www.youtube.com/watch?v=GLvohMXgcBo

/play under the bridge red hot chili peppers

/search Pearl Jam

/playlist https://www.youtube.com/watch?v=YlUKcNNmywk&list=PL5RNCwK3GIO13SR_o57bGJCEmqFAwq82c

/playlist linkin park meteora

buttons

🌎 Locales

Currently available locales are:

🤝 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