Git Product home page Git Product logo

sudhanplayz / discord-musicbot Goto Github PK

View Code? Open in Web Editor NEW
2.9K 56.0 2.8K 6.64 MB

An advanced discord music bot, supports Spotify, Soundcloud, YouTube with Shuffling, Volume Control and Web Dashboard with Slash Commands support!

Home Page: https://musicbot.darrenofficial.com

License: Other

JavaScript 41.55% HTML 54.41% Dockerfile 0.03% Shell 0.08% Procfile 0.01% TypeScript 3.92% Nix 0.01%
discord-music-bot glitch repl music music-bot song heroku discord discord-bot web-dashboard slash-commands slash commands web website dashboard musicbot discord-js nodejs hacktoberfest

discord-musicbot's Introduction

Discord Music Bot

✨Latest Updates

v5.1 Is in development! Go check it out HERE!

What do you gain from it? Let us explain:

  • Completely modular docker environment for easier development and deployment
  • A WORKING DASHBOARD!!!
  • DB Integration for you to save your favorite songs in
  • Integrated self hosted Lavalink
  • Dedicated query channel
  • More commands and functionalities
  • And so much more to come!

🚧 | Prerequisites

  • Node.js 16+
  • Lavalink Server
  • You'll need to run npm run deploy or yarn deploy. to initialized the slash commands. You can do this on your pc locally

NOTE: Lavalink is needed for music functionality. You need to have a working Lavalink server to make the bot work.

πŸ“ | Important Note if you're Switching from v4 to v5

  1. Download and configure v5 in a seperate folder.
  2. Kick your bot out of your server.
  3. Reinvite the Bot with the right scopes. Example Invite URL (Change CLIENT_ID)
  4. Run npm run deploy or yarn deploy to initialize the slash commands. You can do this on your pc locally

πŸ“ | Tutorial

🐳 Docker

You should configure the config.js file with the host "lavalink", using the same password and port as specified in docker/application.yml.

Build and start bot and lavalink

docker-compose up -d --build

πŸ’ͺ🏻 Non-Docker

The config.js file should be configured first. Don't forget to add a lavalink host

Install all dependencies and deploy Slash Commands

npm install
npm run deploy

Start the bot

node index.js

πŸ“ | Support Server

If you have major coding issues with this bot, please join and ask for help.

πŸ“Έ | Screenshots

Soon

πŸš€ | Deploy

Deploy to heroku Open in Gitpod

✨ | Contributors

Contributions are always welcomed :D Make sure to follow Contributing.md

🌟 | Made with

discord-musicbot's People

Contributors

aryantah2005 avatar assassin654 avatar astindev avatar biocla avatar chit-uob avatar cobianic avatar colonel-ltd avatar dananabanana avatar darrenofficial avatar dascanard avatar devamiyo avatar gazorhuman avatar joeyk710 avatar jotarokujo0525 avatar kiyoshikuncool avatar lewdhutao avatar neko-life avatar renovate-bot avatar renovate[bot] avatar sattishh avatar saud-97 avatar shubhtoy avatar sorae42 avatar sprucecellodev125 avatar sudhanplayz avatar techgenius7777 avatar themystiq avatar topjor avatar xstreamspeed avatar yekaranfil avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

discord-musicbot's Issues

Error: input stream: Status code: 416

The bot throws me this error after being on for a while and stops playing the music

Error: input stream: Status code: 416
at ClientRequest. (\Discord-MusicBot-master\node_modules\miniget\dist\index.js:156:27)
at Object.onceWrapper (events.js:422:26)
at ClientRequest.emit (events.js:315:20)
at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:596:27)
at HTTPParser.parserOnHeadersComplete (_http_common.js:119:17)
at HTTPParser.execute ()
at TLSSocket.socketOnData (_http_client.js:469:22)
at TLSSocket.emit (events.js:315:20)
at addChunk (_stream_readable.js:295:12)
at readableAddChunk (_stream_readable.js:271:9)

Deafened bot

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Resume Command

The resume command is not working after you pause it. There is a message that sends to say that the music is resumed, but nothing is playing.

Changing Status and a Reload Command

Have a Changing status like,

Watching: (servercount) servers
Playing: (prefix) | (users) Using Me

Then a few for people to put custom ones for!

And The second part

A reload command so people don't need to restart the bot I don't know much about this one but would be nice to have

ytdl-core issue

I do everything i saw in video but when i try to play a music it's not playing and bot stops working.
bothata

24/7 uninterrupted live music what time the bot there is more ability to communicate

Describe the bug
I put music on my server with bot. NCS Music 24/7 without interruption. A few hours later there is more ability to communicate to discord and YouTube API.

