Raspberry Pi SHOUTcastとサイマルラジオを再生する

当サイトのMoOde Radiko Playerも順調に24時間稼働に入ってきました。

MoOde Music Playerのタイマーで朝から目覚まし代わりに音楽が鳴ってくれます。

そこで今回はSHOUTcastとサイマルラジオを登録してみました。

radiko11

SHOUTcastとサイマルラジオを右側に配置して3カラムにしました。
index-php-sample

SHOUTcastの登録

SHOUTcastのホームページから気に入ったサイトのダウンロードボタンを押してWinamp(.pls)ファイルを選択、保存します。ファイル名のデフォルトはtunein-station.pls(テキスト形式)
shoutcastplaylist
numberofentries=2
File1=http://185.33.22.15:11230
Title1=1.FM – Bay Smooth Jazz Radio
Length1=-1
File2=http://185.33.22.15:11229
Title2=1.FM – Bay Smooth Jazz Radio
Length2=-1
Version=2

サイトによって地域制限やmplayerで再生できない可能性もあるので試してみます。

$ mplayer -ao alsa:device=plughw=1.0 -playlist tunein-station.pls

うまく再生できたらindex.phpに書き加えます。
mplayerからは直接urlも指定できますがplsのほうが管理しやすいためディレクトリ(/var/www/html/cast)を作成して保存するようにしました。
ファイル名は識別できる程度にrenameして空白を入れないようにします。

MoOde Playerを併用しているなど音量制限が必要な場合は必ずここに設定を入れます。

case "1fm":
            exec("nohup killall mplayer > /dev/null &");
            exec("nohup amixer -c 1 set PCM 30% > /dev/null 2>&1");
            exec("nohup mplayer -ao alsa:device=plughw=1.0 -playlist /var/www/html/cast/1FMsmoothjazz.pls > /dev/null &");
            $_SESSION['broad']="1.FM - Bay Smooth Jazz Radio";
            break;

サイマルラジオの登録

サイマルラジオに新しいサイト(CSRA.fm)ができています。
csra
放送を聞くをクリックするとasxファイルがダウンロードできます。

こちらもmplayerで試してみますが大半のラジオサイトでエラーを吐いてしまいます。

csra02
エラーの内容を見てみると No such file or directory ???

そこで正常に起動するフォーマットにラジオ局サイト情報を書き直して起動すると正常に動きます。

さらにdiffをしてみるとわかりました。

末尾の’</Asx>‘とすべきところが’</Ask>‘になっています。

再度良く見ると最初に At line 10 : EOB reached while parsing Asx element bodyAt line 10 : Syntax error 出ていますね。

修正することにより無事起動することが確認できました。
いや〜なかなか気がつきませんでした。

windowsはこれでも動くのでいいのでしょうね。

Pi使いにとっては困るので投稿(Ask)しておくことにします。
いずれ直るかもしれません。
大分寄り道をしてしまいました。

サイマルラジオもSHOUTcast同様に設定、登録をしていきます。
ローカル色の強いサイマルラジオのゆるいトークもいいもんです。
またあってほしくは無いですが災害時のためにも登録しておくといいですね。

これでラジオプレーヤーとして格段に選局の幅が増えました。
index.phpの編集が手間ですが画面の構成は自由にできるので使いやすいプレーヤーにできると思います。
またwebサーバーのlighttpdもcssフレームワークも軽量なのでページを増やしてもPi1Bでもサクサク動きます。

Restart MENU
moodeOSはplayerからreboot,shutdownができます。
これはwebサーバーのwww-dataがsudo権限を持っています。
raspbianで実行させるにはvisudoで設定します。

# visudo
www-data ALL=(ALL) NOPASSWD: ALL

webサーバーのあるraspberry piはブラウザから特殊な権限を除いていろいろコントロールできます。このradiko playerからいろんな機器をコントロールできたらおもしろいかもしれません。
せっかく環境ができたのでphpの勉強でもしようと思います。