2014年03月21日

NHKラジオ講座

 4月からヒメに「基礎英語1」を聞かせようと思っている。リアルタイムに時間を合わせるのはなかなか難しいので、録音して聞く方法をいろいろ調査してみた。NHKの「マイ語学」サイトで提供されている一週間遅れのストリーミングを CaptureStream でキャプチャーするのがよさそうだが、毎週月曜日に手動で取りに行かないといけない。自動取得ができるように、Ruby スクリプトを作ってみた (capture_nhk.rb)。(←文字化けする時はエンコーディングを UTF-8 に変えて見てください)

 /Applications に MacCaptureStream をコピーして、このスクリプトを1日1回自動実行する。実際には週に一回で十分だが、取得できない時に日を改めて再取得させるため、毎日実行するようにした。MacCaptureStream は実際には使っておらず、バンドルされている ffmpeg だけを使っている。自分でビルドするといろいろ面倒なので、確実に動くとわかっている MacCaptureStrema 中のバイナリを流用した。

 取得が成功すると、/Users/Shared/NHK というディレクトリに m4a 形式でファイルがダウンロードされる。そのまま再生してもよいし(iTunes がいちいち立ち上がるのはうっとうしいが)、ヒメはウォークマンを持っているのでそちらにコピーしてもよい。また、新規にファイルを取得するか、途中で失敗した場合は、指定されたメールアドレスにメールで通知するようにしておいた。

 自動実行の設定には、/Library/LaunchDeamons ディレクトリ中に所有者 rootcom.capture_nhk.plist というファイルを作成し、次の内容を書き込む。

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.capture_nhk</string> <key>ProgramArguments</key> <array> <string>/usr/bin/ruby</string> <string>/Applications/capture_nhk.rb</string> </array> <key>StartCalendarInterval</key> <array> <dict> <key>Minute</key> <integer>00</integer> <key>Hour</key> <integer>13</integer> </dict> </array> </dict> </plist>

 launchd に認識させるには、sudo launchctl load /Library/LaunchDeamons/com.capture_nhk.plist とすればよい。修正した後は、一旦 unload して、もう一度 load する。OS を再起動するより簡単。

タグ:教育
Posted at 2014年03月21日 00:39:13
email.png