Google Chromecastを使ってテレビでリアルタイムチャットするサンプル作ったよ


※2014/06/09追記:Developer Consoleでreceiverをhttpsにしてpublishにするの忘れてた(=デバッグモードのChromecastでしか動かない状態だった)ので修正。てへぺろ


デモ: https://chromecast-vision.herokuapp.com/
ソース: https://github.com/t-yamo/chromecast-vision

誰かがコメント書いたらそのコメントが表示されるというのは普通のチャットだけれど、誰かが動画を変えるとみんなの画面の動画も切り替わったり、途中から参加した人はみんなが観てる途中のところから開始されたりする。変な動画をリクエストされると困るので今回はリストアップしたものの中から選んで貰うというホワイトリスト方式にしてある。

Chromecastの実体はちっちゃいデバイスに入ったChromeたんということで、ChromecastのMedia系APIを使わずに普通にYoutube APIとSocket.IOでCustome Receiverを実装してみた。

ただし、的なやつでMediaManagerと関連づけるところは入れておかないとPCブラウザ上のChromecast-ExtensionがReceiverアプリケーションの起動状態を管理できないようなのでそこだけ入れてある。

あと、「Node.jsでYouTubeで同期再生してリアルタイムチャットするサービスを作りましたよ - 私事ですが……」で書いた非Chromecast向けの類似サービス「TauStream (Realtime chat with movies)http://www.taustream.net/)」はもう少し同期を頑張っているが、今回はあくまでもサンプルと言うことで結構ざっくりの実装。
ネットワーク状況が悪いとChromecast側の映像は結構遅延する。

Chromecast側(receiver側)

PC-Chrome側(sender側)
ここに並んでるサムネイルを選択すると視聴者全員の観てる動画が変わる。

ちなみにreceiverのURLは「 https://chromecast-vision.herokuapp.com/vision 」だが、普通にChromeでも開ける。
また、sender側もChromecastに依存してるのはテレビでreceiverを立ち上げたり落としたりするところだけなので、Firefoxとかでチャットとかはできる。