・録音スクリプトのpython版
しばらくシンプルなシェルスクリプトでやってたけど、時刻の指定方法をもう少し柔軟にしたくなったので、 時間を自前でパースするようにpythonで書き直してみた。時刻指定は、日付と時刻を組み合わせた
% radiru_rec.py fm 2011/11/09 19:20 2011/11/09 21:00
が基本形で、日付を省略すれば「今日」と見なす。また、深夜放送でよく使う 26:00(=翌日の 2:00)みたいな指定も可能にした。 録音したい時間が決まっている場合は、終了時刻の代りに
% radiru_rec.py r2 18:00 15m
みたいな指定も可能(15m = 15分間)時間指定の書式は 1h30m とか 60m のように、"h"か"m"を付けること。
実際の録音は従来同様、~/radiru_scripts/ にPIDをファイル名とするシェルスクリプトを生成してそれを at コマンドに登録することで指定時刻に実行する。 生成されるスクリプトは1つで、mplayer と lame を起動後、指定時間だけ sleep してから、mplayer を quit して、FIFOと自身を削除して終了する。
録音したデータはMP3形式で ~/MP3/ に fm-2011-11-09-10-30.mp3 のようにチャンネルと開始時刻のファイル名になる。
時間の計算はpythonのdatetimeモジュールを使っているので、日付をまたぐような場合も大丈夫だと思うのだけど、 境界条件とかはあまりきちんとテストしていないので見落としがあるかも知れない。
ちと長くなったので、画面には貼りつけずに、添付にしておくので、興味ある人は試してみてください。
$ ls ~/MP3/ Japan & World Update-2011-12-26-14-00.mp3 NHK高校講座 音楽1「世界の音楽(1)〜諸民族の声」-2011-12-26-00-00.mp3 こころをよむ「江戸から考える日本人の心」(12)-2011-12-25-13-20.mp3 こころをよむ「江戸から考える日本人の心」(13)-2011-12-25-06-45.mp3 カルチャーラジオ NHKラジオアーカイブス「谷崎潤一郎」(1)-2011-12-26-20-30.mp3 クラシックカフェ-2011-12-20-14-00.mp3 ショパン 前奏曲集-2011-12-17-06-00.mp3 バイロイト音楽祭2011「歌劇“タンホイザー”」-2011-12-26-21-00.mp3
英数字の表記は気になるけど、NHKの番組表では音声読み上げ機能の関係か、全部「全角」文字で書いてある。 まぁ見栄えはイマイチだけど、空白や()をエスケープしないですむから、それなりに便利かも知れない。 -- kojima 2011-12-26 (月) 23:25:07
$ diff -u radiru_rec2.py{.old,} --- radiru_rec2.py.old 2012-01-02 10:39:05.149832639 +0900 +++ radiru_rec2.py 2012-01-02 10:31:59.609598175 +0900 @@ -96,7 +96,10 @@ usage() sys.exit(1) - o, title = opts.pop(0) + if len(opts) > 0: + o, title = opts.pop(0) + else: + title = '' channel = argvs.pop(0) start_flag = 0 duration = 0
タイトルを指定しなければチャンネル名+時刻のファイルになるはず。 -- kojima 2012-01-02 (月) 10:54:56