Heroku無料プラン上のYouTube Data API v3利用サービスをChromecast対応させるときの注意点

ニッチすぎる条件。


Node.jsでYouTubeで同期再生してリアルタイムチャットするサービスを作りましたよ - 私事ですが……
という記事で書いたYouTube動画実況サービス「TauStream (Realtime chat with movies)」を
Google Chromecastを使ってテレビでリアルタイムチャットするサンプル作ったよ - 私事ですが……
という記事で書いたのと同じ感じでChromecast対応させたのでそのあたりのメモ。


まず、Chromecastで使うReceiverは「Google Cast SDK Developer Console」に登録する必要がある(Senderは不要)が、公開状態(Published)にするためにはHTTPSベースのURLを登録しないといけない。
HTTPベースのURLを登録した場合は非公開状態(Unpublished)のままとなり別途自分で登録した開発用デバイスでしかアクセスできない。


ここで独自ドメインで対象サービスをHeroku無料プランに載せている場合人はたぶん「およ」となるかもしれない。独自ドメインSSLを使う場合は有料になるからだ。
でも心配ご無用。Herokuでは独自ドメインとは別に「xxx.herokuapp.com」といったドメインが割り当てられるが、こちらは無料のままHTTPSが使える。
通常独自ドメインを使っている場合は「xxx.herokuapp.com」を隠しておきたいところであるが、各クライアント側にあるSenderはURLではなくApplication IDベースでReceiverを指定し、Google側でそれに対応したURLのコンテンツをChromecastに表示させるようにしているので、「xxx.herokuapp.com」自体は晒されない。
独自ドメインを使っている場合でも「Google Cast SDK Developer Console」には「https://xxx.herokuapp.com/foo/bar」を登録すればよいのである。


で、YouTube Data API v3を使っていない場合は上記でOKだが、YouTube Data API v3をクライアントから呼び出している場合は「Google Developer Console」上の「APIs & auth」「Credentials」「Public API access」から発行した「Browser key」の「REFERERS」にも上記「xxx.herokuapp.com」を登録してあげる必要があるので忘れないように注意しないといけない。