日本のストリーミングラジオの録音について調べてみた
ラジオを録音したいなと思ったので調べたものをまとめてみた。
radiko.jp(民放AM/FM)
- ストリーミング方式: RTMP
- 放送エリア外で聞かせたくないので、認証しないと聞けない。
- 非公開の放送局情報や番組表APIがある
直接録音するのは面倒臭い。 聞く局も限られてるから、録音しなくてもいいかな。
らじる★らじる(NHK)
- ストリーミング方式: RTMPとMMS
- Flashが使えない場合はWindows Mediaのストリーミングで聞けるようになってる。
- RTMPの場合はrtmpdump、MMSはmplayerかmsdlを使うといい
- らじるらじるをrtmpdumpで録音する
- mplayerはWAVで書き出しリアルタイムでmp3にエンコードしてるとコケる(らじるらじるに限らないけど) → mplayerとlameで らじるらじる の長時間録音 | メモなど
- RTMPの場合はrtmpdump、MMSはmplayerかmsdlを使うといい
- 認証などはないので素直にキャプチャできます。
- 非公式の番組表APIがある
- http://cgi4.nhk.or.jp/hensei/api/sche-nr.cgi?tz=all&ch=netr1&date=2012-05-19
- 時間帯: tz=[morning|afternoon|night|all]
- チャンネル: ch=[netr1|netr2|netfm]
- 日付: date=YYYY-MM-DD
- http://cgi4.nhk.or.jp/hensei/api/sche-nr.cgi?tz=all&ch=netr1&date=2012-05-19
配信が2段構えになってるのはさすが。 RTMPのほうはAACで、MMSはWMAで配信なので、rtmpdump使ってAACのほうを録音すると音質はよさげ。 でも、手軽さならMMSのストリームをダンプするほうが早いので迷うところ。
コミュニティFM(CSRA/JCBA)
- ストリーミング方式: CSRA:MMS JCBA:RTMP
- CSRAはMMSだけど、JCBAはRTMPになってるのはなぜ。
- CSRAとサイマルラジオ、JCBA(日本コミュニティ放送協会)に分かれてるのでややこしい。
- CSRAとサイマルラジオは同じなんだけど、ストリーミングのドメイン名がcsra.fmとsimulradio.jpに分かれてたり、いったいなんなん?
- 認証やDRMは、かかってないのでmplayerのdumpstreamやmsdlでキャプチャできる。
- JCBAのほうは気づいている人がいないのか、rtspdumpでダンプするには解析しなきゃいけない。
- ラジオ局の情報や番組表のAPIなどは用意されていない。
- サイト自体手作りでスクレイピングしようにも例外が多いから、手で直さないと使えない感じ。
- ていうかストリーミングもURIが統一されてなかったりシステムもバラバラな感じ。
CSRAのキャプチャは問題なくできる。JCBAはrtmpdumpでキャプチャできそうだけど調べないとわからない。 ラジオ局が多いのに統一されたインターフェースもなく、データが整理されてないから全国を網羅しようと思ったら結構大変。
_ timeoutコマンドで時間を限定してコマンドを実行する
ラジオ関連の話です。
mplayerのdumpstreamは、Ctrl+Cで止めない限り延々ダンプし続けます。 なんとか止める方法はないかと調べてたけど、検索で引っかかるのはmplayerをバックグラウンドで実行後、killをsleepで一定時間スリープさせて止めるものばかり。 これはこれでいいのだけど、もう少しスマートにできないかなと思って調べたら、timeoutコマンドを使えば一定時間経過後にコマンドが終了できるので、これを使うのがよさげ。
使い方はこんな感じ。
$ timeout 時間 コマンド
FM GENKIのストリーミングを1分間だけダンプするには、こんな感じで書くと1分後に終了します。 (注: コマンドは1分で終了しますが、mplayerは開始直後、バッファにデータを貯めるので録音自体は50秒前後です。)
$ timeout 1m mplayer -playlist http://csra.fm/asx/fm-genki.asx -dumpstream -dumpfile fmgenki.asf
_ Dropbox-Uploaderを使ってコマンドラインからDropboxにアップロードする
- andreafabrizi/Dropbox-Uploader · GitHub: https://github.com/andreafabrizi/Dropbox-Uploader
Dropboxにファイルをアップロードするシェルスクリプト。 Dropbox APIを使ってるので最初にAPIキーの設定が必要だけど、指示に従えばすぐに設定できるのでサクッと使えます。
ラジオ録音スクリプトと組み合わせれば、録音して、どこでもラジオが聞けるぜ!