To Reproduce
Steps to reproduce the behavior:

  1. Start the script
  2. Play the music in vocal, live without interruption
  3. Wait a few hours
  4. The bot unable to communicate API

Expected behavior
It happens after a few hours.

Screenshots
Unfortunately there is no screenshot there was no error message.

Smartphone (please complete the following information):

  • Device: [Xiaomi Redmi Note 9]
  • OS: [Android]
  • Browser [Firefox]
  • Version [10]

Additional context
To fix the issue for requiring bot restart.
Exactly the music - https://youtu.be/IP0ZRj-_xG4

Add Audio Filters

Is your feature request related to a problem? Please describe.
Audio filters like 8D, bass boost, etc.

Describe the solution you'd like
Can we have a command that sets the audio filter of the music that is being played like the distube or discord-player?

Thank You

Add Command: Seek

Seek cmd , like when playing the music , we can skip some time and move further in that song or fastforward / backforward it.

Playlist cmd dosen't works

Playlist not found.

Whenever a playlist name or link is used with playlist cmd , it dosen't works and bot shows the message" Playlist not found ".

Efficient leave and join.

Description:
The bot must know when to leave a VC and join another requested one, if there is a song playing in the former VC but no one's listening.

Steps to reproduce:

  1. Join a VC.
  2. Play a song
  3. Leave the VC
  4. Join another VC
    5)Ask for song.
    The bot will continue to play the song on the previous VC itself, but won't join the new one untill the song is over.

What should happen:
Let's consider Groovy, if someone plays a song in a VC and leaves the VC, joins another VC and asks for a song Groovy will quit the previous VC and join this one. But if someone is listening a song in a VC and someone else tries to connect it to another VC Groovy says 'Someone is already listening' as soon as the listener leaves the VC and lets Groovy alone, the 2nd person will be able to make Groovy join his VC.

This is exactly what should happen.

Please add Vote Skip Command

Hello Developers
Their is only Skip Command But Wnen Their are too many users Listening some people Can Skip Quickly And Frequently. So Please make Skip Commands for Mods Only and add vote skip Command

Can you add invite bot command

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

UnhandledPromiseRejectionWarning

Came across this error while using the bot, we where using the bot really fast to see how much it could take tho.

(node:14980) UnhandledPromiseRejectionWarning: TypeError: Cannot read property '0' of undefined
at Object.exports.run (C:\Users\harry_36gamls\OneDrive\Desktop\Studio\commands\play.js:26:32)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
(node:14980) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:14980) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Play command not working

Describe the bug
Whenever you try to play anything with the bot it joins then leaves and displays An unexpected error has occurred.

To Reproduce
Steps to reproduce the behavior:

  1. Clone the repository
  2. Edit the config and rename to .env
  3. use the install script
  4. run the bot
  5. try the play command

Expected behavior
I expected the bot to play the music as usual.

Screenshots
https://cdn.discordapp.com/attachments/765199759228928010/781473494096674826/unknown.png
https://cdn.discordapp.com/attachments/765199759228928010/781473559905566721/unknown.png
https://cdn.discordapp.com/attachments/765199759228928010/781473691690336276/unknown.png

Desktop (please complete the following information):

  • OS: Windows
  • Browser: Chrome
  • Version 87.0.4280.66

Smartphone (please complete the following information):

  • Device: iPhone 6s
  • OS: iOS14.0
  • Browser Safari

Additional context
I moved over from the old version of the bot since I was having the same issues with the play command.

HELP! Someone passing this project off as their own and they gave permission for me to host and modify!

I found this youtuber named Mr Furious and he said he made this bot. His github repository is here, https://github.com/MrFurious9/MusicBot. I am working on developing a Discord bot called DisTunes and I used this as the base and am working on adding my own stuff. (I am hosting it on Repl.it.)

However, when I opened the code to see what I'm working with I realised that the music emoji being used is connected to this repository and not his. He passed it off as his own and gave everyone permission to modify and use the programming. I feel as if he is stealing and I should report this to you.

On that note, do I have permission to keep using this programming even though it's yours and not his? I'll direct all nessecary credit to you and not him.

Ping command (I already made it just use this code)

const discord = require("discord.js");

module.exports = {
info: {
name: "ping",
description: "To see the ping of the bot",
usage: "[ping]",
aliases: ["pg"],
},

run: async (client, message, args) => {

let embed = new discord.MessageEmbed()
.setDescription(`Pong - ${client.ws.ping}ms`)
.setColor("RANDOM")
.setFooter(`Requested by ${message.author.username}`)

message.channel.send(embed)

}
}

Add A DJ role Command

