radikoの録音をMac OS X 10.5でしてみた
radiko話題ですね。というわけで、Mac OS X 10.5でradikoの録音をしてみました。
ちなみに、Macでradikoを録音するなら「Audio Hijack Pro」が確実だし、簡単なのでいいと思います。シェアウエアなので32ドルかかります(このあたりは、Desire for wealth : Audio Hijack Pro で地上波ラジオの IP サイマル放送 radiko.jp を録音して podcast にするに詳しく書いてあります)。
radikoを録音するのに必要なのは、下記になります
- rtmpdump
- ffmpeg
- cron
ffmpegは、録音には必要ないのですが、mp3に変換するのに必要です。cronも必要ないけれど、予約録音したいので使う事にします。
rtmpdumpをインストールする
rtmpdumpは、rtmpというFlashが利用する独自のストリーミング用のプロトコルを受信して、.flvファイルを生成してくれます。
Mac OS X 10.5ではここが難問でした。というのも、ソースからコンパイルしようとするとエラーが出て、あれこれでて、一回挫折しました。MacPortsで入れようとすると、Version 1.4がインストールされるのですが、録音できませんでした。そこで、コンパイル済みのrtmpdumpを持ってくる事にしました。
Version 1.6と少々古いのですが、録音は出来ました!コンパイル済みのファイルをダウンロードし、/usr/local/binあたりにいれます。
試しにTBSラジオを録音
ラジオと言えば、TBSらしいので、TBSを録音してみました
/usr/local/bin/rtmpdump -vr rtmp://radiko.smartstream.ne.jp/TBS/_defInst_/simul-stream -o TBS.flv
ちなみになんですが、Version 2.2では-Bというオプションがあり、録音時間が設定できます。1.6には無いみたいです...
ffmpegで変換する
つづいて、ffmpegで.flvを変換します。そのまえに、ffmpegのインストールです。ここもはまりどころでした。MacPortsを普段利用しているのですが、10.5だと上手くインストールできません。それは、Xcode 3.1以上にしろ!とエラーが出るんです。そう、Mac OS X 10.5にあるXcodeは3.0なんです。そこで、ADC(http://developer.apple.com/jp/)からXcode 3.1を持ってきます。これが、1GB近く...
Xcode3.1以上になれば、いつもと一緒です
$ sudo port install ffmpeg
ちなみになんですが、最新版からとにかく色々なコーデックに対応したらしく、やたらと色々なのが入る気がします。ご注意ください。
.flvをmp3に変換です
ffmpeg -y -i TBS.flv -vn TBS.mp3
録音して変換
録音して変換するところまで、一つの処理にしようと思います。
特に、最近のラジオは、1つの番組が長いようですので、録音時間も設定したいところ。
というわけで、シェルスクリプトを書いてみました
#! /bin/sh /usr/local/bin/growlnotify -t '小島慶子 キラ☆キラ' -m '録音開始' /usr/local/bin/rtmpdump -vr rtmp://radiko.smartstream.ne.jp/TBS/_defInst_/simul-stream -o KIRAKIRA_TBS.flv & cmd_pid=$! sleep 9000 kill $cmd_pid /usr/local/bin/growlnotify -t '小島慶子 キラ☆キラ' -m '録音開始' ffmpeg -y -i TBS.flv -vn KIRAKIRA_TBS.mp3 /usr/local/bin/growlnotify -t '小島慶子 キラ☆キラ' -m '変換完了'
ふだん、シェルスクリプトを書かないので、いいお勉強です。ポイントは、
- 録音処理はバックグランドで行う。そのために、コマンドの最後に「&」をつける
- $!で、プロセスIDを取得できる
- sleepコマンドで指定秒数待機できる。秒数ではなく1hと指定できるのもあるそうだけれど、Mac OS X 10.5では秒のみでした
- growlnotifyは、Macで通知と言えばgrowでしょ?ということで
cronに設定する
あとは、お好きな時間にcronに設定しちゃってください。それにしても、Mac OS Xでcronを使う事になるとは、思っていなかったです。あ、あと、その時間帯にはパソコンのスリープが解けるようにしておいてください。
ちなみになんですが、Macのスリープの制御をもっと柔軟にできる方法がしりたいです。どうも、sleepwatcherというのがあり、スリープ状態を確認できるらしいのですが...