深夜ラジオが好きなので、いろいろ録音して聞いています。
最近新しいPC(FunTwist ベアーボーン ブラック Fiono330 【AA】)を買ったので、Ubuntuを入れて録音することに。


radiko公開当初はubuntu付属の flvstreamer で録音していたのですが、radiko側のバージョンアップによって録音できなくなったので、rtmpdumpで録音することに。

いろいろなサイトを参考にして、試行錯誤し、やっと落ち着いたので自分的まとめをメモ。(いろいろな番組を録音していますが、radikaというradikoを録音するフリーツールのリトライ機能がradikoサーバーを落としてしまったと評判の伊集院の深夜の馬鹿力を録音する例を記述してます)
ちなみに、自分が思うradika録音のメリットは、ラジオの時間帯がかぶっても同時録音出来ることかも。(例えば木曜日のTBSラジオ(おぎやはぎのメガネびいき)と ニッポン放送(ナインティナインのANN)とか)


1.ソースのダウンロード

以下のサイトからソースコードを入手。

http://rtmpdump.mplayerhq.hu/
「Download source tarboll」


落としてきたファイルを解凍。

tar -xvzf rtmpdump-2.2b.tar.gz


正常に解凍できればOK。

2.rtmpdumpのビルド

解凍したディレクトリに移動してビルド。

cd rtmpdump-2.2b
make posix

-------------------------
※2010.06.03追記※
最新バージョンの2.2eでは、コマンドが以下に変更されたようです。
$ make SYS=posix
-------------------------

make linux でもいいみたいですが、とりあえずREADME通り make posix で。

3.rtmpdumpのインストール

とりあえず、/usr/local/bin にインストール。

sudo cp -p rtmpdump rtmpgw rtmpsrv rtmpsuck /usr/local/bin


以下のコマンドでヘルプメッセージが出ればOK。

rtmpdump -h


4.radikoの録音

radikoを録音するためのコマンドは以下の通り。

rtmpdump -vr rtmpe://radiko.smartstream.ne.jp/TBS/_defInst_/simul-stream -s http://radiko.jp/player/player_0.0.9.swf -B 7200 -o output.flv


バージョンアップ以後は、この -s オプションがないと録音できなくなったようです。
またバージョンが変われば、このオプションに渡す引数も変わりそうなので、あとでshにするときには変数にしよう...。

5.cron に登録

基本、録音するのは深夜番組なので、シェルにしておきます。
そのために、まずは録音コマンドをshに。

#!/bin/bash

## argument
TITLE=$1
CHANNEL=$2
FTIME=$3

## parameter
OUT_HOME="/home/user/ミュージック/radiko"
FLV_OUT=$OUT_HOME/"flv"
MP3_OUT=$OUT_HOME/"mp3"
SWF_URL="http://radiko.jp/player/player_0.0.9.swf"

## setting path
PATH=/usr/bin:/usr/local/bin:$PATH;
export PATH

## others
DATE=`date +%Y%m%d`
FILE="${TITLE}_${DATE}"

## call
### flvstreamer -r "rtmp://radiko.smartstream.ne.jp:1935" -a "$CHANNEL/_defInst_" -y "simul-stream" -v -B $FTIME -o ${FLV_OUT}/${FILE}.flv
rtmpdump -vr rtmpe://radiko.smartstream.ne.jp/$CHANNEL/_defInst_/simul-stream -s $SWF_URL -B $FTIME -o ${FLV_OUT}/${FILE}.flv
### ffmpeg -y -i ${FLV_OUT}/${FILE}.flv -ar 44100 -ab 192 ${MP3_OUT}/${FILE}.mp3


これをcronに登録。(crontab -e )
cronに登録する際は、「> /dev/null 2>&1」として、メッセージを捨てるのがコツ。
ubuntuではこうしておかないとうまく動かないことがあります。

### Radiko Monday
59 0 * * 2 /home/nano/bin/radikoRecorder.sh 伊集院光_深夜の馬鹿力 TBS 7440 > /dev/null 2>&1
10 2 * * 2 sudo /etc/acpi/hibernate.sh > /dev/null 2>&1


radikoサーバの負荷状態によっては、通信確立までに時間がかかるようだったので、
少し早めに起動して少し長く録音するようにしました。

また、3時過ぎには番組が終わるので、PCを休止させるコマンドも登録。
これで、寝る前にubuntuマシンを起動しておけば、録音→自動休止となるはず。

以上、良ければ参考にしてください。




携帯アクセス解析