Skip to content

Бот для прослушивания Яндекс Музыки прямо в Дискорде (Reworked by llimonix)

Notifications You must be signed in to change notification settings

llimonix/YandexMusicDiscordBotReworked

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Дискорд Бот для прослушивания Яндекс Музыки

Warning

Этот код я больше не обновляю. Все новые функции по типу "Моя волна" и привязки данных к БД только в моем боте: Yandex Music

Note

Этот функционал проигрывания треков из Яндекс Музыки изначально был реализован в теме YandexMusicDiscordBot.
Но после использования бота, я понял, что его ещё нужно доделать и добавить новые функции. Поэтому и опубликовал fork этого проекта. Где исправил всё что было замечено за неделю использования, а также добавил новые функции.
Вы также можете пригласить моего улучшенного бота, который выполняет только роль проигрывания музыки Yandex - Yandex Music

Что умеет этот бот?

  • Проигрывание Треков/Альбомов/Плейлистов/Подкастов/Аудиокниг из Яндекс.Музыки
  • Формирование очереди из Треков/Альбомов/Плейлистов.
    queue
  • Полноценный МедиПлеер. (Данные пользовательские смайлики поддерживаются на всех серверах, если бот был добавлен в канал с этими смайликами. Сюда же я залил версию без них. Если будет интересно как это сделать, то я залью обновленную версию, где вы сможете указывать свои пользовательские смайлики)
    image
  • Пропуск как одного трека так и плейлиста.
  • Остановка проигрывание и его возобновление с помощью медиаплеера.
  • Отслеживание активности в голосовом чате.
    • Если в голосов канале нет никого кроме бота в течении 3-х минут он останавливает проигрывание и выходит из голосового чата.
  • Защита от дурака
    • Если бота отключат не с помощью медиаплеера бот спокойно закончит проигрывание.
    • Интерактивные кнопки в медиаплеере доступны только тем пользователям которые в данный момент находятся в одном голосовом канале с ботом.
  • Поиск Трека/Альбома/Плейлиста/Подкаста/Аудиокниги как с помощью прямой ссылки так и с помощью обычного запроса.

Добавленное в моей версии Reworked

  • Повтор трека, который играет в данный момент, пока не отключишь эту функцию
  • Похожие треки. Находит похожие треки по треку, который играет в данный момент. Если были найдены, создаен новый плелист с ними
  • Перемешать все треки во всех плейлистах в случайном порядке (сделанно для тех, кто часто запускает один и тот же плейлист и хочет слушать песни в другом порядке)
  • Теперь вместо удаления сообщения и создания нового при переключении песен, он просто редактирует уже имеющееся
  • Так же теперь полоса от сообщения 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 image

Также необходимо установить необходимые библиотеки:

pip install -r req.txt

Настройка

В bot.py находятся токены Яндекс.Музыки и Дискорд Бота которые необходимы для запуска бота.

Вы можете как Заменить это:

token = os.environ["discordBotToken"]
YMToken = os.environ["YMTOKEN"]

на это:

token = "MyDiscordToken"
YMToken = "MyYMToken"

Также вы можете использовать токены из переменных сред как это изначально задумывалось.

О том как получить токен Яндекс.Музыки вы можете узнать здесь.

Запуск бота

python main.py

About

Бот для прослушивания Яндекс Музыки прямо в Дискорде (Reworked by llimonix)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 98.0%
  • CSS 2.0%