テストステ論

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

radikorecはインストールが超簡単!VPSでcron設定して, 寝てる間にダウンロード成功!

radikorecは, ネットラジオである「らじこ」や「らじる☆らじる」からストリーミングを録音するためのソフトウェアです. Pythonで書かれています*1.

radikorecを開発した当座の目的は, 自分がNHKのラジオ英会話でまた英語を勉強し始めることです. 今の英語力だとグロ転なんか全く無理. しかし, もっと大きな目的は, 日本人の英語力を上げて, 日本人のグロ転を促し, 日本社会を健全化することです. あるいは, 日本人を守ることです.

普通のサラリーマンのためのグローバル転職ガイド

普通のサラリーマンのためのグローバル転職ガイド

ビジネス英会話は, 現在, 11:20から放送されます. 私が高校生だった時は11:15だったような気もしませんが, いずれにしろ遅いです. これが, 私がビジネス英会話を継続出来なかった大きな理由だと思います. やっていた時も, 布団に入って, 寝っ転がりながらラジオをhearして, そのまま寝るという勉強法でした. 若かったし, 地頭も良いので, それでもある程度役には立てていたでしょうが, 本当に勉強するのであれば, この姿勢では無論いけません. また, 会社員などでは, そもそも11時に帰ってこれないという社畜の方もいるでしょう*2. あるいは, 帰ってきたら子供の世話や夫婦の(禁則事項です)となってしまい, ビジネス英会話を聴けない人がいるでしょう*3.

そんなあなた, radikorecで, 人生の快進撃を始めましょう.

今回, 私自身が, さくらVPS上でradikorecの動作を確認しました. 私が寝ている間に, 遠い石狩の地にあるデータセンターでラジオがダウンロードされていました. 今回は, インストールの仕方, cron設定方法, 運用方法について説明します. ちなみに, radikorecを実行するのであれば, VPSはオススメです. さくらであれば, 一番格安のVPSが1000円/月以下で借りれます. radikorecを実行するだけならば性能はこれで十分です(むしろオーバースペックなので, 300円くらいでコア1メモリ512Mディスク40GBという感じの激安VPSがあればradikorec専用にそれを借りたい)*4. ラジオ英会話のCDを買うと, それぞれの番組で1500円ほどぼったくられますので, 録音した方が圧倒的にお得です!!!IT技術の勝利です. radikorecを知らない情弱は損をするということです. そんなCD, 中高校生がお小遣いで買うか?買わないね!!少し優秀な中高校生であればビジネス英会話で勉強しています. 日本の未来のために, 放送開始時刻を21時にするというのはどうでしょうか?

~$ ls radio/
HARUKI_MURAKAMI_ENG-2013-05-05-22-50.m4a  PRIMARY3_ENG-2013-05-06-06-30.m4a
PRIMARY1_ENG-2013-05-06-06-00.m4a     TOYAMA_TALK_ENG-2013-05-06-06-45.m4a
PRIMARY2_ENG-2013-05-06-06-15.m4a

インストール

まず, 以下のサイトをcloneしてください.
https://github.com/akiradeveloper/radikorec

次に, (README.mdに従って), #make install, $./compile, #./setupをコマンドしてください. これは, rtmpdump(Squeezeのaptで落ちるものは, version 2.3であるため, 2.4を自前ビルドする必要があります)とswftoolsをコンパイルして/usr/local以下にインストールします. /usr/localじゃないところにインストールしたい人は, 自分で調整してください. 例えば私は, vimやghcなどのソフトウェアは, /usr/local/vimと言った具合にprefixを変更してインストールしていますが, 今回は利便性を重視して, /usr/local以下にインストールすることにしました. 他にはffmpegなどのソフトウェアが必要ですが, Debian Squeezeならば, aptで落ちるものが利用出来ます.

この時点でインストールが終わっているはずなので, $./runtestをして, NHK2(らじる☆らじる)とRN2(らじこ)がダウンロード出来ることを確認してください.

一昨日までは, 「ドキュメントに書いておくのであとは各自よろしく!」みたいな感じでしたが, ドキュメントに書くよりスクリプトで書いた方が分かりやすいのと, インストールに手間がかかると導入が進まないと思うので, スクリプトを書きました. 自動化重要. ただし, これ以上簡単にすることは難しい(それこそ, pre-installされた製品を売るとかになる)ので, そこは各自努力してください. 小学生レベルのIT知識は要求させてください.

cronの設定

私は, akiraというユーザにradikorecを実行させて, /home/akira/radio以下に格納することにしています. みなさん同じような設定をするのがたぶん良いでしょう.

