RaspyFIは音楽ライブラリだけでなく、インターネットのストリーミング(ネットラジオ)を聴くこともできます。
あらかじめプリセットされていますが、日本のネットラジオも聴いてみたいですね。
日本のネットラジオというと、民放各社の 「radiko」と NHKの「らじる★らじる」があります。
まず「らじる★らじる」からやってみます。 ググってみると先人がたくさんいますね(参考サイト5)。
どうやら「asx」という拡張子のメタファイルの中に、「mms://hogehoge~」というMMS(Microsoft Streaming Server)ストリームへのリンクが書いてあるみたいです。
まずメタファイルを取得しなければならないのですが、幸いなことにURLを明示されているサイトがありました(参考サイト6)。
例えば「ラジオ第1(東京)」なら「http://mfile.akamai.com/129931/live/reflector:46032.asx」をダウンロードして、テキストエディタで開きます。
※注意 メタファイルのURLおよび内容は、予告なく変わる可能性があります。
<ASX VERSION="3.0">
<ENTRY>
<REF HREF="mms://a33.l12993146032.c129931.g.lm.akamaistream.net/D/33/129931/v0001/reflector:46032" />
</ENTRY>
</ASX>
これをこんな風に書き換えます。
[playlist]
numberofentries=1
File1=mms://a33.l12993146032.c129931.g.lm.akamaistream.net/D/33/129931/v0001/reflector:46032
Title1=NHKラジオ第1(東京)
Length1=-1
version=2
SSHで RaspyFiに接続して /var/lib/mpd/music/WEBRADIO ディレクトリの中に、例えば AM_NHKradioR1.pls などという名前で保存します。
「mms://」というのは、Microsoft Media Serverプロトコルというストリーミング用プロトコルらしいです。 PLSファイルというのは、Appleのプレイリスト形式のようです。
「WEBRADIO」に対して、「Update this folder」を実行します。
ラジオ局のリストに「AM_NHKradioR1.pls」が表示されました。 通常の楽曲を聴くときと同様に、右端のアイコンをクリックして、プレイリストに追加します。
あとは再生ボタンを押すだけです。
でもかなりの頻度で音切れが発生してしまいます。 /etc/mpd.conf の audio_buffer_size(デフォルトは2048、KBで指定)と buffer_before_play(デフォルトは20%) の値を調整することで改善できるようです(参考サイト7、参考サイト8)。
とりあえず audio_buffer_sizeを大きくすると、音が出てくるまで時間がかかってしまうので、
audio_buffer_size 2048
buffer_before_play 100%
にしてみたらかなり改善されました。 buffer_before_playを100%にすると、楽曲再生時に Cross Fadeが出来なくなるらしいですが、自分は使わないので問題ありません。
「radiko」についても、基本的には同じように登録できるのだろうと思います(参考サイト9、参考サイト10)。
メタファイルのURL「http://radiko.jp/v2/station/stream/${channel}.xml」の「${channel}」のところを、例えば J-WAVEなら「FMJ」にしてブラウザでアクセスするか、xmlファイルをダウンロードしてテキストエディタで開いてみると、
<url>
<item>
rtmpe://w-radiko.smartstream.ne.jp/FMJ/_definst_/simul-stream.stream
</item>
<item>
rtmpe://w-radiko.smartstream.ne.jp/FMJ/_definst_/simul-stream.stream
</item>
</url>
となっています。 よって、
[playlist]
numberofentries=1
File1=rtmpe://w-radiko.smartstream.ne.jp/FMJ/_definst_/simul-stream.stream
Title1=J-WAVE
Length1=-1
version=2
という内容で FM_J-WAVE.pls などという名前で /var/lib/mpd/music/WEBRADIO ディレクトリの中に保存します。
「rtmpe://」というのは、Real Time Messaging Protocolというもので、Adobe Flashプレーヤーとサーバーの間で使われているプロトコルだそうです(radikoのWindows用アプリはAdobe AIRを使ってますしね)。
mpdはそのままではRTMPEプロトコルを処理できないようです。 RTMPDump(librtmp)を入れたら聴けるようになるのかな?(参考サイト11、参考サイト12)
でもmpdでネットラジオを聴くよりも、目覚まし代わりに鳴らしたいので、ここではこれ以上の探求はやめておきます。