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 )
お世話になったリンク
個人的自由帳 ≫ とあるサイトの録音手段 (シェルスクリプト)
https://blog.half-moon.org/
SWFTools導入 電話会議システムを導入 @OpenMeetings – 禿散らかしてごめんなさいhttps://d.hatena.ne.jp/machua/
CentOS安装Swftools FRONT-END STUDIO
https://www.wwswf.com/?p=1444
以上です。