Warning
Этот код я больше не обновляю. Все новые функции по типу "Моя волна" и привязки данных к БД только в моем боте: Yandex Music
Note
Этот функционал проигрывания треков из Яндекс Музыки изначально был реализован в теме YandexMusicDiscordBot.
Но после использования бота, я понял, что его ещё нужно доделать и добавить новые функции. Поэтому и опубликовал fork этого проекта. Где исправил всё что было замечено за неделю использования, а также добавил новые функции.
Вы также можете пригласить моего улучшенного бота, который выполняет только роль проигрывания музыки Yandex - Yandex Music
- Проигрывание Треков/Альбомов/Плейлистов/Подкастов/Аудиокниг из Яндекс.Музыки
- Формирование очереди из Треков/Альбомов/Плейлистов.
- Полноценный МедиПлеер. (Данные пользовательские смайлики поддерживаются на всех серверах, если бот был добавлен в канал с этими смайликами. Сюда же я залил версию без них. Если будет интересно как это сделать, то я залью обновленную версию, где вы сможете указывать свои пользовательские смайлики)
- Пропуск как одного трека так и плейлиста.
- Остановка проигрывание и его возобновление с помощью медиаплеера.
- Отслеживание активности в голосовом чате.
- Если в голосов канале нет никого кроме бота в течении 3-х минут он останавливает проигрывание и выходит из голосового чата.
Защита от дурака
- Если бота отключат не с помощью медиаплеера бот спокойно закончит проигрывание.
- Интерактивные кнопки в медиаплеере доступны только тем пользователям которые в данный момент находятся в одном голосовом канале с ботом.
- Поиск Трека/Альбома/Плейлиста/Подкаста/Аудиокниги как с помощью прямой ссылки так и с помощью обычного запроса.
- Повтор трека, который играет в данный момент, пока не отключишь эту функцию
- Похожие треки. Находит похожие треки по треку, который играет в данный момент. Если были найдены, создаен новый плелист с ними
- Перемешать все треки во всех плейлистах в случайном порядке (сделанно для тех, кто часто запускает один и тот же плейлист и хочет слушать песни в другом порядке)
- Теперь вместо удаления сообщения и создания нового при переключении песен, он просто редактирует уже имеющееся
- Так же теперь полоса от сообщения Embed подстраивается под среднее значенее цветов из обложки трека
- Много мелких исправлений, когда что то вызывало непредвиденные ошибки
Для работы бота вам необходим ffmpeg Чтобы скачать его в linux(ubuntu):
apt install ffmpeg
в Windows: Вам необходимо скачать ffmpeg здесь. И в bot.music.event_loop.py на этой строке указать путь до вашего ffmpeg:
voiceManager.voiceClient.play(FFmpegOpusAudio(normalized_audio.export(format='wav'), pipe=True, executable="ffmpeg.exe"))
Не забудьте прописать в системных переменных путь до скачанного ffmpeg
Также необходимо установить необходимые библиотеки:
pip install -r req.txt
В bot.py находятся токены Яндекс.Музыки и Дискорд Бота которые необходимы для запуска бота.
Вы можете как Заменить это:
token = os.environ["discordBotToken"]
YMToken = os.environ["YMTOKEN"]
на это:
token = "MyDiscordToken"
YMToken = "MyYMToken"
Также вы можете использовать токены из переменных сред как это изначально задумывалось.
О том как получить токен Яндекс.Музыки вы можете узнать здесь.
python main.py