🤖 EvoBot is a Discord Music Bot built with discord.js & uses Command Handler from discordjs.guide

Overview

Node build Docker build Commitizen friendly

logo

🤖 EvoBot (Discord Music Bot)

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

Requirements

  1. Discord Bot Token Guide
  2. YouTube Data API v3 Key Guide
    2.1 (Optional) Soundcloud Client ID Guide
  3. Node.js v14.0.0 or newer

🚀 Getting Started

git clone https://github.com/eritislami/evobot.git
cd evobot
npm install

After installation finishes follow configuration instructions then run node index.js 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": "",
  "YOUTUBE_API_KEY": "",
  "SOUNDCLOUD_CLIENT_ID": "",
  "MAX_PLAYLIST_SIZE": 10,
  "PREFIX": "/",
  "PRUNING": false,
  "LOCALE": "en",
  "DEFAULT_VOLUME": 100,
  "STAY_TIME": 30
}

🐬 Docker Configuration

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

" -e "YOUTUBE_API_KEY= " eritislami/evobot ">
docker run -e "TOKEN=
    
     "
     -e "YOUTUBE_API_KEY=
    
     "
     eritislami/evobot

📝 Features & Commands

Note: The default prefix is '/'

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

  • 🎶 Play music from Soundcloud via url

/play https://soundcloud.com/blackhorsebrigade/pearl-jam-alive

  • 🔎 Search and select music to play

/search Pearl Jam

Reply with song number or numbers seperated by comma that you wish to play

Examples: 1 or 1,2,3

  • 📃 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, /q)
  • Loop / Repeat (/loop)
  • Shuffle (/shuffle)
  • Volume control (/volume, /v)
  • Lyrics (/lyrics, /ly)
  • Pause (/pause)
  • Resume (/resume, /r)
  • Skip (/skip, /s)
  • Skip to song # in queue (/skipto, /st)
  • Move a song in the queue (/move, /mv)
  • Remove song # from queue (/remove, /rm)
  • Play an mp3 clip (/clip song.mp3) (put the file in sounds folder)
  • List all clips (/clips)
  • Show ping to Discord API (/ping)
  • Show bot uptime (/uptime)
  • Toggle pruning of bot messages (/pruning)
  • Help (/help, /h)
  • Command Handler from discordjs.guide
  • Media Controls via Reactions

reactions

🌎 Locales

Currently available locales are:

  • English (en)
  • Arabic (ar)
  • Brazilian Portuguese (pt_br)
  • Dutch (nl)
  • French (fr)
  • German (de)
  • Greek (el)
  • Indonesian (id)
  • Italian (it)
  • Japanese (ja)
  • Korean (ko)
  • 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/evobot.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

📝 Credits

@iCrawl For the queue system used in this application which was adapted from @iCrawl/discord-music-bot