そのためにはまず, $crontab -eとして, 自分のcrontabを開きます. それに対して, crontab.sample (中身は以下)を参考にして, cronの設定をwriteしてください. ちなみに以下は, 現在(2013年5月5日), NHK2が放送している学習者向けのラジオ番組のすべてです. 調整すべきところは, STORAGEという変数と, 必要ならば(おれの設定したものが気に喰わないなら)prefixでしょう. そのままcrontabを閉じると, 自動的に設定反映されるのでデーモンを再起動する必要はありません.

コメントしたい点としては3点.
1. CRON_TZでタイムゾーンを強制しています.
2. 1時間に一回, ntpdateで時間を合わせています.
3. cronは標準で/bin/と/usr/binしかパスが通っていません. なので, パスを通したラッパースクリプトを/usr/local/bin/radikorec_wrapperに置いて, 実行しています. インストール手順中, setupの部分で自動的にインストールされます.

$ cat crontab.sample
CRON_TZ="Japan"
STORAGE=/home/akira/radio
CMD=/usr/local/bin/radikorec_wrapper --directory=$STORAGE

00 * * * * ntpdate -q ntp.nict.jp

40 12 * * 3-5 $CMD --prefix=SUGITA_BUSI_ENG --duration=15 --channel=NHK2
45 6 * * 1-5 $CMD --prefix=TOYAMA_TALK_ENG --duration=15 --channel=NHK2
40 12 * * 0,6 $CMD --prefix=SHIBAHARA_LISTEN_ENG --duration=15 --channel=NHK2
50 22 * * 0 $CMD --prefix=HARUKI_MURAKAMI_ENG --duration=30 --channel=NHK2
00 6 * * 1-5 $CMD --prefix=PRIMARY1_ENG --duration=15 --channel=NHK2
15 6 * * 1-5 $CMD --prefix=PRIMARY2_ENG --duration=15 --channel=NHK2
30 6 * * 1-5 $CMD --prefix=PRIMARY3_ENG --duration=15 --channel=NHK2
40 12 * * 1-2 $CMD --prefix=SEKIYA_INTRO_BUSI_ENG --duration=15 --channel=NHK2
15 13 * * 1-5 $CMD --prefix=SAM_ONEPOINT_ENG --duration=5 --channel=NHK2
30 8 * * 1-5 $CMD --prefix=STEVE_TIMETRIAL_ENG --duration=10 --channel=NHK2

自分でソフトウェア作ってcronで定期実行するとかcoolなのだわ.

運用方法

上のcrontabに書いた番組をすべて録音すると, 510分/週になります. そして, 15分の番組をとると5.8MBの容量になります. つまり, 週に197MBのストレージを消費します. 年間では9.8GB程度です. 半年ならば, 4.9GBです. 全部録音し続けても容量は大したことないので, 全部録音し続けて良いと思います. 例えば半年に一回DVD(4.7GB)に焼くとして, 基礎英語を除けば, すべて十分に1枚のDVDに収まるでしょう. 私はこういう運用を続けていく予定です. 全部ダウンロードしてやった方がお得感が増すからというのもありますし, radikorecの開発者として, 番組表の変更には敏感になっておきたいからです.

VPSに落とした番組を私は手元のMacで聴いています. m4aはiTunesで聴けます. iPodにも入るので便利です. 同期のために, 一番簡単な方法として, rsyncを使っています.

$ cat sync_radio.sh
rsync -ruv --stats sakura:/home/akira/radio radio

(結果例)

$ sh sync_radio.sh
receiving file list ... done
radio/SAM_ONEPOINT_ENG-2013-05-07-13-15.m4a
radio/SEKIYA_INTRO_BUSI_ENG-2013-05-07-12-40.m4a
radio/STEVE_TIMETRIAL_ENG-2013-05-07-08-30.m4a

Number of files: 16
Number of files transferred: 3
Total file size: 76845263 bytes
Total transferred file size: 10207359 bytes
Literal data: 10207359 bytes
Matched data: 0 bytes
File list size: 739
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 86
Total bytes received: 10209496

sent 86 bytes  received 10209496 bytes  618762.55 bytes/sec
total size is 76845263  speedup is 7.53

以上です. radikorecを使って英語を勉強して, 逆襲しましょう. 私は日本人なので, 努力する日本人の味方です.

*1:Pythonはとても良い言語ですね. 弊社でも少しずつ, 利用者が増えています

*2:しかし私はそういう人にも人生を諦めて欲しくない. 英語力を上げて逆襲しましょう

*3:まぁ, リア充は英語なんか勉強しなくていいです

*4:saasesとかいうのがあるんですね. 450円/月. 300円にならねーかな?