RaspyFiを試す(ネットラジオ編)

  • 投稿日:
  • by
  • カテゴリ:
  • ハッシュタグ:

RaspyFIは音楽ライブラリだけでなく、インターネットのストリーミング(ネットラジオ)を聴くこともできます。
あらかじめプリセットされていますが、日本のネットラジオも聴いてみたいですね。

raspyfi23.jpg

日本のネットラジオというと、民放各社の 「radiko」と NHKの「らじる★らじる」があります。

rajiru2.jpg

まず「らじる★らじる」からやってみます。 ググってみると先人がたくさんいますね(参考サイト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のプレイリスト形式のようです。

raspyfi24.jpg

「WEBRADIO」に対して、「Update this folder」を実行します。

raspyfi25.jpg

ラジオ局のリストに「AM_NHKradioR1.pls」が表示されました。 通常の楽曲を聴くときと同様に、右端のアイコンをクリックして、プレイリストに追加します。

raspyfi26.jpg

あとは再生ボタンを押すだけです。

でもかなりの頻度で音切れが発生してしまいます。 /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が出来なくなるらしいですが、自分は使わないので問題ありません。

radiko01.jpg

「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でネットラジオを聴くよりも、目覚まし代わりに鳴らしたいので、ここではこれ以上の探求はやめておきます。