Simple ytdl wrapper for discord bots with custom ffmpeg args support.
Documentation
Discord YTDL Core
Installing
npm i discord-ytdl-core
https://www.npmjs.com/package/discord-ytdl-core
Please install an Opus engine & FFmpeg before using this package.
Supported Opus Engines
Options
This package provides 2 extra options excluding ytdl-core options.
They are: seek
& encoderArgs
.
-
seek: This parameter takes the time in seconds.
If this option is provided, it will return the stream from that frame.
Seek option is provided here because discord.js seek doesn't work for ogg/opus
& webm/opus
stream.
This option is ignored when the supplied parameter type isn't a number.
-
encoderArgs: This parameter takes the Array of FFmpeg arguments.
Invalid args will throw error and crash the process.
This option is ignored when the supplied parameter type isn't array. Invalid FFmpeg args might crash the process.
-
Other options are the options for ytdl-core.
Example
const ytdl = require("discord-ytdl-core");
const Discord = require("discord.js");
const client = new Discord.Client();
client.on("ready", () => {
console.log("ready")
});
client.on("message", msg => {
if (msg.author.bot || !msg.guild) return;
if (msg.content === "!play") {
if (!msg.member.voice.channel) return msg.channel.send("You're not in a voice channel?");
let stream = ytdl("https://youtube.com/watch?v=ERu6jh_1gR0", {
filter: "audioonly",
encoderArgs: ['-af', 'bass=g=10,dynaudnorm=f=200']
});
msg.member.voice.channel.join()
.then(connection => {
connection.play(stream, {
type: "opus"
})
.on("finish", () => {
msg.guild.me.voice.channel.leave();
})
});
}
});
client.login("TOKEN");
Other functions
Visit ytdl-core for other functions.
Related
Developers
Join our Official Discord Server