NHK ラジオの語学講座を毎週ダウンロードしてるんですが、

外国語を勉強してるのは海外に行くためでして、海外だとダウンロードができないことがよくあります。

なのでせっかくさくらの VPS をお金払って借りてるんだから

勝手にダウンロードするように設定しましたので参考にどうぞ。

月曜日の 12 時頃には決めておいたフォルダに mp3 ファイルができてます。

実際に先週から動かしてみてますが、こりゃ楽でいいです。

SugarSync にアップロードしてるので海外にいるときに iPhone があるだけで新しい音声を聞くことも出来ます。

記事が長くなるので今回の

さくら VPS を使って自動的に NHK ラジオ講座をダウンロード

次回の

さくら VPS にダウンロードした mp3 を Sugarsync にアップロードする

の 2 つにわけて解説していきます。

自動的に NHK ラジオ講座をダウンロードするには以下の 4 つの手順が必要です。

  1. flvstreamer のダウンロード、コンパイル

  2. Ruby のインストール

  3. CaptureStream の設定

  4. cron の設定

1. flvstreamer のダウンロード、コンパイル

flvstreamer をインストールするんですが、

まずさくらの VPS が 32 ビットなのか 64 ビットなのか確認します。

$ cat /proc/cpuinfo | grep flags

して値に lm が含まれていれば 64bit の CPU です。

次に

$ uname -a

X86_64 とか amd64 とかが表示されたら、64 ビット版のカーネルです。

64bit だとわかったので、64bit の flvstreamer をインストールしたいんですが、

32bit しかバイナリがおいてないので自分でコンパイルします。

$ wget http://download.savannah.gnu.org/releases/flvstreamer/source/flvstreamer-2.1c1.tar.gz
$ tar zxf flvstreamer-2.1c1.tar.gz
$ cd flvstreamer
$ make posix
$ ./flvstreamer
FLVStreamer v2.1c1
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
ERROR: You must specify a hostname (--host) or url (-r "rtmp://host[:port]/playpath") containing a hostname

# yum install ruby

やってることは

  1. wget で flvstreamer の圧縮されたソースコードをダウンロード

  2. tar で圧縮ファイルを展開

  3. 展開したファイルに移動してビルド

  4. 引数なしで動かしてインストールが正常終了したか動作確認

となります。

動作を確認したら

$mkdir ~/bin
$mv flvstreamer ~/bin

と HOME フォルダ直下に bin を作って、そこに置いておきます。

( ~/ はユーザーの HOME ディレクトリ)

それからついでに bash に PATH を通しておきましょう。

$vi ~/.bashrc

で Bash の設定ファイルを開いてファイルの最後に

PATH="$PATH":~/bin

を追加しておきます。

$source ~/.bashrc

として設定を反映させておきましょう。

これでどこからでも flvstreamer を呼び出せるようになりました。

2. ruby のインストール

次に CaptureStream.rb を動かすために ruby をインストールします。

以前は yum で入る Ruby のバージョンが 1.8.5 だったので、1.8.7 を入れるためにソースからインストールしていたようですが、今は 1.8.7 が普通に入るので yum でインストールします。

sudo yum install ruby

3. CaptureStream の設定

まず CaptureStream.rb をダウンロードしてきます。

http://sourceforge.jp/projects/capturestream/releases/

ダウンロードしてきた CaptureStream.rb をテキストエディタで開いて設定します。

中に設定方法が書いていますが、

$default_target = []

$default_target = ["business1","business2","chinese","french", "italian", "hangeul", "german", "spanish", "russian", "levelup-chinese", "levelup-hangeul"]

のようにダウンロードしたい講座名を指定します。

これだけで動作は問題ないのですが、

自分の場合は保存ファイル名が「毎日ドイツ語_2012_06_04」のよりも「毎日ドイツ語-2012-06-04」の方が好きなので

# 保存ファイル名
$out_file_hash

の値を「"%k_%Y_%M_%D" → “%k-%Y-%M-%D”」と変更しました。

設定が終わったら nhklang など適当な名前のフォルダを作って WinSCP などで CaptureStream.rb をアップロードします。

ここまでの設定で既に語学講座のダウンロードはできるようになっているはずなので、

ruby ~/nhklang/CaptureStream.rb

で実際にファイルがダウンロードできてるか確認しておいたほうが良いでしょう。

うまくいかなかったらコメント欄に質問をどうぞ。

4. cron の設定

あとは毎週決まった時間にダウンロードするための cron の設定を行います。

crontab -e

で cron の設定ファイルを開いて

PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:~/bin
0 11 * * mon ruby ~/nhklang/CaptureStream.rb >> ~/nhklang/Capture.log</pre>
<p></p>


と書いて保存します。これで毎週月曜日の11時にダウンロードが行われます。
ただ、実際に来週まで動くかどうか待つのは面倒だという方は時間設定を数分後にして動作確認をすると良いでしょう。


### 参考


Ubuntu 10.4 Server上でCaptureStream Ruby版を使ってNHK語学講座をダウンロード: らぶらぶ♪じゃんく
<http://app.m-cocolog.jp/t/typecast/27561/29112/69881215?page=2>


CaptureStream Ruby版を使ってCentOS 5.5上でNHK語学講座をダウンロードする - fujitaka’s lifelog
<http://d.hatena.ne.jp/fujitakastyle/20110403/1301837105>


Linuxでの32ビットと64ビットマシンの見分け方。 - IT memorandum
<http://d.hatena.ne.jp/jun-ya/20090511/1242028435>


CaptureStream Ruby版を使ってCentOS 5.5上でNHK語学講座をダウンロードする - fujitaka’s lifelog
<http://d.hatena.ne.jp/fujitakastyle/20110403/1301837105>


さくらVPSでRuby on Railsを動かすメモ - @yuumi3のお仕事日記
<http://d.hatena.ne.jp/yuum3/20100927/1285567203>


[さくらVPS] デフォルトだと日本語が文字化けするよね? | DENPA GROOVE
<http://jokami.mydns.jp/2010/10/01/%E3%81%95%E3%81%8F%E3%82%89vps%E3%80%80%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%A0%E3%81%A8%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%8C%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%81%99%E3%82%8B/>


cron(クーロン)の設定 - プログラムを定期的に自動実行 [Fedora, RedHat, CentOS] - Linux
<http://memorva.jp/memo/linux/cron.php>