Да, это возможно с помощью библиотеки Discord.js и пакета ytdl-core. Вот примерный скрипт для дискорд бота:
const Discord = require('discord.js');
const client = new Discord.Client();
const ytdl = require('ytdl-core');
client.on('message', async message => {
if (message.content.startsWith('!play')) {
const args = message.content.split(' ');
const voiceChannel = message.member.voice.channel;
if (!voiceChannel) {
return message.reply('Вы должны быть в голосовом канале, чтобы воспроизводить музыку!');
}
const streamOptions = { seek: 0, volume: 1 };
voiceChannel.join().then(connection => {
const stream = ytdl(args[1], { filter: 'audioonly' });
const dispatcher = connection.play(stream, streamOptions);
dispatcher.on('finish', () => voiceChannel.leave());
}).catch(err => console.log(err));
}
});
client.login('токен_вашего_бота');
Для использования бота необходимо написать в чат команду !play, за которой следует ссылка на видео из YouTube. Бот будет подключаться к голосовому каналу, в котором находится пользователь, и проигрывать аудио из указанной ссылки. После окончания проигрывания бот автоматически отключится от голосового канала.