2025-02-02 (日)
* Google TV(Chromecast)上で色々やる
ネットワーク越しにGoogle TV(Chromecast)を操作して色々やりたい。
単にメディアファイルを再生するだけなら、Default Media Receiverを起動してURLを送れば再生してくれるのだけど、それ以上のことをするためにはCustom Receiverが必要で、Google Cast SDK Developer Consoleにアプリを登録する必要がある。
登録に$5かかるのと、アプリを公開しないと登録したテストデバイス上でしか動かない。アプリの登録自体は簡単そうだけど、最近のGoogleはPlay storeのアプリや開発者アカウントとかも放置していると削除されたりするので、そういう維持コストを払いたくない。。。
どうにか未登録のCustom Receiverを実行する手段が無いかなと考えてたのだけど、URL Cast Receiver が使えた。Chromecast上でウェブページを表示するだけのもので、大抵の人はWebページを表示するために使っているけど、遷移先のページでCastReceiverManagerのインスタンスを取得してChromecastに接続できて、メッセージも受信できた。ChromecastのIPCはlocalhostで動いてるWebSocketに接続して通信するのだけど、接続元のorigin等はチェックされないっぽい。
Google TVとの通信、Goでやりたかったので https://github.com/barnybug/go-cast/ を使ってみたけど、ライブラリとして使うことは考えられてないのか、必要な関数がexportされてなかったりして、使いにくいな。。。