録音」タグアーカイブ

radiko.jp録音環境構築(実験)

GuruPlugServerでradiko.jp録音環境構築(実験)参照リンク(下)を参考に、rtmpdumpとswftoolsを組み合わせた方法で、radiko.jp録音環境の構築がうまくいきました。

そこには、swftoolsのswfextractか何かで認証情報を引っ張ってきて、色々とゴニョゴニョやるように書いてありました。参照リンク先(深謝!)とちょっとの想像力で、何とか録音できるようになりました(実験済み)。linux系ならば、cronと組みあせれば予約録音も可能になるようです(これも実験済み)。swftoolsの導入時、コンパイル作業が必要になったが、参照リンクのおかげで、特に問題なくできました。

コンパイル時にちょっと注意する必要が

ただ、jpegのライブラリを別途用意する必要があります。これも参照リンクを参考にひっぱってきましたが、版数に6だとか8だとかがあり、結局6で動かしてみました。参照リンクには8版での導入例がありましたが、6でも動くようです。
#もしかするとswfextractだけ使う分には影響ないのかも知れませんね

ただコンパイル途中でエラーが1つ出ます。それをなんとかするため、lib/jpeg.cの462行目付近の関数を

[lib/jpeg.c]
462 int jpeg_load_from_mem(unsigned char*_data, int size, unsigned
char**dest, int*width, int*height)
463 {
464     fprintf(stderr, "jpeg_load_from_mem: No JPEG support compiled in\n");
465     return 0;
466 }

のように変更する必要があります。引数の型を正しく設定するだけですが。

シェルスクリプトの作成

今回、参照リンクにあったrec_radiko.shというシェルスクリプトを使わせてもらいました。ただし出力ファイルの名前の付け方をradikoolと合うように変更しました。

[~/bin/rec_radiko.sh]
#OUTFILENAME=${OUTFILEBASEPATH}/${OUTFILEPREFIX}_`date +%Y-%m-%dJST%H:%M:%S`
OUTFILENAME=${OUTFILEBASEPATH}/${OUTFILEPREFIX}_`date +%Y%m%d%H%M`

また、そのまま実行するとなぜかよく失敗します(20回に19回は失敗)。

メッセージは

failed auth1 process
failed auth2 process

など。どちらも認証処理時の失敗なんでしょうね?

でも、Verboseモードにするか(-qオプションを削除)、retryまでの待ち時間を長めにとれば、ほぼ100%うまくいくことが分かりました。
#何かのタイミングが関係しているのですかね?

[~/bin/rec_radiko.sh]
#
# access auth1_fms
#
#wget -q \
#     --header="pragma: no-cache" \
#     --header="X-Radiko-App: pc_1" \
#     --header="X-Radiko-App-Version: 2.0.1" \
#     --header="X-Radiko-User: test-stream" \
#     --header="X-Radiko-Device: pc" \
#     --post-data='\r\n' \
#     --no-check-certificate \
#     --save-headers \
#     --tries=5 \
#     --timeout=5 \
#     -O auth1_fms_${OUTFILEPREFIX}_${CHANNEL} \
#     https://radiko.jp/v2/api/auth1_fms
wget -q \
--header="pragma: no-cache" \
--header="X-Radiko-App: pc_1" \
--header="X-Radiko-App-Version: 2.0.1" \
--header="X-Radiko-User: test-stream" \
--header="X-Radiko-Device: pc" \
--post-data='\r\n' \
--no-check-certificate \
--save-headers \
--tries=5 \
--timeout=10 \
-O auth1_fms_${OUTFILEPREFIX}_${CHANNEL} \
https://radiko.jp/v2/api/auth1_fms

ここでは-timeoutを変更していますが、-qを取ってしまっても、いろいろ
文字列がでましたが、失敗せず録音(実際はその前の認証処理)できているようです。

環境その他

Linux種類:Debian Lenny
(Linux guruplug 2.6.32-00007-g56678ec #1 PREEMPT Mon Feb 8 03:49:55
PST 2010 armv5tel GNU/Linux)
装置名:GuruPlugServer

アーカイブファイル名

rtmpdump-2.3.tgz
swftools-0.9.1 ( swftools-0.9.1.tar.gz )
#0.9.0はNG
freetype-2.4.4 ( freetype-2.4.4.tar.gz )
jpeg-6b ( libjpeg6b_6b.orig.tar.gz )
jpeg-8c ( jpegsrc.v8c.tar.gz )

お世話になったリンク

個人的自由帳 ≫ とあるサイトの録音手段 (シェルスクリプト)
http://blog.half-moon.org/archives/963

SWFTools導入 電話会議システムを導入 @OpenMeetings – 禿散らかしてごめんなさいhttp://d.hatena.ne.jp/machua/20101106/1289031103

CentOS安装Swftools FRONT-END STUDIO
http://www.wwswf.com/?p=1444

以上です。