2012年12月2日日曜日

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

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

※本ブログは6月末で他サイトに移設する予定です。これまで閲覧ありがとうございました。
[note] this blog is planed to be moved to other site until end of June. See you in there

参照リンク(下)を参考に、
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

以上

0 件のコメント:

コメントを投稿