Музыкальные боты для Дискорда
Пользователи мессенджера часто спрашивают, как в Дискорде добавить бота с музыкой, и в чем особенности таких программ. Ниже рассмотрим несколько вариантов, поговорим о том, как их установить на сервер Discord, и как пользоваться.
Виды и особенности
Музыкальный бот для Discord — специальное дополнение, которое устанавливается на один из серверов Дискорд и открывает доступ к прослушиванию музыки с разных ресурсов. Сегодня в распоряжении пользователей несколько вариантов помощников, которые можно добавить на сервер. Для удобства сведем их функции, плюсы и минусы в таблицу.
Поиск результатов на YouTube.
Возможность изменения серверного префикса.
Поддержка плейлистов на Ютуб.
Отображение текста песни.
Черный и белый списки.
Отсутствие премиум версии.
Быстрое перемешивание плейлиста.
Обновление списка воспроизведения.
Создание разрешений на больших серверах.
Поиск Ютуб из чата.
Не нужно настраивать. Можно сразу добавить и пользоваться.
Минимальные потери качества.
Открытый исходный код.
Нет дополнительных функций (кроме музыки).
Больше подходит для небольших серверов Дискорд.
Аудио-эффекты с контролем басов и режима работы.
Большой объем сервера.
Поддержка многих сайтов
Добавление аудио-эффектов, контроля громкости и сохранения очереди только после оплаты.
Просмотр Ютуб в прямом эфире.
Быстрая установка на Дискорд.
Возможность трансляции звука в течение всего дня.
Высокое качество звука.
Кроме рассмотренных выше, можно добавить и других помощников — Tony Bamanaboni, ErisBot, ZandrCraft и другие. Много вопросов касается того, какие бывают боты на русском языке. Большинство из них имеют англоязычный интерфейс, но это не создает трудностей с управлением, ведь для этого используются специальные команды.
Как установить
Много вопросов касается того, как добавить бота с музыкой в Дискорде. Вне зависимости от типа помощника его можно пригласить по следующему алгоритму:
- Перейдите на официальный сайт бота с музыкой для Дискорд.

- Найдите кнопку добавления и жмите на нее.
- Выберите сервер, куда необходимо поставить бота.

- Задайте опции, которые будут доступны Дискорд-боту.
- Жмите на кнопку Авторизовать.