Comments
  • Known issue: 404 Not found.

    Known issue: 404 Not found.

    If you seen Error: 404 Not found in your console, this is not an error!

    This is a problem with ytdl-core or YouTube API. This error will occur in these case:

    • Video not found
    • Play an ended live stream (New)

    There is no solutions at this moment, please don't open issue like this.

    Update: ytdl-core already fixed this bug, just install ytdl-core master branch, this patch is not pushed to npm yet.

    Another update: There is a method to fix this issue, please see https://github.com/eritislami/evobot/issues/774#issuecomment-866863134

    Feel free to commit on this issue if you have any solution.

    Also see:

    • https://github.com/fent/node-ytdl-core/issues/923
    opened by wolf-yuan-6115 39
  • Bug: pause command not working

    Bug: pause command not working

    getting this error when using pause cmd then try to use resume cmd the music will not back to play so these is the code :

    const { canModifyQueue } = require("../util/EvobotUtil");
    
    
    module.exports = {
      name: "pause",
        aliases: ["ps"],
      description: "pause songs from playing",
      execute(message) {
        const queue = message.client.queue.get(message.guild.id);
        if (!queue) return message.reply("There is nothing playing.").catch(console.error);
        if (!canModifyQueue(message.member)) return;
    
        if (queue.playing) {
          queue.playing = false;
          queue.connection.dispatcher.pause(true);
          return queue.textChannel.send(`paused`).catch(console.error);
        }
      }
    };
    

    and just the music not resume

    suspected bug stale 
    opened by aminepro21 39
  • Spotify Playlist Playback

    Spotify Playlist Playback

    It would be cool for the bot to be able to convert a Spotify playlist to a YouTube playlist automatically for playback purposes. I love using the bot so far and keep up the good work!

    enhancement stale 
    opened by xenodirt 29
  • Error: Error parsing info: Unable to retrieve video metadata

    Error: Error parsing info: Unable to retrieve video metadata

    Describe the bug A description of what the bug is.

    How To Reproduce Steps to reproduce the behavior: 1. 2.

    Expected behavior A description of what you expected to happen.

    Environment (add if possible)

    • Node.js version:

    Additional information & screenshots Add any other context or screenshots about the problem here.

    ytdl 
    opened by alonalibarmn 19
  • LavaLink Support Required

    LavaLink Support Required

    Is your feature request related to a problem? Please describe. A description of what the problem is. Lavalink required because Ytdl Stops working after every 3 days.

    Describe the solution you'd like Add support for lava link in Evobot

    Describe alternatives you've considered Anyone help me integrate the lava link in the Bot. I am just a newbie!

    Additional context My discord User ID: 𝐿𝑜𝓃𝑒𝒲𝑒𝑒𝒷𝒢𝑜𝒹#2402 My DMs are Open just send a message if you can help me in integrating the Lavalink in my music bot

    enhancement stale 
    opened by Tharki-God 17
  • Bug: Status Code: 429

    Bug: Status Code: 429

    So I understand that this means that too many requests are being sent, but the thing is... there really aren't that many requests I'm sending but I just keep getting this error.

    I don't support anyone knows why or how to fix it?

    suspected bug 
    opened by Larkify 16
  • Bug: When i do -pruning it sends

    Bug: When i do -pruning it sends "Message pruning is {result}" instead of "Message pruning is on/off" how do i fix it ?

    Describe the bug Pruning system does not work

    When i do -pruning it sends "Message pruning is {result}" instead of "Message pruning is on/off" how do i fix it ?

    suspected bug stale 
    opened by ryzyx 15
  • Bug: There was an error executing that command.

    Bug: There was an error executing that command.

    Describe the bug A description of what the bug is. when ever i use prefix play is says There was an error executing that command.

    How To Reproduce Steps to reproduce the behavior:

    1. !play https://youtu.be/S2ujotDMluo 2.There was an error executing that command.

    Expected behavior plays the song

    Environment (add if possible)

    • Node.js version: Welcome to Node.js v16.15.0

    Additional information & screenshots Add any other context or screenshots about the problem here.

    opened by SmaDababaXor 14
  • Bug: Queueing a playlist result in only 1 song played

    Bug: Queueing a playlist result in only 1 song played

    Describe the bug The bot failed to retrieve playlist songs, it only queue 1 song

    How To Reproduce Steps to reproduce the behavior:

    1. Run the bot as usual
    2. Try to queue a playlist
    3. Check the queue list with !queue

    Expected behavior The bot should queue every songs there are in the playlist

    Environment (add if possible)

    • Node.js version: v16.11.0

    Additional information & screenshots Add any other context or screenshots about the problem here. image

    opened by Velosofy 14
  • Add STAY_TIME config to handle channel leave

    Add STAY_TIME config to handle channel leave

    • Related discussion: https://github.com/eritislami/evobot/discussions/333

    Objectives

    • Add STAY_TIME configs to handle channel leave when queue ended
    • 0 will instant leave, other (example, 30) will leave after 30s
    opened by WindSekirun 12
  • Updated/Added some things

    Updated/Added some things

    • botname config value
    • example soundcloud id
    • sharding system
    • better debuging
    • status config value
    • update config at readme.md
    • ubuntu install skript (beta) (ubuntu.sh) needs that this pull get merged to work
    opened by rexjohannes 12
  • chore(deps-dev): bump @types/node from 18.11.9 to 18.11.18

    chore(deps-dev): bump @types/node from 18.11.9 to 18.11.18

    Bumps @types/node from 18.11.9 to 18.11.18.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • 🐛 Evobot 2.3.1 has bug : Robot death when the message of the robot (being played) was deleted.

    🐛 Evobot 2.3.1 has bug : Robot death when the message of the robot (being played) was deleted.

    After I play music in the server, after deleting the robot to send the information that is now played, the robot will automatically go offline and collapse

    opened by oo273825 1
  • chore(deps-dev): bump @types/i18n from 0.13.5 to 0.13.6

    chore(deps-dev): bump @types/i18n from 0.13.5 to 0.13.6

    Bumps @types/i18n from 0.13.5 to 0.13.6.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): bump @discordjs/voice from 0.13.0 to 0.14.0

    chore(deps): bump @discordjs/voice from 0.13.0 to 0.14.0

    Bumps @discordjs/voice from 0.13.0 to 0.14.0.

    Release notes

    Sourced from @​discordjs/voice's releases.

    @​discordjs/voice@​0.14.0

    Bug Fixes

    Features

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • 🚀 Add option in config to have a persistent queue

    🚀 Add option in config to have a persistent queue

    it would be awesome if you can activate for your server a persistent queue support. With that, you can create a playlist for your server, and each time that you start your application, the bot has the same songs that had on the last session.

    The solution can be a simple flag that you set in your config file that sets that you want to use a persistent queue, and the name of the file / small database where the song information will be saved.

    So when you have the flag activated, each time a user adds a song into the queue, that song is added.

    I just know one bot that does that, and is awesome; sadly it droped youtube support because is a public bot; not self-hosted.

    enhancement 
    opened by sanslash332 0
