めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

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を録音するのに必要なのは、下記になります

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というのがあり、スリープ状態を確認できるらしいのですが...