radiko
ラズベリーパイでFM COCOLOや FM 802のラジオを聞きたいですよね。

ラズベリーパイを使えば1日中radikoを聞くことができますよ。1か月聞きっぱなしでもコストは電気代の約50円だけ。

しかも、スマホやPCからラズベリーパイのラジオをリモートコントロールできます。

21世紀的ですね。さっそくやってみましょう。

. mplayerとrtmpdumpをインストールします。

$ sudo apt-get install mplayer

$ sudo apt-get install rtmpdump swftools libxml2-utils

mplayerで持っている音声ファイルmp3の音が出るか試してみてください。

$ mplayer 音声ファイル.mp3

音が流れたら成功です。


2. play_radiko.shをダウンロード

play_radiko.sh シェルスクリプトを下のリンクからダウンロードしてください。
 https://gist.github.com/ihsoy-s/5292735

play_radiko.sh を編集します。
作成するディレクトリを指定します。

私はoutdirを下の変更しました。
outdir="/home/pi/radio/"

これで /home/pi/radio/ディレクトリが作成されるようになります。

$ sudo chmod +x play_radiko.sh

$ sudo cp play_radiko.sh /usr/bin/play_radiko.sh

3. ラジオを再生してみよう

試しにFM COCOLOを流してみましょう。
$ play_radiko.sh CCL 

FM 802を再生してみましょう。
$ play_radiko.sh 802

CCLがFM COCOLOです。802がFM 802。
ラジオ曲の放送局IDは以下のリンクで確認できます。
http://www.dcc-jpl.com/foltia/wiki/radikomemo
 
4. ブラウザからリモートコントロールしよう。
ラズベリーパイからラジオを再生することができたら、ブラウザからリモートコントロールできるようにしましょう。

ここまでは簡単でした。
実はここからが本題で、難しいかもしれません。

今回ここは解説を省略します。

IPアドレスを固定してウェブサーバーを立ててください。

私は軽量のnginxとphpでウェブサーバーを立てています。定番のapacheでもいいです。

IPアドレスは192.168.0.101にしています。

IPアドレスは毎回起動時に変動すると面倒なので固定IPアドレスにします。

5. ウェブサーバーから音を鳴らせるようにしよう。
ブラウザからコマンドを実行させて音を鳴るようにする必要があります。

$ usermod -G www-data, audio www-data
要するにウェブサーバーをaudioグループに追加しています。

apacheやnginx, ともにデフォルトでwww-dataになっていますので、これで良いと思います。

更新の仕方が分からないので、ここで一度再起動しました。

6. index.phpを作成しよう。

ウェブサーバーを無事に立てれたとします。

以下のphpをindex.phpで保存して、ウェブルートに置いてください。


<?php
//radiko player
//http://www.nakatayuki.com/


if(isset($_GET['id'])){

$id = $_GET['id'];
if($id=="stop"){
exec("killall mplayer");
}else if($id=="CCL"){
exec("killall mplayer");
exec("play_radiko.sh CCL", $e);
}else if($id=="802"){
exec("killall mplayer");
exec("play_radiko.sh 802", $e);
}else if($id=="ABC"){
exec("killall mplayer");
exec("play_radiko.sh ABC", $e);
}else if($id=="MBS"){
exec("killall mplayer");
exec("play_radiko.sh MBS", $e);
}else if($id=="OBC"){
exec("killall mplayer");
exec("play_radiko.sh OBC", $e);
}else if($id=="RN1"){
exec("killall mplayer");
exec("play_radiko.sh RN1", $e);
}else if($id=="RN2"){
exec("killall mplayer");
exec("play_radiko.sh RN2", $e);
}else if($id=="CRK"){
exec("killall mplayer");
exec("play_radiko.sh CRK", $e);
}else if($id=="KISSFMKOBE"){
exec("killall mplayer");
exec("play_radiko.sh KISSFMKOBE", $e);
}else if($id=="HOUSOU-DAIGAKU"){
exec("killall mplayer");
exec("play_radiko.sh HOUSOU-DAIGAKU", $e);
}
}
?>
<html>
<head>
<meta name="viewport" content="width=device-width">
</head>
<body>
<p><a href="index.php?id=stop">stop</a></p>
<ul>
<li><a href="index.php?id=802">FM 802</a></li>
<li><a href="index.php?id=CCL">FM COCOLO</a></li>
<li><a href="index.php?id=ABC">ABC Radio</a></li>
<li><a href="index.php?id=MBS">MBS Radio</a></li>
<li><a href="index.php?id=OBC">OBC Radio Osaka</a></li>
<li><a href="index.php?id=RN1">Radio NIKKEI 1</a></li>
<li><a href="index.php?id=RN2" >Radio NIKKEI2</a></li>
<li><a href="index.php?id=CRK" >CRK Radio Kansai</a></li>
<li><a href="index.php?id=KISSFMKOBE" >Kiss FM KOBE</a></li>
<li><a href="index.php?id=HOUSOU-DAIGAKU" >HOUSOU DAIGAKU</a></li>
</ul>
</body>
</html>
 
 radiko player
パソコンからラズベリーパイにアクセスしたところ。

IPアドレスにアクセスします。私の環境ではhttp://192.168.0.101 です。
ラジオ曲をクリックするとラジオの再生が始まります。
STOPで停止ができます。

ラズベリーパイでラジオライフを楽しんでくださあい。でわ。