Ubuntu 10.04LTSでradikoを録音2

上記の作業を簡単に行うためのスクリプトを作成した. いつもながらPythonです. 日本語のコメント部分をふくむ場合はutf-8形式で保存する.

#!/usr/bin/env python
# coding=utf-8

import getopt
import sys
import commands


def usage():
    print '''
* TBSラジオ- TBS
* 文化放送 -- QRR
* 日本放送 -- LFR
* ラジオNIKKEI -- NSB
* INTER FM -- INT
* TOKYO FM -- FMT
* J-wave -- FMJ

* ABC (1008kHz) --- ABC
* MBS (1179kHz) --- MBS
* OBC ラジオ大阪 (1314) -- OBC
* FM Cocolo (76.5) -- CCL
* FM802 (80.2) ---- 802
* FM Osaka -------- FMO
'''
    sys.exit(2)

try:
    opts, args = getopt.getopt(sys.argv[1: ], "hB:i:", ["help", "stop=", "input="])
except getopt.GetoptError:
    usage()

duration, station = None, "TBS"
for opt, arg in opts:
    if opt in ("-B", "--stop"): duration = int(float(arg) * 60)
    elif opt in ("-i", "--input"): station = arg
    elif opt in ("-h", "--help"): usage()

if station not in ["TBS", "QRR", "LFR", "NSB", "INT", "FMT", "FMJ",
                   "ABC", "MBS", "OBC", "CCL", "802", "FMO"]:
    usage()

cmd = "rtmpdump -f LNX 10,0,45,2 -vr rtmpe://radiko.smartstream.ne.jp/%s/_defInst_/simul-stream" % station
if duration is not None:
    cmd += " -o %s" % station + "`date +%Y%m%d%H%M`.flv"
    cmd += " -B %d" % duration
#     cmd += " -B %d --live" % duration
#     cmd += " | ffmpeg -i - -vn -acodec libmp3lame -ab 64k"
#     cmd += " -y %s" % station + "`date +%Y%m%d%H%M`.mp3"
else: cmd += " --live | mplayer -"

status, output = commands.getstatusoutput(cmd)
if status != 0: print output

この程度のことはシェルスクリプトでやるべきなのだろうが, Pythonの方が慣れているもので. recordradikoなどとして保存して,

$ recordradiko -i FMT
$ recordradiko -i FMT -B 60

等として実行する. "-B"オプションで指定するのは秒でなくて分にしましたので使うときは注意して下さい. "-i"で局を指定. "-B"が指定されていない場合は音を再生, 指定した場合はその時間だけ録音します. デフォルトのラジオ局はTBSにしておきましたw
コメントアウトしてある64kのmp3だと1分あたり480kくらいになってしまった. これだと2時間で60M程度になる. 32kで変換するとさらに軽くなるが, 音は結構悪い.