Ok, I have two solutions for you. This first one is a block of code I have used and I can say it works from experience.
It requires ffmpeg, opusscript and ytdl:
function play(connection, message){
var server = servers[message.guild.id];
server.dispatcher = connection.playStream(ytdl(server.queue[0], {filter:
"audioonly"}));
server.queue.shift();
server.dispatcher.on("end", function() {
if(server.queue[0]) play(connection, message);
else connection.disconnect();
});
}
This second option which I would highly recommend is a node module that has many more advanced features that are hard to implement such as:
- musichelp [command]: Displays help text for commands by this addon, or help for a specific command.
- play |: Play audio from YouTube.
- skip [number]: Skip a song or multi songs with skip [some number],
- queue: Display the current queue.
- pause: Pause music playback.
- resume: Resume music playback.
- volume: Adjust the playback volume between 1 and 200.
- leave: Clears the song queue and leaves the channel.
- clearqueue: Clears the song queue.
- owner: Various owner commands/actions. (W.I.P)
It is easy to install and get started, here is the node page with all the information about installation etc.