Please add a DJ role with setdj command and Give permision to skip Song Without Voteskip and stop song please

Play Command

When i did the play command it come up with this error.
TypeError: Cannot read property 'replace' of undefined

Add Command: 8d

hear is a example

module.exports = {
    help: {
        name: "8d",
        aliases: []
    },
    run: async (client, message, args) => {
        if (!message.member.voice.channel) return message.channel.send("❌ | You are not in a voice channel!");
        if (message.guild.me.voice.channel && message.member.voice.channel.id !== message.guild.me.voice.channel.id) return message.channel.send("❌ | You are not in my voice channel!");
        if (!client.player.isPlaying(message.guild.id)) {
            return message.channel.send("❌ | I'm not playing anything?");
        }
        const edEnabled = await client.player.getQueue(message.guild.id).filters["8D"];
        client.player.setFilters(message.guild.id, {
            "8D": !edEnabled
        });
        return message.channel.send(`βœ… | 8D ${!edEnabled ? "Enabled" : "Disabled"}!`)
    }
};

Error parsing info: Unable to retrieve video metadata

Allways i am getting This error

Error: input stream: Error parsing info: Unable to retrieve video metadata at getWatchPage (D:\Discord-MusicBot-3.0.0\node_modules\ytdl-core\lib\info.js:75:13) at runMicrotasks (<anonymous>) at processTicksAndRejections (internal/process/task_queues.js:97:5) at async exports.getBasicInfo (D:\Discord-MusicBot-3.0.0\node_modules\ytdl-core\lib\info.js:84:22) at async Map.getOrSet (D:\Discord-MusicBot-3.0.0\node_modules\ytdl-core\lib\cache.js:24:19) at async exports.getInfo (D:\Discord-MusicBot-3.0.0\node_modules\ytdl-core\lib\info.js:226:14) at async Map.getOrSet (D:\Discord-MusicBot-3.0.0\node_modules\ytdl-core\lib\cache.js:24:19)

Youtube links

Just a suggestion so that you can play music using YouTube links. Also there is no limit on how much you can change volume. Hope you reach 500 subs :).

More Statuses

Allow us to add more the one status like a way for it to change every X amount of time

Stolen

CorbinDioxide#2965 has downloaded the code, claimed the bot is his and used it in his discord server, he has edited the code so there are credits to him in some of the footers. To confirm you are him please dm me on discord the following:
NIV5NE46UBU532VN83y48NWN87

Make Commands Guild-Only

When DMing the Bot (prefix)play the bots prints error.
I found this: https://discordjs.guide/commando/guild-only.html but this only works when using commando
Error (hosted on replit):

      at WebSocket.emit (events.js:315:20)
} reason:  TypeError: Cannot read property 'voice' of null
    at Object.run (/home/runner/discordjs/commands/play.js:17:34)
    at module.exports (/home/runner/discordjs/events/message.js:32:9)
    at Client.emit (events.js:315:20)
    at MessageCreateAction.handle (/home/runner/discordjs/node_modules/discord.js/src/client/actions/MessageCreate.js:31:14)
    at Object.module.exports [as MESSAGE_CREATE] (/home/runner/discordjs/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (/home/runner/discordjs/node_modules/discord.js/src/client/websocket/WebSocketManager.js:384:31)
    at WebSocketShard.onPacket (/home/runner/discordjs/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22)
    at WebSocketShard.onMessage (/home/runner/discordjs/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10)
    at WebSocket.onMessage (/home/runner/discordjs/node_modules/ws/lib/event-target.js:132:16)
    at WebSocket.emit (events.js:315:20)

ChangeAble Prefix

Is your feature request related to a problem? Please describe.
Most servers want a different prefix because other bots have the same one

Describe the solution you'd like
It would be nice if you guys could use mongoosedb to have a changeable prefix like a new branch called prefix or something and have it where people can use their own database or something to let people change the prefix of the bot per server

Describe alternatives you've considered
I have looked into changing it myself and I can get it to work but none of the music commands like !play or anything else like that work so while I am getting somewhere I still haven't gotten it to fully work

plz help

at processTicksAndRejections (internal/process/task_queues.js:97:5) {
errno: -2,
syscall: 'open',
code: 'ENOENT',
path: './afk.json'
}
} reason: Error: ENOENT: no such file or directory, open './afk.json'
at Object.openSync (fs.js:462:3)
at Object.readFileSync (fs.js:364:35)
at play (/home/runner/DenseSubduedTest/commands/play.js:100:29)
at Object.run (/home/runner/DenseSubduedTest/commands/play.js:154:7)
at processTicksAndRejections (internal/process/task_queues.js:97:5)

Loop command

Make a loop command that loops the current queue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.