Всем привет!
Наверняка многие из вас натыкались на ютубе на бесконечные стримы с музыкой для чила или учебы, например
https://www.youtube.com/watch?v=mCti0Ln_qQ8 или
https://www.youtube.com/watch?v=DWcJFNfaw9c (кстати отлично помогает сосредоточиться или расслабиться)
Я подумал, а чеб не нарулить такой для себя, как обычно just for fun. А еще я подумал, что наверняка это все можно делать через какие-то консольные утилиты. Я порыскал по github и действительно - нашел репозиторий
https://github.com/torch2424/live-stream-radioУстанавливаешь глобально, генеришь проект, указываешь настройки ютуб и погнали. Все бы хорошо, но! Очень хочется добавить какого-нибудь интерактива на этот стрим. Например на событие подписки на канал или на новый донат. Такой интерактив есть почти на всех стримах, а в данном приложении увы нет. И тут взбушевался мой внутренний перфекционист.
Все дело в том, что стримы, на которые я указал выше, работают на основе приложения streamLabs (
https://streamlabs.com/), где все работает из коробки, есть даже специальный сборщик донатов (
https://streamlabs.com/lunaradio/tip). Но streamLabs работает через десктопный ui, да и только на винде. Увы, такого позволить я себе не могу. И я полез в дебри.
В течение нескольких месяцев я время от времени погружался в исходники
live-stream-radio и в итоге понял как собирается команда для ffmpeg, которая выдает стрим.
Что сделал я:
▫️прикрутил работу с google-api, чтобы проверять подписчиков канала
▫️прикрутил работу с yandex-money-api, чтобы проверять донаты с простой формы на сайте
▫️перед каждым новым треком проверяю 2 первых пункта и в зависимости от этого добавляю новый входной параметр для ffmpeg (анимацию с текстом, которая исчезает через некоторое время)
Теперь наруливаем музыку и тестим. К сожалению событие подписки работает не всегда (потому что не все пользователи ютуб позволяют просматривать информацию о себе в подписках). Донаты через простую форму вроде работают нормально)
О результатах напишу отдельно. Кому интересно - мой форк тут
https://github.com/jemsgit/live-stream-radioВсем чил ✌️