2013-07-24 17 views
10

Urządzenie Chromecast to "urządzenie odbiorcze [które] uruchamia skalowaną przeglądarkę Chrome z aplikacją odbiornika". Czy mogę pobrać i zainstalować tę aplikację odbiornika na przeglądarce Chrome, na przykład na moim notebooku z systemem Windows?Twórz własne urządzenie Chromecasta

+4

Ponieważ nie jest to pytanie programistyczne, przepełnienie stosu nie jest odpowiednim miejscem. Jednak odpowiedź na twoje pytanie brzmi: nie. –

+0

Na pierwszy rzut oka nie jest to pytanie programistyczne, ale jeśli jest możliwe, aby pobrać tę aplikację, chciałbym się dowiedzieć, jak zintegrować to w moim oprogramowaniu. Potem staje się pytaniem programistycznym. –

+2

Jeśli chcesz utworzyć aplikację korzystającą z interfejsu Chromecast API do przesyłania treści do Chromecasta, prawdopodobnie będziesz musiał poczekać, aż interfejs API (i urządzenia) będzie niedostępny, aby ludzie mogli zrozumieć ograniczenia treści. Chromecast to urządzenie sprzedawane przez Google, z którym można komunikować się za pomocą interfejsu API Chromecast, więc pytanie "Czy mogę zbudować własne urządzenie?" Ma odpowiedź "Nie". –

Odpowiedz

10

Urządzenie chromecast działa z wykorzystaniem protokołu DIAL. Całkowicie można emulować ten protokół za pomocą prostego kodu do nasłuchiwania w grupie multiemisji w celu wykrycia, a następnie obsługiwać żądania HTTP w celu uruchomienia aplikacji. Jest to uruchomiona aplikacja, która komunikuje się z urządzeniem castingowym, wierzę, że używa protokołu RAMP.

Na szczęście dla nas aplikacje, z których korzysta urządzenie chromecast, to głównie aplikacje internetowe, co oznacza, że ​​nasz emulator urządzenia wystarczy uruchomić przeglądarkę internetową i wskazać konkretny adres URL, gdy otrzyma żądanie aplikacji.

Na przykład aplikacja youtube, po wykryciu urządzenia i ustaleniu, gdzie znajdują się aplikacje (część DIAL). Wyśle żądanie HTTP POST zawierające klucz parowania do /<apps url>/YouTube. Całe urządzenie emulujące musi teraz zostać otwarte w oknie przeglądarki pod numerem https://www.youtube.com/tv?<pairing key>. Wierzę, że stąd komunikacja za sterowanie aplikacją youtube nie jest wysyłana przez urządzenie castingowe, ale przez otwarte karty na urządzeniu odlewniczym i emulatorze.

To jest moje zrozumienie działania urządzenia chromecast, a konkretnie aplikacji youtube z perspektywy https://github.com/dz0ny/leapcast, która jest emulatorem pythonowym, który ma działającą muzykę youtube i google.

+5

Pamiętaj, że ta odpowiedź nie jest już aktualna: Chromecast V2 używa obecnie [mDNS] (https://github.com/jloutsenhizer/CR-Cast/wiki/Chromecast-Implementation-Documentation-WIP) i wierzę [ protobuf] (https://github.com/google/protobuf). Reszta jest w przepływie pozostaje mniej więcej taka sama. Niestety, rozwój V2 działający na połączonym Leapcastu (który nadal działa świetnie na youtube) wydaje się utknąć. – Wrikken

+0

Zgadza się, ostatnio po przechwyceniu niektórych pakietów znalazłem przynajmniej te protokoły biorące udział w negocjacjach: - członkostwo UDP/IGMP na 239.255.255.250. - UDP/SSDP m-search to 239.255.255.250, w tym odpowiedź TCP/XML. - Odpowiedź UDP/uPnP unicast z ChromeCast na PC. - Pytanie UDP/MDNS do 224.0.0.251, w tym odpowiedź multicastowa z ChromeCast. – JCM

0

Google jest w trakcie otwierania pozyskiwania części odlewu chromu.

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

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

Więc teoretycznie można zbudować podobne urządzenie.

+0

Niestety, pierwsza część (open sourcing) nie implikuje drugiej (teoretycznie można zbudować podobne urządzenie), ponieważ ekosystem Chromecasta jest chroniony przez szyfrowanie, które jest własnością i jest kontrolowane przez Google – mjaggard

8

I wprowadziły kompletny odbiornik chromecast V2, zwany YouMap CHROMECAST Receiver, dostępne w sklepie Google Play i Amazon sklep, nici xda-developer tutaj: http://forum.xda-developers.com/android-tv/chromecast/app-youmap-chromecast-receiver-android-t3161851

Obecny protokół Chromecastowi jest zupełnie inny od oryginału Protokół oparty na DIAL. Obecnie tylko YouTube nadal korzysta ze starego protokołu, z którym Chromeecast zachowuje wsteczną kompatybilność.

Odkrycie to mDNS, dokładnie tak samo jak protokół bonjour Apple TV.

Najtrudniejszą częścią jest uwierzytelnianie urządzenia, nadawca i odbiorca wykonują uściski dłoni, wymieniając klucze i certyfikaty w sposób niezwykle trudny do złamania. AppleTV robi to samo, używając szyfrowania FairPlay.

Kolejną trudną częścią jest protokół dublowania, który jest również bardzo skomplikowany, musi zajmować się pakietami, retransmisjami pakietów. Ogólnie rzecz biorąc, protokół do tworzenia kopii lustrzanej chromecastu jest dobrze zaprojektowany, lepszy niż miracast, lepszy niż kopie lustrzane AirPlay (ja również zaimplementowałem oba, więc wiem, o czym mówię).

Kiedy dostanę szansę, napiszę więcej tutaj.

+0

Wygląda na to, że używany jest sprzętowy DRM (widevine ?) w celu uwierzytelnienia odlewanych odbiorników. Sądzę, że oznacza to, że jeśli chcemy naśladować odbiorcę, potrzebujemy przynajmniej legalnego urządzenia ofiarnego, z którego możemy autoryzować proxy? – deed02392