StreaRipper@RaspberryPiを使って、ネットラジオ(ねとらじ)を自動録音してくれるスクリプトを組んでみた。
「ねとらじ」というマイクとPCさえあれば、いつでも無料でネットラジオ放送が出来るサイト(ニコニコ生放送・UStreamの走りみたいな感じ)があります。
素人パーソナリティが気ままにネット放送をしているので、いつ始まっていつ終わるか分からないという混沌っぷり(twitterで告知したりはしている)
なので、自動的に録音してDropboxに保存しておいてくれると、いつでも聞けて便利だな~。と思ってシェルスクリプトを組んでみた。
【処理の流れ】
1, ねとらじのサイトから放送リストを取得する(JSONとかじゃない所に時代を感じる)
2, 登録したラジオ番組がなかったら、10分スリープして1に戻る
3, 気に入ったラジオがあったら、StreamRipperで録音
4, 録音が終わったら、Dropboxにアップロード
5, 最後に通知メールを送信
以下のシェルスクリプトを適当なファイル名(ladio.sh)で保存して、バックグラウンドで実行する(最後の&がバックグラウンド指定)
頭のnohupはログアウトしても実行しつづける。niceはプロセス優先順位を下げる指定。
1 |
nohup nice -20 ladio.sh & |
まだテストしてないけど、だいたいこんな感じで上手く行くのではないだろうか(^_^;)
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 |
#!/bin/sh #気になるラジオURL grep_url="http://std1.ladio.net:8030/testtest" #リスト取得の周期(秒単位) sleep_seconds=600 while : do #リストを取得する(-N ファイル上書き) wget -N "http://yp.ladio.net/stats/list.v2.dat" #キーワードにヒットするかどうかチェック RET_CODE=`grep $grep_url list.v2.dat ` #ヒットしたらループ脱出 if [ -n "$RET_CODE" ]; then break fi echo "スリープ中" sleep $sleep_seconds done echo "ラジオ・ヒット!" echo $RET_CODE #URLを指定して、StremRipperでファイル保存 # -s 親ディレクトリ無し -d ディレクトリ指定 -l 10 はテスト用に10秒だけ録音 # 最後に、日本語文字化け対策 streamripper $grep_url -l 10 -s -d /root --codeset-id3=UTF-16 --codeset-filesys=UTF-8 --codeset-metadata=Shift_JIS #dropboxのルートにアップロードする dropbox_uploader.sh upload /root/incomplete / #mp3ダウンロードとアップロードが完了したら、通知メールを送る echo 'StreamRipper had finished!! \n https://www.dropbox.com/home/incomplete/ ' | mail -v -s 'Record Alert!' radio@gmail.com |