Создайте собственное устройство Chromecast

Устройство Chromecast — это «устройство-приемник, [которое] запускает уменьшенный браузер Chrome с приложением-приемником». Могу ли я загрузить и установить это приложение-приемник в браузере Chrome, например, на моем ноутбуке с Windows?


person Manuel A    schedule 24.07.2013    source источник
comment
Поскольку это не вопрос программирования, Stack Overflow не подходит для этого. Однако ответ на ваш вопрос – нет.   -  person Will Eddins    schedule 24.07.2013
comment
На первый взгляд, это не вопрос программирования, но если это приложение можно загрузить, я хотел бы посмотреть, как интегрировать его в свое программное обеспечение. Тогда это становится вопросом программирования.   -  person Manuel A    schedule 24.07.2013
comment
Если вы хотите создать приложение, которое использует API Chromecast для передачи контента в Chromecast, вам, вероятно, придется подождать, пока API (и устройства) не будут доступны, чтобы люди поняли ограничение контента. Chromecast — это устройство, продаваемое Google, с которым можно общаться через Chromecast API, поэтому на заданный вами вопрос «Могу ли я собрать собственное устройство?» ответ «Нет».   -  person Will Eddins    schedule 24.07.2013


Ответы (3)


Устройство Chromecast работает по протоколу DIAL. Вполне возможно эмулировать этот протокол, используя простой код для прослушивания группы многоадресной рассылки для обнаружения, а затем обработки HTTP-запросов для запуска приложений. Затем запущенное приложение связывается с кастинговым устройством, я полагаю, используя протокол RAMP.

К счастью для нас, приложения, которые использует устройство Chromecast, в основном являются веб-приложениями, а это означает, что нашему эмулятору устройства просто нужно запустить веб-браузер и указать ему определенный URL-адрес, когда он получает запрос приложения.

Например, приложение YouTube после обнаружения устройства и определения местоположения приложений (часть DIAL). Отправит запрос HTTP POST, содержащий ключ сопряжения, на /<apps url>/YouTube. Все, что нужно сделать эмулирующему устройству, это открыть https://www.youtube.com/tv?<pairing key> в окне браузера. Отсюда, я полагаю, связь для управления приложением youtube отправляется не через кастинг-устройство, а через открытые вкладки на кастинг-устройстве и эмуляторе.

Это мое понимание того, как работает устройство Chromecast и, в частности, приложение YouTube, из https://github.com/dz0ny/leapcast — эмулятор Python, в котором работает YouTube и Google Music.

person Declan Cook    schedule 03.08.2013
comment
Обратите внимание, что этот ответ больше не актуален: Chromecast V2 использует в настоящее время mDNS, и я верю в protobuf. В остальном поток остается более или менее таким же. К сожалению, разработка, направленная на то, чтобы заставить V2 работать на связанном Leapcast (который по-прежнему отлично работает для YouTube), похоже, застопорилась. - person Wrikken; 23.11.2014
comment
Верно, недавно, после перехвата пакетов, я обнаружил, по крайней мере, эти протоколы, принимающие участие в переговорах: - Принадлежность UDP/IGMP к 239.255.255.250. - М-поиск UDP/SSDP до 239.255.255.250, включая ответ TCP/XML. - Одноадресная рассылка ответа UDP/uPnP от ChromeCast к ПК. - Вопрос UDP/MDNS на 224.0.0.251, включая многоадресный ответ от ChromeCast. - person JCM; 13.12.2017
comment
Как спрашивали другие: как вы прошли шифрование Google? - person Lukas; 18.11.2018

Я реализовал полный приемник chromecast v2 под названием YouMap ChromeCast Receiver, доступный в магазине Google Play и магазине Amazon, ветка xda-developer здесь: http://forum.xda-developers.com/android-tv/chromecast/app-youmap-chromecast-receiver-android-t3161851< /а>

Текущий протокол Chromecast полностью отличается от исходного протокола на основе DIAL. Сейчас только YouTube по-прежнему использует старый протокол, а chromecast поддерживает обратную совместимость.

Открытие — mDNS, точно такое же, как протокол Apple TV bonjour.

Самая сложная часть — это аутентификация устройства, отправитель и получатель выполняют рукопожатия, обмениваясь ключами и сертификатами таким образом, который чрезвычайно сложно взломать. AppleTV делает то же самое, используя шифрование FairPlay.

Следующей сложной частью является протокол зеркалирования, который также очень сложен, необходимо иметь дело с разделением пакетов, повторной передачей пакетов. В целом, протокол зеркалирования chromecast хорошо разработан, лучше, чем miracast, лучше, чем зеркалирование AirPlay (я также реализовал оба из них, поэтому я знаю, о чем говорю).

Когда у меня будет возможность, я напишу больше здесь.

person huisinro    schedule 15.08.2015
comment
Похоже, что аппаратное DRM используется (широкая лоза?) для аутентификации получателей трансляции. Я полагаю, это означает, что если мы хотим эмулировать приемник, нам, по крайней мере, нужно законное жертвенное устройство, с которым мы можем проксировать поток аутентификации? - person deed02392; 23.10.2017
comment
@huisinro Я пытаюсь сделать литой приемник, и я нахожусь в той части, в которой у меня начинается связь с хромированным устройством и устройством, но я не знаю, какой сертификат мне следует использовать. Можете ли вы направить меня? Я видел другие приложения (например, Reflector 3 и Airserver), которые в настоящее время работают без каких-либо проблем :/ - person forlayo; 18.10.2018

Google находится в процессе открытия исходного кода некоторой части хромированного литья.

https://code.google.com/p/chromium/codesearch#chromium/src/chromecast/

https://code.google.com/p/chromium/issues/list?q=label:Chromecast

Так что теоретически можно построить подобное устройство.

person Arunprasad Rajkumar    schedule 16.07.2014
comment
К сожалению, первая часть (открытый исходный код) не подразумевает вторую (поэтому теоретически вы можете создать подобное устройство), потому что экосистема Chromecast защищена шифрованием, которое принадлежит и контролируется Google. - person mjaggard; 17.01.2018
comment
Как оказалось, они фактически открыли исходный код только пользовательского интерфейса для устройства. Поэтому, если у вас есть устройство Cast, вы можете создать для него собственный Cast Receiver, но программное обеспечение, работающее на устройстве, не имеет открытого исходного кода. - person mscottnelson; 27.10.2020