Linux で Radiko を録音する


学生時代、田舎に住んでいるとテレビよりなにより都会のラジオ番組の幅広さに憧れたりしたものである。

今じゃ Radiko というのもあって、条件さえそれなりに揃えられれば田舎に住んでいるまま都会のラジオをエアチェックできるようになった。ああ、もちろん私的利用の範囲内で。

首都圏はいまや AM ラジオも Radiko 経由で聴くとステレオで聴けるようになっている。Podcast 配信されているものはわざわざモノラルに落としているとか。いやー同じ番組でもそんなに地域格差があるもんなのね。

ただし、条件を揃えるにはそれなりの幸運か費用が必要になるのだけれども (後述)、条件を揃えていなくとも普通に地元のラジオをエアチェックするのに役立つハナシのハズなので落胆なさらずに。

これまでは Windows の.NET アプリである Radika というものをとても便利に使わせていただいていたのだけれど、これのために Windows マシンを起動しておかねばならぬわけで、それをしても余りある便利さだったのだけれども、Linux でスクリプトで録音できればそもそも普段から常時稼働しているサーバーにしかけておくことができるわけで、そっちのほうがいいなあと。そんなわけでついにというかやっと乗り出しのであった。

スクリプト

録音スクリプトは先達の皆様の成果をありがたく甘受したうえで、ちょこっといじってある。ちなみに gist ってのをはじめて使ってみた。リンク先のソースコード右上にある「<>」ってところをクリックして保存すればダウンロードできるみたいよ。

簡易Radiko録音スクリプト

依存ツール

上記スクリプトは、それぞれ以下のものが必要である。カッコ内は CentOS-6 での rpm パッケージ名。ここに書いた追加リポジトリを使えるようにしておけば、yum コマンドでスルリと入るハズ。

  • swfextract (swftools)
  • rtmpdump (rtmpdump)
  • xmllint (libxml)
  • wget (wget)
  • ffmpeg (ffmpeg)
  • libmp3lame (lame)

使い方

使い方はこんなカンジ。もちろん rec_radiko.sh に実行属性を付与しておくように。

./rec_radiko.sh チャンネル 録音時間(分) 保存先ディレクトリ  ファイル名

第1引数は放送局のチャンネル指定。第2引数は分単位の録音時間。第3引数はファイルの保存先ディレクトリで、指定しなければカレントディレクトリに保存される。第4引数は番組名など、ファイル名にしたい文字列を指定する。HOGEHOGEと指定すれば保存されるファイル名は HOGEHOGE_日付.mp3 だし、指定しなければファイル名はチャンネル_日付.mp3 の形式になる。

つまり、TBSラジオ日曜 19:00~20:25 放送の『菊地成孔の粋な夜電波』を録音したければ、以下のようなカンジで crontab に登録すれば良いハズだ。

00 19 * * Sun /foo/bar/bin/rec_radiko.sh TBS 85 /foo/bar/data IKINA_YORUDENPA

サーバーの時刻をntpで合わせていれば Radiko の配信は概ね数秒早くはじまるので頭が切れることはほぼないし、終わりについてもどうせ民放はCMが入るので早すぎることもないのだが、マレにずれていることもないわけではないので、気になる向きは1分早く開始して、1分長く録音するようにしたほうがいいだろう。

チャンネル一覧

で、チャンネルってどうやって指定するのよというはなしなのだけれども、こちらに全国一覧があった。

radikomemofoltia – Trac

保存先

さて、こうして録音したファイルはどこに保存しようかということになる。
冒頭で書いたように、田舎に住んでいるまま首都圏のラジオ番組を録音するには、例えばお使いの ISP が利用しているグローバルアドレスがたまたま首都圏と認識されていたとか、または首都圏にデータセンターのある、root 権限の使えるレンタルサーバーを借りるなりする必要がある。

録音されたファイルを聴くにはなんらかの方法でそのファイルを手元に持ってくるか、ストリーミングで聴けるようにする必要がある。録音したサーバーがインターネット上で Web サーバーとして機能していれば公開ディレクトリに録音ファイルをおいて、Web ブラウザでそのファイルを直接叩くという方法が考えられる。

もうちょっとスマートにいくと、Dropbox のようなオンラインストレージに保存すれば、自分のデスクトップ PC やらスマートフォンからいつでもどこでも聴くことが可能になったりする。

Linux で Dropbox をコマンドラインのみで利用する方法もあることはあるのだが、上記のような幸運に恵まれず、ここみたいな格安サーバーを借りてケチケチ運用する場合は、いずれにせよディスク容量がもったいないので、どこかに転送してサーバー上のファイルは消してしまいたい。

そこで、僕は Box を WebDAV としてマウントして利用している。この場合、Dropbox に比べると非常にファイル処理速度が遅いという問題があるものの、ローカルではなく直接 Box 上にファイルをコピーできるというメリットがある。ちなみに、Windows や Mac の Box の同期クライアントでは、同期するファイルサイズに制限があって上記の『菊地成孔の粋な夜電波』を 90 分録音したファイルは転送できなかったが、WebDAV 経由であれば特に問題なかった。

ではマウント方法。CentOS-6 では以下のようしたらうまくいった。

sudo mount -t davfs https://dav.box.com/dav /foo/bar -o uid=user,gid=group

ログインID (メールアドレス) とパスワードを聞いてくるので入力してやれば良い。uid 及び gid は、Linux 上の自分のユーザーとグループを指定してやる。

マシンリブート時にも自動的にマウントしたければ、/etc/fstab に以下のように記述する。

https://dav.box.com/dav /foo/bar davfs defaults,uid=user,gid=group

ログインID (メールアドレス) および パスワードは /etc/davfs2/secrets に以下のように記述する。

https://dav.box.com/dav ログインID パスワード

これで、iPhone/iPad のクライアントでストリーミングして聴いたりすることができる。この、iOS クライアントで音声がストリーミングできて、かつ Linux にも対応しているオンラインストレージが意外に少ないのである。

なお、これをお読みになるのは分別ある大人の皆様であろうと思うので重ねて申し上げるのは野暮ではあるけれども、録音したファイルはあくまで私的利用の範囲内でお使いいただけますように。

2012/10/30追記

Box を WebDAV マウントする場合、/etc/davfs2/davfs2.conf に以下の記述を入れておかないと、複数のファイルを連続で書き込もうとすると Permission denied となってしまうようである。

use_locks 0

2013/4/4更新

録音スクリプトでファイル名を指定できるようにしたのと、ntp についての説明を追記。

2014/1/16更新

コメントでご指摘いただいていたように、Box を WebDAV マウントする際の URL が変更されているので本文も修正。Box の無料容量が大幅に増えたようなので念のため…

2016/10/24更新

Radiko の仕様変更に対応

関連記事

保存


,
3 comments on “Linux で Radiko を録音する

コメントを残す