PSPで自宅サーバーの音楽ファイルをストリーミング再生

ふとしたきっかけでPSPを手に入れた*1。とりあえずゲームはAce Combat Xが出るまでやりたいものが見当たらないので、それ以外で遊ぶ方法を探してみた。
巷で話題のPSPハックは、もらったPSPの初期ファームウェアが2.6なので、日本では手に入りにくいゲームソフトが必要とのことなので却下。さっさと2.8にアップデートした。
2.5でサポートされたロケーションフリープレイヤーは、興味はあるのだけど、機材が高いので、将来のアップデートで動画のストリーミングに対応することを願っておくにとどめておく。


というわけで、必然的にRSSチャンネルにターゲットが絞られる。RSSチャンネルは本来はいわゆるPodcastに対応する機能だけども、うまく使ってやれば、Wi-Fiネットワークさえあれば自宅サーバから音楽ライブラリをストリーミング受信して聞くことができるような気がする。たぶん。
実際、そういうことをやっているソフトウェアはいくつかあって、たとえば、使ったことのある中では PHP RSS Feeder for PSP とかがある。これはインターフェースがなかなかいい感じで悪くない。難点は、多言語対応ができていないことと、認証ができないこと。
そう、一番の問題は認証。イントラネットからのアクセスに限るならともかく、外出先などの信頼できないWi-Fiネットワークからアクセスすることも考えるなら、認証は必須だ。しかしこれは、RSSチャンネル自体の実装の問題で、たとえばRSSの要求に対して401 Authorization Requiredを返しても認証ダイアログを出さずにそのまま失敗してしまうのだ。この話とそれに対する対応策は 煤 - Note : itunes-rss-server のBasic 認証が意味ない件 に詳しい話が載っている。一応、RSSフィードのURLと、RSS内の音楽ファイルのURLに user:pass@ 形式で認証情報を記述しておけばなんとかなるようだ。*2
しかし、ネットワーク上を平文で流れるファイルに認証情報を書いてしまうと、盗聴すれば一発でパスワードがバレてしまう。まぁ、普通のHTTP上で平気でパスワードを流すサイトも多いこの世の中だし、不正アクセス禁止法とかを盾にとってしまえば問題ないとかいう人も居るのかもしれないけど、やっぱりそれはなんだかなあと思うのでちゃんとした手段を模索することにした... のだが。
まず、素朴にHTTPSを通してみることにした。が、これは不可。PSP RSSチャンネル向けコンテンツ作成ガイドライン に記述があるとおり、RSSフィード・コンテンツ両方に関して、HTTPSを通したアクセスはできない。
次に、根本的な解決にはならないけども、Digest認証を試してみた。これは意外にも、ウェブブラウザ・RSSチャンネル共に通った。もちろん、RSSチャンネルで使うにはURLにパスワードを含めねばならず、さらにRSSフィードの中にもパスワードを書かなければならないので、結局は意味無し。*3
しかし、もしプロキシサーバの認証にもDigest認証が使えるのであれば、PSP-プロキシ間をDigest認証で認証して、プロキシ-音楽サーバ間でホストベースの認証を行ってやることで、一応、盗聴に対抗できるようなアクセスができるはず。そんなことを思いついて、わくわくしながら試したところ… プロキシ認証自体に対応してなかった。がっくり。
というわけで、今思いつく限りでは、盗聴されても平気な手段で、RSSチャンネルから音楽サーバへのアクセスを実現する方法は無いっぽい。 …お願いだから、RSSチャンネルかプロキシのどちらかでDigest認証に対応してください。>SONY

*1:親がなにかの抽選で当てたらしい。うちはくじ運の無い家系なので珍しい...

*2:なお、この方法を使う場合は、Netfrontはuser:pass@形式のURLを平気でRefererとして送りつけてくださるので、不必要な部分にはこの形式のURLを書かないようにするよう注意するべし。

*3:あと、NetfrontのDigest認証はrequest-uriにクエリー文字列を入れないという問題があるので、サーバ側で適宜設定しておく必要あり。うーん、Netfrontって見えないところで綻びが多くない?