YMDB это музыкальный бот для дискорда написанный на C# и используя библиотеки DSharp+, Yandex.Music.Api. Он воспроизводит в голосовом канале дискорда песни по запросу пользователей из сервиса YandexMusic.
Для успешной установки и работы бота необходимо установить следущие зависимости:
Перед тем как начинать выполнять этот этап у вас должы быть установлены все необходимые зависимости.
Выполните следующую команду:
sudo apt-get install libsodium23 libsodium-dev
sudo MAKEOPTS="-j8" emerge -av "<dev-dotnet/dotnet-sdk-bin-6.0" dev-libs/libsodium
git clone https://github.com/Amir0715/YMBD.git $YOUR_DIR -b master
Создайте файл BotConfig.json в каталоге YMDB/config и добавьте в него следующее:
{
"token": "<DISCORD_BOT_TOKEN>",
"yandexToken": "<YANDEX_MUSIC_TOKEN>",
"prefix" : "<DISCORD_BOT_PREFIX>",
"login" : "<YANDEX_MUSIC_LOGIN>",
"password" : "<YANDEX_MUSIC_PASSWORD>",
"downloadPath" : "<ABSOLUTE_DOWNLOAD_DIR>"
}
Рассмотрим его подробнее:
<DISCORD_BOT_TOKEN>
- Ваш токен который вам необходимо получить на странице для разработчиков.
<YANDEX_MUSIC_TOKEN>
- Ваш токен от яндекс музыки
<DISCORD_BOT_PREFIX>
- Префикс к командам для бота.
<YANDEX_MUSIC_LOGIN>
- Ваш логин к аккаунту yandex.music.
<YANDEX_MUSIC_PASSWORD>
- Ваш пароль к аккаунту yandex.music.
<ABSOLUTE_DOWNLOAD_DIR>
- Абсолютный путь к аталогу для временного хранения аудиофайлов.
Чтобы получить токен необходимо:
- Создать на указанной странице приложение.
- На странице приложения нажать на вкладку Бот.
- На странице бота справа от аватарки кнопка скопировать.
Чтобы получить токен яндекса, выполните запрос
curl --location --request POST 'https://oauth.yandex.ru/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'client_id=23cabbbdc6cd418abb4b39c32c41195d' \
--data-urlencode 'client_secret=53bc75238f0c4d08a118e51fe9203300' \
--data-urlencode 'username=<YANDEX_MUSIC_LOGIN>' \
--data-urlencode 'password=<YANDEX_MUSIC_PASSWORD>'
Заполнение токена яндекса не обязательно. В случае, если токен яндекса существует, то используется он, в обратном случае используется авторизация через логин и пароль
Востановите зависимости проекта и соберите его следущими командами:
cd ~/YMDB
dotnet restore
dotnet build --no-restore
Собранное приложение будет лежать в каталоге $YOUR_DIR/YMBD/YMBD/bin/Debug/net5.0
с названием YMBD.dll
.
По ссылке выше (дискорд портал разработчиков) зайдите в свое приложение. Нажмите OAuth2 > URL Generator. Поставьте галку bot. в графе Voice Permissions Выставьте:
- Connect
- Speak
- Use voice activity
В графе Text permissions Выставьте:
- Read message history
Запустить его можно вызвав команду:
dotnet $YOUR_DIR/YMDB/YMDB/bin/Debug/net5.0/YMBD.dll
Все команды пишутся с использованием префикса, указанного вами ранее в конфиге следующим образом: "префикс команда аргументы ( если требуются)" Разделенные пробелами.
Команды указаны в виде "сокращение-полная команда (список возможных аргументов через запятую) # описание" Аргументы относятся как к сокращенной, так и к полной команде
j-join (название канала) # присоединиться к голосовому каналу
p-play (url, название песни, группы, плейлиста, альбома) # запустить проигрывание (...) иногда нужно пару раз вызвать
s-stop
se-search(название трека)
n-next
le-leave # выйти из канала