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で変換するとさらに軽くなるが, 音は結構悪い.