テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

radikorecでらじるもらじこも独り占め!

昨日, NHK英会話をダウンロードしてデキル同期に差をつけよう!において, radikorecを発表しました. 今日は, デキル同期に一層の差をつけるために努力しました. 努力って良い響きだと思います.

radikorecは, インターネットラジオを録音するためのソフトウェアです. ビジネス英会話が始まるのは遅いのでその時間には起きてないよ*1!という人や, 何度も繰り返し聞きたい*2人にとってはありがたいソフトウェアということになります. 私もうちの一人です. 具体的なユースケースとしては, VPSでcronに登録して自動でダウンロードするということを考えています.

もともと, らじるを録音したという記事はあって, スクリプトも公開されているのですが, 使いにくいので, 再開発したというのが昨日までのお話です. 昨日までの仕事に加えて, 今日は, 「同じインターフェイスでらじるとらじこを録音出来る」ようにしました.

radikorec
主に, lib/radiko.pyが追加したコードです.

以下が, radikorecの使い方ですが, channelの部分をFM|NHK1|NHK2にすればらじるからダウンロードします. それ以外の場合は, らじこからダウンロードします. 実装上は, らじるからダウンロード出来ないなら, らじこの方にfall backする仕組みになっています (らじこで聴けるラジオ一覧). 詳しく知りたければ, 簡単なコードなので読んでください. インターフェイスは, とてもシンプルだと私は思います.

akira@Kamille> radikorec --help                                                                                                                                    ~/src/radikorec
usage: radikorec [-h] [--duration DURATION] [--prefix PREFIX]
                 [--rtmpbin RTMPBIN] [--channel CHANNEL]
                 [--directory DIRECTORY] [--test] [--debug] [--dry-run]

A Simple Radiko Recorder

optional arguments:
  -h, --help            show this help message and exit
  --duration DURATION   time(min) to record. default(1)
  --prefix PREFIX       filename prefix. default(RADIKOREC)
  --rtmpbin RTMPBIN     The path for rtmpdump binary >= 2.4. default(rtmpdump)
  --channel CHANNEL     FM|NHK1|NHK2. default(FM)
  --directory DIRECTORY
                        output directory. default(/tmp)
  --test                set test parameters.
  --debug               print messages on console.
  --dry-run             don't actually execute

課題

  • たぶんですが, 2つのプロセスが同じディレクトリで同時にredikoに接続しようとするとバグります. ほとんどないケースだと思いますが, 簡単なので対処します.
  • 相変わらず, PyPIからダウンロード出来ません. 利用開始が簡単な方が良いと思います.
  • 依存として新しくswftoolsが加わってしまいました. これは自前ビルドする必要があります. 良いことではありません. どうにかしてPythonで閉じれないかを検討します.
  • 他にも統合出来るネットラジオがないかが気になります. 統合に価値があれば, 統合します.

*1:お肌に悪いよ!

*2:というか, それ以外に学習方法はない気がします