После этого можно настроить бота Дискорд для прослушивания музыки, если эта опция предусмотрена.
Как пользоваться
Многие после установки не могут разобраться, как включить музыку через бота, и как вообще пользоваться такими утилитами. Во всех случаях управление осуществляется с помощью команд, которые вбиваются в чат. К примеру, в Groovy для использования можно использовать следующие сообщения:
- -play [link or search query] — играть музыку, добавить в плейлист;
- -queue — информация о списке;
- -next — переход к следующей песне;
- -play file — играть файл из сообщения;
- -join — фиксация бота на голосовом канале;
- -clear — очистка трека из списка и т. д.
Точная информация о боте с музыкой в Дискорд (как добавить, команды, функции, стоимость) описаны на официальных сайтах. Именно с них необходимо начинать изучение.
Итоги
Теперь вы знаете, как добавить помощника с музыкой на Дискорд, и какому варианту отдать предпочтение. Сегодня существует десятки таких Discord-ботов, поэтому перед установкой изучите их возможности, а уже после принимайте решение.
Создание музыкального бота с помощью Discord.js
API discord предоставляет инструмент для создания и использования ботов. Рассмотрим пример создания базового музыкального бота и добавления его на сервер. Бот сможет проигрывать, пропускать и останавливать музыку, а также будет поддерживать функцию очереди воспроизведения.
Установка discord-бота
Создаем новое приложение на портале разработки discord.
Переходим на портал и нажимаем на “new application”.
Затем вводим название приложения и нажимаем на кнопку “create”.
Затем переходим на вкладку бот и нажимаем на “add bot”.
Бот создан! Теперь можно перейти к добавлению его на сервер.
Добавление бота на сервер
Добавляем созданный бот с помощью генератора OAuth2 URL.
Для этого переходим на страницу OAuth2 и выбираем бота в панели scope.
Затем выбираем необходимые разрешения для проигрывания музыки и чтения сообщений.
Теперь копируем сгенерированный URL и вставляем его в браузер.
Затем выбираем сервер, на который хотим добавить URL и нажимаем на кнопку “authorize”.
Создание проекта
Переходим к созданию проекта с использованием терминала.
Для начала создаем директорию и переходим в нее, используя две следующие команды:
mkdir musicbot && cd musicbot
Затем создаем модули проекта с помощью команды npm init. После введения команды будут заданы несколько вопросов. Ответьте на них и продолжайте.
Создаем два файла, в которых мы будем работать.
touch index.js && touch config.json
Теперь откройте проект в текстовом редакторе. Я использую VS Code и открываю его с помощью следующей команды:
code.
Основы Discord js
Прежде чем начать, нужно установить несколько зависимостей.
npm install discord.js ffmpeg-binaries opusscript ytdl-core --save
После завершения установки продолжаем написание файла config.json. Сохраните для бота токен и префикс, который он должен слушать.
"prefix": "!",
"token": "your-toke"
>
Для получения токена снова зайдите на портал разработки discord и скопируйте его из раздела bot.
Это все, что нужно выполнить в файле config.json. Приступим к написанию кода javascript.
Сначала импортируем все зависимости.
const Discord = require('discord.js');
const prefix,
token,
> = require('./config.json');
const ytdl = require('ytdl-core');
Затем с помощью токена создаем клиента и логин.
const client = new Discord.Client();
client.login(token);
Добавляем несколько базовых listeners, выполняющих метод console.log при запуске.
client.once('ready', () => console.log('Ready!');
>);
client.once('reconnecting', () => console.log('Reconnecting!');
>);
client.once('disconnect', () => console.log('Disconnect!');
>);
Теперь можно начать работу с ботом с помощью команды node. Бот должен быть online в discord и в консоль выведется“Ready!”
node index.js
Чтение сообщений
Бот находится на сервере и может выходить online. Теперь можно начать читать сообщения в чате и отвечать на них.
Для чтения сообщений нужно написать лишь одну простую функцию.
client.on('message', async message =>
>
Создаем listener для события message, получаем сообщение и сохраняем его в объект message.
Проверяем: если сообщение пришло от бота, то игнорируем его.
if (message.author.bot) return;
В этой строке проверяется, является ли автором сообщения бот. Сообщение возвращается, если это так.
Затем проверяем, начинается ли сообщение с ранее определенного префикса. Сообщение возвращается, если нет.
if (!message.content.startsWith(prefix)) return;
После этого проверяем, какую команду нужно запустить. Это можно выполнить с помощью простых операторов if.
const serverQueue = queue.get(message.guild.id);
if (message.content.startsWith(`$play`)) execute(message, serverQueue);
return;
> else if (message.content.startsWith(`$skip`)) skip(message, serverQueue);
return;
> else if (message.content.startsWith(`$stop`)) stop(message, serverQueue);
return;
> else message.channel.send('You need to enter a valid command!')
>
В этом блоке кода проверяется, какую команду нужно запустить, а также осуществляется вызов команды. Если полученная команда недопустима, то вводим сообщение об ошибке в чат с использованием функции send().
Узнав, какие команды нужно запустить, можно перейти к их реализации.
Добавление песен
Начнем с добавления команды play. Для этого понадобится песня и гильдия (гильдия представляет собой изолированную коллекцию пользователей и каналов и часто упоминается в качестве сервера). Также понадобится ранее установленная библиотека ytdl.
Для начала создаем map с названием очереди, в котором будут сохранены все песни, введенные в чат.
const queue = new Map();
Затем создаем функцию async под названием execute и проверяем, находится ли пользователь в голосовом чате, и есть ли у бота соответствующее разрешение. Если нет, то пишем сообщение об ошибке и возвращаем.
async function execute(message, serverQueue) const args = message.content.split(' ');
const voiceChannel = message.member.voiceChannel;
if (!voiceChannel) return message.channel.send('You need to be in a voice channel to play music!');
const permissions = voiceChannel.permissionsFor(message.client.user);
if (!permissions.has('CONNECT') || !permissions.has('SPEAK')) return message.channel.send('I need the permissions to join and speak in your voice channel!');
>
>
Переходим к получению информации о песне и сохранении ее в объект song. Для этого используем библиотеку ytdl, которая получает информацию о песне по ссылке на youtube.
const songInfo = await ytdl.getInfo(args[1]);
const song = title: songInfo.title,
url: songInfo.video_url,
>;
Необходимая информация сохраняется в объект song.
После сохранения информации нужно создать контракт для добавления в очередь. Для этого проверяем, определен ли serverQueue, что означает, что музыка уже играет. Если да, то добавляем песню в существующий serverQueue и отправляем сообщение об успешном выполнении. Если нет, то создаем его, подключаемся к голосовому каналу и начинаем проигрывать музыку.
if (!serverQueue)
>else serverQueue.songs.push(song);
console.log(serverQueue.songs);
return message.channel.send(`$ has been added to the queue!`);
>
В этом фрагменте мы проверяем, является ли serverQueue пустым. Если нет добавляем туда песню.
Если serverQueue имеет значение null, создаем контракт.
// Creating the contract for our queue
const queueContruct = textChannel: message.channel,
voiceChannel: voiceChannel,
connection: null,
songs: [],
volume: 5,
playing: true,
>;
// Setting the queue using our contract
queue.set(message.guild.id, queueContruct);
// Pushing the song to our songs array
queueContruct.songs.push(song);
try // Here we try to join the voicechat and save our connection into our object.
var connection = await voiceChannel.join();
queueContruct.connection = connection;
// Calling the play function to start a song
play(message.guild, queueContruct.songs[0]);
> catch (err) // Printing the error message if the bot fails to join the voicechat
console.log(err);
queue.delete(message.guild.id);
return message.channel.send(err);
>
В этом блоке кода создается контракт, а песня добавляется в массив songs.
Затем присоединяемся к голосовому чату пользователя и вызываем функцию play(), которую затем реализуем.
Проигрывание песен
Поскольку теперь можно добавлять песни в очередь и создавать контракт при его отсутствии, можно приступить к реализации функцию проигрывания.
Сначала создаем функцию play, которая обладает двумя параметрами (гильдия и песня, которую нужно проиграть) и проверяет, является ли объект song пустым. Если да, то покидаем голосовой канал и удаляем очередь.
function play(guild, song) const serverQueue = queue.get(guild.id);
if (!song) serverQueue.voiceChannel.leave();
queue.delete(guild.id);
return;
>
>
Затем начинаем проигрывать песню с помощью функции playStream() и URL-адреса песни.
const dispatcher = serverQueue.connection.playStream(ytdl(song.url))
.on('end', () => console.log('Music ended!');
// Deletes the finished song from the queue
serverQueue.songs.shift();
// Calls the play function again with the next song
play(guild, serverQueue.songs[0]);
>)
.on('error', error => console.error(error);
>);
dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
В этом фрагменте мы создаем stream и передаем его URL-адресу песни. Также добавляем два listeners, которые обрабатывают события end и error.
Примечание: это рекурсивная функция, которая повторяет вызов самой себя. Рекурсия используется для проигрывания следующей песни, когда другая заканчивается.
Теперь можно проиграть песню, введя !play URL в чат.
Пропуск песен
Переходим к реализации функции пропуска. Для этого нужно выполнить завершения диспетчера, созданного в функции play() для начала проигрывания следующей песни.
function skip(message, serverQueue) if (!message.member.voiceChannel) return message.channel.send('You have to be in a voice channel to stop the music!');
if (!serverQueue) return message.channel.send('There is no song that I could skip!');
serverQueue.connection.dispatcher.end();
>
В этом фрагменте мы проверяем, находится ли пользователь, который ввел команду, в голосовом канале, а также есть ли песни для пропуска.
Остановка песен
Функция stop() похожа на skip(), за исключением того, что массив songs очищается, из-за чего бот удаляет очередь и покидает голосовой чат.
function stop(message, serverQueue) if (!message.member.voiceChannel) return message.channel.send('You have to be in a voice channel to stop the music!');
serverQueue.songs = [];
serverQueue.connection.dispatcher.end();
>
Исходный код для index.js:
Полный исходный код для музыкального бота:
const Discord = require('discord.js');
const prefix,
token,
> = require('./config.json');
const ytdl = require('ytdl-core');
const client = new Discord.Client();
const queue = new Map();
client.once('ready', () => console.log('Ready!');
>);
client.once('reconnecting', () => console.log('Reconnecting!');
>);
client.once('disconnect', () => console.log('Disconnect!');
>);
client.on('message', async message => if (message.author.bot) return;
if (!message.content.startsWith(prefix)) return;
const serverQueue = queue.get(message.guild.id);
if (message.content.startsWith(`$play`)) execute(message, serverQueue);
return;
> else if (message.content.startsWith(`$skip`)) skip(message, serverQueue);
return;
> else if (message.content.startsWith(`$stop`)) stop(message, serverQueue);
return;
> else message.channel.send('You need to enter a valid command!')
>
>);
async function execute(message, serverQueue) const args = message.content.split(' ');
const voiceChannel = message.member.voiceChannel;
if (!voiceChannel) return message.channel.send('You need to be in a voice channel to play music!');
const permissions = voiceChannel.permissionsFor(message.client.user);
if (!permissions.has('CONNECT') || !permissions.has('SPEAK')) return message.channel.send('I need the permissions to join and speak in your voice channel!');
>
const songInfo = await ytdl.getInfo(args[1]);
const song = title: songInfo.title,
url: songInfo.video_url,
>;
if (!serverQueue) const queueContruct = textChannel: message.channel,
voiceChannel: voiceChannel,
connection: null,
songs: [],
volume: 5,
playing: true,
>;
queue.set(message.guild.id, queueContruct);
queueContruct.songs.push(song);
try var connection = await voiceChannel.join();
queueContruct.connection = connection;
play(message.guild, queueContruct.songs[0]);
> catch (err) console.log(err);
queue.delete(message.guild.id);
return message.channel.send(err);
>
> else serverQueue.songs.push(song);
console.log(serverQueue.songs);
return message.channel.send(`$ has been added to the queue!`);
>
>
function skip(message, serverQueue) if (!message.member.voiceChannel) return message.channel.send('You have to be in a voice channel to stop the music!');
if (!serverQueue) return message.channel.send('There is no song that I could skip!');
serverQueue.connection.dispatcher.end();
>
function stop(message, serverQueue) if (!message.member.voiceChannel) return message.channel.send('You have to be in a voice channel to stop the music!');
serverQueue.songs = [];
serverQueue.connection.dispatcher.end();
>
function play(guild, song) const serverQueue = queue.get(guild.id);
if (!song) serverQueue.voiceChannel.leave();
queue.delete(guild.id);
return;
>
const dispatcher = serverQueue.connection.playStream(ytdl(song.url))
.on('end', () => console.log('Music ended!');
serverQueue.songs.shift();
play(guild, serverQueue.songs[0]);
>)
.on('error', error => console.error(error);
>);
dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
>
client.login(token);
Заключение
У вас все получилось! Надеюсь, эта статья помогла вам разобраться в API Discord и создании с его помощью простого бота.
Как настроить музыкального бота в дискорде
# Инструкция по использованию ботов ###### tags: `discord`, `DISCORD BOTS` ## 5eCrawler префикс !! — !!help ## AltDentifier ## Avrae префикс . ## Carl-bot префикс %% ## Dash Delta префикс — ## DISBOARD ## DisCal PREFIX !! https://www.discalbot.com/https://discalbot.com/commands ## Discord Server List ## DiscordCrawler ## Dyno — префикс ? ## Groovy — музыкальный бот, аналогичный Ритму. Команды выполняются через префикс «-«(без кавычек). Перечень базовых команд: -play URL(или название трека в ютуб-канале) -queue — показать очередь -next — следующий трек -back — возвращает предыдущий трек -clear — очистить очередь -loop — «закольцевать» трек(пускать повторно) -pause — поставить на паузу -resume — продолжить воспроизведение -stop — остановить трек Более подробный список команд вы можете найти на https://groovy.bot/commands ## MEE6 https://mee6.xyz/dashboard/264835347739836423 ## Points ## ProBot префикс # https://probot.io/commands ## reminder-bot ## RPG Schedule ## Rythm ## Rythm — бот для проигрывания музыки со сторонних ресурсов в Discord Первый музыкальный бот Rhythm работает через приписку “!”, а второй через “>” Для использования применяются команды(пример): !play URL — запустить проигрывание трека (для этого необходимо находиться в игровом голосовом канале, запись должна длиться не более 3-х часов, рекомендуемый источник — Youtube); !disconnect — отключить бота от голосового канала; !skip — пропустить трек (актуально если у вас запущен плейлист); !pause — поставить трек на паузу; С полным списком команд можно ознакомиться здесь — https://rythmbot.co/features#list ## Saber — @Saber «` — Intro «` I am **Saber**, the event scheduling discord bot. I can provide your discord with basic event schedule management. Invite me to your discord and create a dedicated command channel named **saber_control** to get started. github: [https://github.com/notem/Saber-Bot](https://github.com/notem/Saber-Bot «https://github.com/notem/Saber-Bot») userdocs: [https://nmathe.ws/bots/saber](https://nmathe.ws/bots/saber «https://nmathe.ws/bots/saber») support: [https://discord.gg/ZQZnXsC](https://discord.gg/ZQZnXsC «https://discord.gg/ZQZnXsC») invite: [https://discordapp.com/api/oauth2/authorize?client_id=250801603630596100&scope=bot&permissions=523344](https://discordapp.com/api/oauth2/authorize?client_id=250801603630596100&scope=bot&permissions=523344 «https://discordapp.com/api/oauth2/authorize?client_id=250801603630596100&scope=bot&permissions=523344») «` — Command List «` # **Core commands** ### `!init` \- initialize a new schedule ### `!edit` \- modify an event ### `!delete` \- remove schedules or events ### `!guild` \- adjust guild-wide settings ### `!create` \- add an event to a schedule ### `!config` \- configure a schedule’s settings # **User commands** ================ ### `!purge` \- removes messages created by the bot ### `!list` \- show an event’s rsvp list ### `!help` \- receive info messages ### `!schedules` \- lists all schedules ### `!events` \- lists all events for the guild # **Google commands** ================ ### `!sync` \- sync a schedule to a google calendar ### `!oauth` \- authorize access to Google Calendar # **Misc commands** ================ `!test` \- test an event’s announcement message `!skip` \- skips to the next event occurrence `!sort` \- reorder the schedule by start time `!zones` \- show available timezones `!manage` \- add or kick users from an event `!diagnose` \- troubleshoot problems `!announcements` \- list and configure event announcements To view detailed information for any of the above commands, DM me `help command`. ## Sidekick @Sidekick бот для броска костей. Справка: https://github.com/ArtemGr/Sidekick ## Sidekick — бот для бросания кубов. Для использования применяются команда: /r XdY (например /r 1d4 вернет результат броска четырехгранника) ## Statbot ## Titan — @Titan ## UB3R-BOT @UB3R-B0T — префикс ## YAGPDB.xyz ## ZIRA
Last changed by
Add a comment
Read more
Для Андрея
ПРИЕМНАЯ ДОЧЬ И ПОМОЩНИКПерсонежей встречает двое – невысокая (5 футов 3 дюйма) красивая блондинка с длинными волосами – Патриция, приемная дочь Винсента, его второй помощник, которая является снайпером и ее любимым оружием является длинноствольная крупнокалиберная винтовка с оптическим иллюзорным прицелом с компенсаторами отдачи изготовленная на заказ – подарок Винсента на её день рождения. Патриция находится в полном шоке, растеряна и не знает что делать дальше.
NPC Generation
NPC BUILDERS Giffyglyph’s Monster Maker https://giffyglyph.com/monstermaker/grimoire/2.1.2/en/ Homebrew Builder — 5etools — create Creature, Spell, Legendary Group **[Text Converter — 5etools](https://5e.tools/converter.html)** Can convert creature, feat, item, spell, table [Renderer Demo — 5etools](https://5e.tools/renderdemo.html) ** critterdb**
EXTERNAL POLITICS OF CORMYR IN 1493 DR
External politics of Cormyr
ВНЕШНЯЯ ПОЛИТИКА КОРМИРА
ВНЕШНЯЯ ПОЛИТИКА КОРМИРА
Как в Discord включить плейлист через бота
Одним из самых популярных в мире приложений является Discord, функционалом которого пользуются боле 250 млн. участников. Одним из преимуществ менеджера является предоставление возможности всем зарегистрированным пользователям прослушивать аудио-файлы. Данная опция добавляет позитива и атмосферности в процессе общения, игрового процесса. Из этой стать вы узнаете, как включить плейлист в Дискорде через бота, используя инструменты приложения.

Как запустить музыку в мессенджере Discord
Для запуска плей-листа необходимо:
- Скачиваете и устанавливаете на свой компьютер программное обеспечение «Virtual Audio Cable».
- В панели задач клацаете правой клавишей мышки на иконку динамика.
- Выбираете опцию «Звуки».
- Делаете переход по ссылке «Воспроизведение».
- Находите опцию «Line 1», наводите на не курсор, тапаете правой кнопкой.
- В открывшемся меню выбираете функцию «Использовать по умолчанию». По такой же схеме поступаете с вкладкой «Запись».
- Осуществляете запуск музыкального плейера, через который будете транслировать аудиофайлы.
- Заходите в настройки проигрывателя.
- Выбираете вкладку «Воспроизведение».
- Ищите устройства, которые поддерживают опцию «Line 1».
- Переходите во второй аккаунт Дискорд.
- В нижней части экрана, слева, находите кнопку с изображением шестеренки.
- Клацаете по разделу «Голос и видео».
- В открывшемся меню выбираете функцию «Настройка голоса», над ней тапаете по клавише «Line 1».
На заметку: Чтобы прослушивать плей-листы пользователь может задействовать программуv «Virtual Audio Cable», но ему необходимо зарегистрировать второй аккаунт в Discord. Если этого не сделать, музыку будут слышать только гости сервера.

Как включить плейлист в Дискорде через бота
Пользователь должен действовать следующим образом:
- Заходите на официальный сайт «rythmbot.com».
- Для установки бота кликаете по клавише «Invite».
- В открывшемся окне вводите личный е-мейл, секретный пароль в Discord.
- Осуществляете авторизацию в приложении.
- На экране отобразится окно добавления на сервер бота. В предложенном списке находите свой Дискорд-сервер, отмечаете его, кликаете по кнопке «Активировать».
- В специальном окошке ставите галочку, подтверждая надпись «Я не робот».
- Проверяете добавление бота «Rhytm» на свой сервер в Discord.
- Наводите мышку на опцию «Голосовой канал», щелкаете по клавише «Основной».
- Чтобы запустить музыку даете команду, набрав комбинацию «!play ». После этого жмете на опцию «Ввод» и слушаете мелодии.

На заметку: После выхода из настроек, пользователю нужно запустить на плейере музыкальную композицию. Ее будет слушать не только он, но и все посетители сервера.
Частые вопросы:
- Как в Discord использовать телефон в качестве микрофона
- Как сделать трансляцию музыки в Discord
- Как в Discord включить трансляцию музыки из ВКонтакте
- Что такое Дискорд Онлайн, и как им пользоваться
