2010年3月22日月曜日

radikoをサービスエリア外から聴取する方法

radikoはインターネットを使って地上波ラジオをサイマル放送するサービスだ。3月15日から試験的に始まっているが、配信エリアが限られていてエリア外では聴くことができない。クライアント側のソースアドレスでエリアを判別しているようで、職場からプロキシなしでアクセスするとエリアが海外と判定されてしまう。これをどうにかしてこれをプロキシ経由でエリア外から聞けないものだろうか、という話である。そして、いきなりだが、radikoをサービスエリア外から聴取する方法を発明した。ただし、エリア内に自宅サーバーがあることが条件だ。
職場からWebアクセスする際には、自宅に立てたHTTPプロキシサーバーを使っている。この方法だと、radikoのホームページでエリアは東京と判定されるのだが、Listen Nowリンクをクリックすると、radikoプレイヤーのウィンドウは開くものの、ラジオを聴くことはできない。プレイボタンが点滅したままでやがてタイムアウトしてしまうのだ。netstatコマンドで確認してみると、radiko.jpホームページ向けのセッションは、Firefoxに設定したプロキシサーバーと接続されているが、他に見覚えのないセッションがある。
219.103.32.110:1935 SYN_SENT
どうやらFirefoxに呼び出されたフラッシュのプラグインはこのIPアドレスに直接接続しようとしているらしい。Firefoxのプロキシ設定は効いていない。フラッシュ(FLV)のプロトコルはrmtpと言うそうで、詳しくは知らないがsquidなどのHTTPプロキシはこれを扱えないようだ。パケットの中身がわからなくてもこのアドレス向けのTCP接続を、HTTPプロキシが起動しているのと同じサーバーに起動したstoneのポートへ転送してやれば動く気がする。さてどうしよう。windowsのhostsファイルで、ホスト名とIPアドレスにこのアドレスを入れてみたが、それでは駄目らしい。219.103.32.110:1935を自宅サーバーの任意のポートへ転送するには?

自宅サーバーがサービスエリア内(東京)でインターネットに接続されているとしよう。このサーバーでHTTP proxy(squid)とstoneを起動する。
stoneのコマンドラインはこれ。
stone 219.103.32.110:1935 <自宅サーバーのLANインターフェースアドレス:待受TCPポート番号(任意)>
 例)./stone 219.103.32.110:1935 192.168.0.1:11223
ラジオを聴くPCはサービスエリア外(他県や海外)でインターネットに接続されているとする。そして、ラジオを聴くPCに「Microsoft loopback Adapter」をインストールする。これが最大のポイントだ。このループバックインターフェースのIPアドレスを219.103.32.110に設定してしまうのだ。これで、Firefoxに呼び出されたフラッシュのプラグインはlocalhostに接続することになり、ラジオを聴くPCで起動したstoneで転送することが出来る。Firefoxブラウザのプロキシ設定に自宅プロキシのIPアドレスとポート番号を設定し、stoneは以下のように起動する。

stone <自宅サーバーのグローバールIP>:<待受TCPポート番号(任意)> 219.103.32.110:1935
 例)stone jitakuserver.dyn.dns:11223 219.103.32.110:1935
これで設定完了だ。あとはラジオを聴くPCでFirefoxを起動し、radiko.jpのホームページからListen Now!ボタンをクリックする。やった!音が出た。ラジオを聴くことができる。
なお、プレイヤーが接続するアドレスは219.103.32.110以外にもあるかもしれないし、接続先のポート番号も1935以外にhttp(80)だったりhttps(443)だったりするようだが、TCP1935を転送するだけで、東京7局はぜんぶ接続できるようである。

4 件のコメント:

padoo さんのコメント...

現在は自宅サーバーを使っておらず、この方法が利用できるか不明です。
現在ServersMan@VPSを利用しているので同じ方法を試してみたところ、Radikoでは「エリア: AICHI JAPAN」(
地域外)と判定され、この方法は使えませんでした。

padoo さんのコメント...

本日、radikoが2010年12月から本格配信するというニュースが流れました。radiko関連でこちらのブログにたどり着かれる方も多いのでUpdateさせていただきます。現在は、ServersMan@VPSのproxy経由でradikoのページにアクセスすると、エリア判定が「TOKYO JAPAN」なることがわかりました。既に、ServersMan@VPS経由で地域外からradikoにアクセスしている方もおられるようです。

padoo さんのコメント...

radiko関連でこちらのブログにたどり着かれる方も多いのでUpdateさせていただきます。モバイルアクセスではエリア判定が東京となることが多いようです。2011年5月現在、
OCNモバイルアクセスFOMA(定額APN)でエリア判定が東京となりradikoを聴くことができました。
YAMADA Air Mobile WiMAX(UQ-WiMAXのMVNO)でもエリア判定が東京となりradikoを聴くことができました。

匿名 さんのコメント...

SoftEther VPN Client + VPN Gate Client Plug-in