Cтримим и кaстим youtube и не только.. через Raspberry pi c Gotubecast и KODI TubeCast
Насколько сложно передавать youtube музыку или видео через телефон или другие портативные, мобильные устройства на вашу Raspberry pi? А если не портативные? А просто управлять медиа контентом через Windows или Linux PC?
Оказывается, что не сложно. Я хочу рассмотреть установку и настройку нескольких приложений на вашу малинку с помощью которых мы можем это сделать.
Как это работает!
Будем предполагать, что стриминг в данной ситуации — это процесс передачи какого-либо медиа контента, который находится где-то на сайтах в интернете. Или, допустим, на локальном сервере с нашей медиа библиотекой для проигрывания оного на Raspberry pi. А кастинг, в свою очередь, от слова “cast”, когда мы “перекидываем управление” медиа контентом какого-либо внешнего устройства на наш телевизор. А точнее, — на нашу Raspberry pi. Ее подключаем к телевизору или музыкальному центру. В данной ситуации, через мобильный, запустив ваше youtube приложение, мы перенаправляем вывод видео или музыки через нашу малинку на телевизор. Не забудьте подключить вашу Raspberry pi к телевизору через HDMI.
Есть два варианта рассмотреть эти приложения. Первый вариант: мы все настроили в нашем проекте ViaMyBox. Вы можете не утруждать себя различными нюансами настройки linux в данном варианте raspbian buster и скачать дистрибутив https://viamybox.com/downloadpage/ или напрямую с Raspberry pi из репозитория:
cd /home/pi git clone https://github.com/viatc/viamybox.git
и запустить скрипт -> Home Theatre -> Cast youtube :
sudo /home/pi/viamybox/scripts/via-setup.sh
Ну или настройте все сами так, как нравится только вам, следуя примерам ниже. Я не буду сравнивать и описывать подробно функционал в данной статье данных приложений, а просто поделюсь опытом настройки и установки и нюансами, с которыми я столкнулся.
Встречаем! Gotubecast
Страница проекта:
https://github.com/CBiX/gotubecast
Gotubecast представляет собой небольшую программу, чтобы сделать свой собственный ТВ-плеер на YouTube. Другими словами, запустив на Rasberry pi gotubecast , мы сможем через youtube приложение телефона или других устройств подключиться к Raspberry pi и запустить youtube ролик на телевизоре.
Но для того чтобы это произошло, потребуется сделать несколько действий для этого.
Данная программа написана на Go. Поэтому надо его установить:
cd /home/pi #скачаем версию wget https://dl.google.com/go/go1.13.7.linux-armv6l.tar.gz #разархивируем ее sudo tar -C /usr/local/ -xvzf go1.13.7.linux-armv6l.tar.gz #создадим папку для нашего проекта mkdir -p projects/{src,pkg,bin} #отредактируем наш nano /home/pi/.profile
И запишем в него наши переменные окружения:
export PATH=$PATH:/usr/local/go/bin export GOBIN="$HOME/projects/bin" export GOPATH="$HOME/projects/src" export GOROOT="/usr/local/go"
…..
Проверяем этот пакет:
go version
Затем установим наш gotubecast:
cd /home/pi go get github.com/CBiX/gotubecast
В проекте, который находится в нашей созданной папке /home/pi/projects/src/src/github.com/CBiX/gotubecast/examples автор предусмотрительно написал скипт raspi.sh для raspberry, упрощающий запуск gotubecast.
Запускаем его и вот уже магия близко..
cd /home/pi/projects/src/src/github.com/CBiX/gotubecast/examples ./raspi.sh
После запуска скрипта мы увидим строку, что-то типа
Your pairing code: 901-900-123-183
Она позволит нам найти наш телевизор через телефон. Затем, идем в приложение youtube application в телефоне и далее через иконку аккаунта в настройки -> просмотр телевизора и вбиваем наш код. После этого появляется иконка, через которую и будет доступен просмотр youtube через нашу Raspberry pi.
Но телевизор может теряться в случае отсутствия связки Raspberry pi с google приложением длительное время и т.п. И потому, помимо pairing code, есть возможность привязать “навсегда” ваш телевизор к вашему google приложению с помощью Screen Id.
Сгенерируем его на нашей Raspberry pi:
wget https://www.youtube.com/api/lounge/pairing/generate_screen_id cat generate_screen_id
И добавим его в файлик
nano /home/pi/projects/src/src/github.com/CBiX/gotubecast/examples/raspi.sh
в переменную на следующей строке :
export SCREEN_ID=”aauaju8Example5539vbb”
Чтобы запускать все это сразу при старте, сделайте себе маленький сервис-демон в папке:
sudo nano /lib/systemd/system/gotubecast.service
и в нем:
[Unit] Description=Cast youtube Wants=network-online.target After=network.target network-online.target [Service] Type=simple ExecStart=/bin/bash /home/pi/projects/src/src/github.com/CBiX/gotubecast/examples/raspi.sh Restart=on-abort User=pi Group=pi [Install] WantedBy=multi-user.target
Далее, инициализируем его в системе :
systemctl enable gotubecast.service
И он будет запускаться при старте системы. Как выяснилось, демон, запускаясь, в случае отсутствия сети падает. Точнее, raspi.sh не находит сеть. Можно через sudo raspi-config.sh сделать настройку ожидания сервисами сети. Но вообще-то приятнее, когда загрузка raspbian происходит быстро). Поэтому, пусть скрипт сам проверяет сеть. Добавьте проверочку-ожидание в файл raspi.sh:
while ! ping -q -c 1 8.8.8.8 >/dev/null ; do sleep 1; done
скопируем gotubecast в папочку для наших исполняемых файлов
sudo cp /home/pi/projects/bin/gotubecast /usr/bin/
И все готово)
Да, если вы не линуксоид и у вас рябит в глазах от команд, я автоматизировал весь вышеописанный процесс в скрипте, и это выглядит так:
Чтобы им воспользоваться скачайте проект через сайт или через github:
git clone https://github.com/viatc/viamybox.git
и запустите скрипт /home/pi/viamybox/scripts/via-setup.sh и перейдите в меню Home theatre:
cd /home/pi git clone https://github.com/viatc/viamybox.git sudo /home/pi/viamybox/scripts/via-setup.sh
проверено на Raspbian Buster OS
Запускаем Youtube через KODI
Если у вас стоит KODI, то запустить youtube ролик через него гораздо проще. Собственно, для этого потребуется просто установить плагин TubeCast. Из плюсов данный плагин kodi не требует первоначальной настройки и плагин прекрасно “видит” нашу Raspberry pi и без забивания pairing code вручную.
И после установки плагина вы сразу увидите cast иконку на вашем andriod youtube application или на youtube страничке в браузере.
Из описания следует, что это — реализация Сast V1 протокола для Youtube мобильных приложений. В свою очередь, данный протокол основан на DIAL протоколе через SSDP. Данная технология позволяет подключится к вашему youtube каналу как внешнему сервису через интернет. Таким образом, это позволяет найти ваше устройство с KODI на борту. Причем, даже не будучи в одной сети с ним. Просто обновите свой pairing code на транслирующем устройстве. В результате, мы связываем два устройства и передаем управление через одно устройство к другому, но не сам медиа контент. Поэтому, и передающее и принимающее устройство (в данном случае — наша Raspberry pi) должно быть в интернете.
Надеюсь, было интересно. Если так, пишите коменты!
В следующей части я хотел бы рассказать о том, как проигрывать youtube и другой медиа контент из консольного терминала медиакомбайнами mps-youtube и straw-viewer и raspicast.