2009年8月27日木曜日

NHKのラジオ講座をMacでダウンロード

NHKのラジオ講座は,今年度から前の週1週間分だけ,ストリーミングできるようになった. これはこれですばらしいことではあるが,なんで一週間分なんだ! とか怒りもわいたり. さらに問題なのは,ストリーミングにフラッシュを使っているので,普通にダウンロードすることが できないこと.しかも昨年度の試行では普通にできたのに,わざわざ今年度からできなくしているのだ. こういう嫌がらせにどういう意味を見いだしているのか理解できない.

それはさておき何とかならないか,調べてみると,Windows上には 高梨IT製作所のキャプチャツール というツールがあり,フラッシュをダウンロードしてmp3に変換してくれる. すばらしいのだが,MP3の名前をSJISにしているので,Macにコピーして iTunesに取り込むと文字化けする. コピーするのも面倒.

で,幸いこのツールはRubyで書かれているので,Macで使えるようにしてみた. このキャプチャツールはrtmpdumpという外部プログラムを 使ってflvをダウンロードし, ffmpegを使ってmp3に変換する.なので,これらをMac上に 用意する必要がある.ちなみに,rtmpdumpはadobeの独自プロトコルをリバースエンジニアリングして 作った物のようで,ちょっとグレイかもしれない.

ffmpegは

sudo port install ffmpeg
で入る.rtmpdumpのほうはソースからコンパイルする.このときopensslが必要なので,
sudo port install openssl
でopensslを導入し,rtmpdumpのメイクファイルを編集し,CFLAGSとC++FLAGSに
-I /opt/local/include
を,LDFLAGSに
-L /open/local/lib 
を追加しておく.これでmakeすると rtmpdump_x86 というバイナリができる.これを 適当なパスにコピーしておく.

キャプチャツールにはCUI版とGUI版がある.CUI版のほうを使う. ここ からダウンロードできる. ZIPを展開すると,トップディレクトリにget-flv.rbがある. このなかで,rtmpdumpとffmpegのバイナリを指定している場所があるので 適当に書き換える.id3も指定しているが,使っていないようなので無視.

ファイル名がSJISになっているのは,わざわざSJISにしているから. lib/get_flv.rb に何カ所か tosjis を呼んで部分があるが, それらを全部削除. これで,完成.

ruby get-flv.rb kor
とやると,mp3/kor に日本語名でファイルがつくられる. iTunesに入れても文字化けしない. すばらしい.