Releases(2.3.1)
Owner
Erit Islami
Full Stack @laravel & @vuejs Developer, @nodejs Apprentice
Erit Islami
Guide for modding the gamecube hardware/software

GC Mod Guide currently the language icon is disabled, this will be changed after a crowdin and all that shizz is setup disabled on line 90 of _include

Method 5 Mar 28, 2022
Free, open-source crypto trading bot, automated bitcoin / cryptocurrency trading software, algorithmic trading bots. Visually design your crypto trading bot, leveraging an integrated charting system, data-mining, backtesting, paper trading, and multi-server crypto bot deployments.

Free, open-source crypto trading bot, automated bitcoin / cryptocurrency trading software, algorithmic trading bots. Visually design your crypto trading bot, leveraging an integrated charting system, data-mining, backtesting, paper trading, and multi-server crypto bot deployments.

Superalgos 3.1k Jan 1, 2023
A PHP Laravel web application that uses most of Laravel technologies to build that gym system

A PHP Laravel web application that uses most of Laravel technologies to build that gym system.The System is based on rules. Admin, City Manager, Gym Manager. All Crud operations running using data tables.

Ashraf Eldawody 9 Dec 29, 2022
A discord bot that monitors the LavaLink nodes given, and updates it via an embed on discord.

LavaLink-Node-Monitor-for-Discord This Bot will help you monitor multiple LavaLink nodes directly on discord [Updates Every 30 Seconds] Setting Up The

Ranjithh K 4 Apr 2, 2022
An improved discord bot for my discord server.

Ancalagon Bot Description Hello! This is a discord bot for my personal discord server. It's more of a remaster of my DragonBot but it's written in Jav

DragonWF 3 Jul 6, 2022
Typescript template for a discord bot using discord.js

Discord-Typescript-Template Typescript template for a discord bot using discord.js. Installation Clone the repository git clone https://github.com/Ami

null 2 Oct 17, 2022
A discord bot to view PDFs directly in discord

A discord bot to view PDFs directly in discord. No more downloading hundereds of PDF and forgetting you downloaded them!

LEGENDARYKING007 3 Aug 30, 2022
This is my old discord bot source (NoTaBot)

Discord-Bot This is my old discord bot source (NoTaBot) Requires Node.js Discord.js 12 Puppeteer (library) How to use? Download the code Change the to

Galvins 3 Nov 14, 2021
A simple yet fun wordle discord bot

A simple yet fun wordle discord bot! Invite Link: Wordle Bot

null 2 Feb 13, 2022
Simple, efficient and powerful discord moderation bot.

Big chungus is a moderation bot with the aim of being efficient and easy to setup. The entire bot can be configured through the website. Features Raid

null 6 Oct 11, 2022
Actually, port of the Descalendrier website into a discord bot

Actually, port of the Descalendrier website into a discord bot

ShinProg (Logan Tann) 4 Feb 1, 2022
A cool Discord bot to manage tickets on your server 🎫

Discord Tickets Bot A cool Discord bot to manage tickets on your server ?? Project under construction... follow the progress on the Discord server. If

null 11 Oct 10, 2022
Bot managing the Devos Code Discord server

Bot managing the Devos Code Discord server

Pierre-Alexis 8 Dec 17, 2022
Max is a Typescript-based Discord bot with many functionalities

Max is a Typescript-based Discord bot with many functionalities. He is both my learning curve for understanding Discord's API as well as my current passion project.

Jack Levreau 4 May 24, 2022
The perfect library for adding search, sort, filters and flexibility to tables, lists and various HTML elements. Built to be invisible and work on existing HTML.

List.js Perfect library for adding search, sort, filters and flexibility to tables, lists and various HTML elements. Built to be invisible and work on

Jonny Strömberg 10.9k Jan 1, 2023
Math Magicians - A calculator and three subpages built with React + SASS

Math Magicians JavaScript application that contains a calculator and three sub-pages. Built with React + SASS. Built With JavaScript HTML5 SASS React.

Leonardo Albornoz 8 Mar 23, 2022
Solid.js library adding signaling to built-in non-primitives

This package provides signaled versions of Javascript's built-in objects. Thanks to it, all theirs properties will be automatically tracked while using standard API.

Maciej Kwaśniak 40 Dec 29, 2022
A simple stateless microservice in Nodejs, Built with Node.js, Express and Mocha

A Stateless Microservice in NodeJS, having three major functionalities - Authentication, JSON patching and Image Thumbnail Generation.

Christotle Agholor 3 Feb 26, 2022
🧸 Wassim - Bot pp

Bot pp oubliez pas de ⭐ le projet Installations (il faut avoir node.js) Ouvrir un terminal et faite npm install discord.js@12 Ils vous faut aussi act

null 3 Sep 27, 2021