Category
- 1/43 Car's (246)
- Bouldering (14)
- Camera (32)
- Computer (41)
- Everyday (134)
- Goods (12)
- Linux (49)
- Music (32)
- Photo (65)
- Plant (33)
- Plastic Model (58)
- Trekking (43)
- WordPress (35)
It's blog written about Trekking ,1/43 MiniCar , Plastic Model , Photo , Computing.
RSS前回の「Raspberry Piでradikoを再生【その1】」でインストールしたmplayerを利用します。
SHOUTcastのページを開いて、聞きたい局のダウンロードアイコンにカーソルを合わせると
ブラウザの下に局IDを含んだURLが表示されています。
必要なのはIDなので、そのID番号をメモしておき、以下のコマンで再生が可能です。
1 |
$ mplayer -playlist http://yp.shoutcast.com/sbin/tunein-station.pls?id=172098 |
簡単ですよね。
私の自宅サーバーは夜中に各種チェックをしているのですが、
Raspberry Piは非力なので、各種サービスを止めています。
当然、radikoの再生も止めますが、チェックが終わったら引き続き再生する様にしました。
ポイントとしては、
・前回で紹介した選局中の放送局を書いたnowplay.htmlを利用
・実行はwww-dataで実行しないと、次回ブラウザから止められない
1 2 3 4 5 6 7 8 |
nowplay=`cat /var/www/nowplay.html | cut -d ">" -f 2 | cut -d "<" -f 1 | tr -d " "` case $nowplay in "NHK1") sudo -u www-data play_nhk.sh r1 > /dev/null 2>&1 & ;; "NHK2") sudo -u www-data play_nhk.sh r2 > /dev/null 2>&1 & ;; "NHKFM") sudo -u www-data play_nhk.sh fm > /dev/null 2>&1 & ;; "-----") ;; * ) sudo -u www-data play_radiko.sh $nowplay > /dev/null 2>&1 & ;; esac |
これで、朝起きてもradikoが流れてくれて、ブラウザからも止められます。
NHKのらじるらじるが聞けるようにして、選局中の放送局がわかる様に、
もう少しバージョンアップしてみました。
nowplay.htmlという選局した局名を書いたHTMLを出力して、iframeで表示しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
<?php //radiko player //http://www.nakatayuki.com/ //https://rabbitrider.net/grasshopper/ $file = 'nowplay.html'; if(isset($_GET['men'])){ $id=$_GET['men']; if($id=="FMFUKUOKA"){ exec("killall mplayer"); exec("play_radiko.sh FMFUKUOKA > /dev/null 2>&1 &"); $current = '<p style="text-align: center;color:#ff0000">FM FUKUOKA</p>'; }else if($id=="LOVEFM"){ exec("killall mplayer"); exec("play_radiko.sh LOVEFM > /dev/null 2>&1 &"); $current = '<p style="text-align: center;color:#ff0000">LOVE FM</p>'; }else if($id=="CROSSFM"){ exec("killall mplayer"); exec("play_radiko.sh CROSSFM > /dev/null 2>&1 &"); $current = '<p style="text-align: center;color:#ff0000">CROSS FM</p>'; }else if($id=="RKB"){ exec("killall mplayer"); exec("play_radiko.sh RKB > /dev/null 2>&1 &"); $current = '<p style="text-align: center;color:#ff0000">RKB</p>'; }else if($id=="KBC"){ exec("killall mplayer"); exec("play_radiko.sh KBC > /dev/null 2>&1 &"); $current = '<p style="text-align: center;color:#ff0000">KBC</p>'; }else if($id=="NHK1"){ exec("killall mplayer"); exec("play_nhk.sh r1 > /dev/null 2>&1 &"); $current = '<p style="text-align: center;color:#ff0000">NHK 1</p>'; }else if($id=="NHK2"){ exec("killall mplayer"); exec("play_nhk.sh r2 > /dev/null 2>&1 &"); $current = '<p style="text-align: center;color:#ff0000">NHK 2</p>'; }else if($id=="NHKFM"){ exec("killall mplayer"); exec("play_nhk.sh fm > /dev/null 2>&1 &"); $current = '<p style="text-align: center;color:#ff0000">NHK FM</p>'; } file_put_contents( $file , $current); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ja"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <head> <link rel="shortcut icon" href="icon.png" /> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="0"> <title>radiko Tuner</title> </head> <body style="color:#00ff00;background-color:#000000;font-size:medium;font-style:normal"> <h1> <p style="text-align: center;">Raspberry Pi<br>radiko Tuner</p> </h1> <hr> <form action="radiko.php" method="get"> <p style="text-align: center;"><input type="radio" name="men" value="FMFUKUOKA">FM FUKUOKA <input type="radio" name="men" value="LOVEFM">LOVE FM <input type="radio" name="men" value="CROSSFM">CROSS FM <input type="radio" name="men" value="NHKFM">NHK FM <br> <input type="radio" name="men" value="NHK1">NHK 1 <input type="radio" name="men" value="NHK2">NHK 2 <input type="radio" name="men" value="RKB">RKB <input type="radio" name="men" value="KBC">KBC <br><br><input type="image" src="play.png" name="play"></p> </form> <p style="text-align: center;">Now PLay<br><iframe src="nowplay.html" width="140" height="35" frameborder="0" scrolling="no" ></iframe></p> <?php $file = 'nowplay.html'; if(isset($_GET['stop'])){ $id=$_GET['stop']; if($id=="STOP"){ exec("killall mplayer"); $current = '<p style="text-align: center;color:#ff0000">-----</p>'; file_put_contents( $file , $current); } } ?> <form action="radiko.php" method="get"> <p style="text-align: center;"><input type="image" src="stop.png" name="stop" value="STOP"></p> <hr> </form> </body> </html> |
前回はコマンドラインからの実行でしたが、停止や選局のたびに
コマンドを叩くのは面倒ですから、今回も「ラズベリーパイでラジオのradikoを再生しよう!」
を参考にさせて頂き、ブラウザでコントロールできる様にしてみました
【注意】Raspberry PiでApacheとPHPが動作する事が前提です
・Apacheが音を鳴らせるようにする
ブラウザからコマンドを実行させて再生させるので、www-dataをaudioグループに追加します
1 |
$ sudo usermod -G www-data, audio www-data |
・HTMLとPHPで選局ページを作る
私はradiko.phpと言う名前で以下のソースを書きました
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
<?php //radiko player //http://www.nakatayuki.com/ //https://rabbitrider.net/grasshopper/ if(isset($_GET['men'])){ $id=$_GET['men']; if($id=="FMFUKUOKA"){ exec("killall mplayer"); exec("nohup play_radiko.sh FMFUKUOKA > /dev/null &"); header('Location: https://fmfukuoka.co.jp/index2.php'); }else if($id=="LOVEFM"){ exec("killall mplayer"); exec("nohup play_radiko.sh LOVEFM > /dev/null &"); header('Location: http://lovefm.co.jp'); }else if($id=="CROSSFM"){ exec("killall mplayer"); exec("nohup play_radiko.sh CROSSFM > /dev/null &"); header('Location: http://www.crossfm.co.jp/pc/w_index.php'); }else if($id=="RKB"){ exec("killall mplayer"); exec("nohup play_radiko.sh RKB > /dev/null &"); header('Location: http://rkbr.jp'); }else if($id=="KBC"){ exec("killall mplayer"); exec("nohup play_radiko.sh KBC > /dev/null &"); header('Location: http://www.kbc.co.jp/radio'); } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ja"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Radiko Tuner</title> <body style="color:#00ff00;background-color:#000000;font-size:medium;font-style:normal"> <h1> <p style="text-align: center;">Radiko Tuner</p> </h1> <hr> <form action="radiko.php" method="get"> <p style="text-align: center;"><input type="radio" name="men" value="FMFUKUOKA">FM FUKUOKA <input type="radio" name="men" value="LOVEFM">LOVE FM <input type="radio" name="men" value="CROSSFM">CROSS FM <input type="radio" name="men" value="RKB">RKB <input type="radio" name="men" value="KBC">KBC <br><br><input type="image" src="play.png" name="play"></p> </form> <?php if(isset($_GET['stop'])){ $id=$_GET['stop']; if($id=="STOP"){ exec("killall mplayer"); } } ?> <form action="radiko.php" method="get"> <hr> <p style="text-align: center;"><input type="image" src="stop.png" name="stop" value="STOP"></p> </form> </body> </html> |
【注意】play.pngとstop.pngはご自分で用意してください
作ったradiko.phpを/var/www/の下に配置させ、私の自宅サーバーは固定IPなので、
http://192.168.1.xxx/radiko.php
と実行して、こんな画面が出てくれば完了です
これで、PCを立ちあげなくても、スマホやタブレットから選局できる様になりました
自宅に居る時はradikoを聞く事が多いので、いつもPCを立ち上げて、
Radikoのページから再生していました。
どうせ流しっぱなしで聞くなら、いつも電源が入っている自宅サーバーの
Raspberry Piでradikoが再生できないか調べてみました。
こちらの「ラズベリーパイでラジオのradikoを再生しよう!」
を参考にさせて頂き、私の環境にインストールしてみました。
・mplayerとrtmpdumpをインストールする
1 2 |
$ sudo apt-get install mplayer $ sudo apt-get install rtmpdump swftools libxml2-utils |
・mplayerで音が出るか試す
1 |
$ sudo mplayer xxxx.mp3 |
音が小さい場合はALSAのボリュームが低い可能性があります
1 |
$ sudo alsamixer |
・play_radiko.sh シェルスクリプトを下のリンクからダウンロードする
https://gist.github.com/ihsoy-s/5292735
スクリプト内のoutdirの部分を環境に合わせて変更してください
どのユーザーからも使えるように実行権限と/usr/bin/にコピーします
1 2 |
$ sudo chmod 755 play_radiko.sh $ sudo cp play_radiko.sh /usr/bin/ |
・ラジを再生してみる
スクリプトに放送局IDをパラメータとして実行します
ラジオ曲の放送局IDは以下のリンクから
http://www.dcc-jpl.com/foltia/wiki/radikomemo
1 |
$ play_radiko.sh FMFUKUOKA |
ラジオが聞こえれば完了です
・バックグラウンドで実行
常に再生し続けるには、バックグラウンドで実行させます
1 |
$ play_radiko.sh FMFUKUOKA > /dev/null 2>&1 & |
バックグラウンド実行している再生を止めるには
1 |
$ killall mplayer |
で止まってくれます