インターネットでラジオが聴ける「Radiko」というサービスはよく知られていますが、その放送を録音するには色いろなやり方があるようです。さて、自分の使っている Linux ではどうやればできるのかなと調べてみたら、意外と簡単でした。Linux Mint 18.2 で確認しています。(後記:Ubuntu 17.10 でも確認しました。)
既にネット上にたくさん情報が上がっていますが、rec_radiko.sh というシェルスクリプトを使うのがもっとも簡単なようです。これは Gist に上がっているので、コピペするかダウンロードしておきます(作者に感謝です)。
それから、必要なライブラリを入れます。すべて apt-get で入ります。
$ sudo apt-get install rtmpdump swftools libxml2-utils ffmpeg libavcodec-extra57
自分の場合は rtmpdump と swftools 以外は既に入っていました。libavcodec は適宜最新バージョンを入れて下さい。
シェルスクリプトに実行権を与えます。
$ chmod 755 ./rec_radiko.sh
あとはシェルスクリプトを実行するだけです。Radiko への参加放送局は例えばここにあります。自分の住んでいるところは岐阜県なので、岐阜放送(GBS)をとりあえず 1分間録音してみます。
$ ./rec_radiko.sh GBS 1 RTMPDump v2.4 (c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL WARNING: No application or playpath in URL! Connecting ... WARNING: Trying different position for server digest! INFO: Connected... ERROR: rtmp server sent error ERROR: rtmp server requested close
あれれ、エラーが出ますね。よくわからないので、ぐぐってみました。すると、ここに、「東京に住んでいるのに北海道のラジオ局名が出る」というのがあったので、ここへ飛んでエリア判定をしてみました。すると、なんと「静岡県」に!(笑) どうもそういうことだったようですね。なので、とりあえず Radiko にはエリア判定の修正要求を出しておいて、ここでは静岡のラジオ局(SBS)を 1分間録音してみます。
$ ./rec_radiko.sh SBS 1 RTMPDump v2.4 (c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL WARNING: No application or playpath in URL! Connecting ... WARNING: Trying different position for server digest! INFO: Connected... Starting Live Stream For duration: 60.000 sec INFO: Metadata: 365.962 kB / 60.03 sec Download complete
OK ですね!
なお、これは現在放送中の番組しか録音できませんので、これで予約録音がしたいなら、PC を動かしたままにしておいて cron とか、別途録音用のサーバを立てるなどすることになります(Raspberry Pi を使っている人が目につきます)。これは別問題なのでここでは書きません。
また、エリア外の放送も録音したいという人がおられるかも知れませんが、さて Radiko 会員になってこの方法でできるのかは知りません。公開VPNサーバを使ったりすればできるようですが、そこまですることはないでしょう。というか、これはおすすめできないですね。
サブの PC をつけっぱなしにしておいて、cron で予約録音してみます。11月23日AM3:00~4:00 の静岡放送「走れ!歌謡曲」を予約録音します。
~/.crontab
0 3 23 11 4 /home/***/Documents/rec_radiko.sh SBS 60
cron の登録。
$ crontab ~/.crontab
さて。どうでしょうか。(追記:うまくいきました。)