ラジコの録音、東京の放送を取得する一案(1
そもそも、radikoの録音はどうやっているのでしょうか。
まずはトークンを取得します。
TBSラジオの例です。
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 https://radiko.jp/v2/api/auth1_fms
これでトークンがとれます。
トークン
cat auth1_fms | perl -ne 'print $1 if(/x-radiko-authtoken: ([\w-]+)/i)'
パーティカルキー
# offset cat auth1_fms_${OUTFILEPREFIX}_${CHANNEL} | perl -ne 'print $1 if(/x-radiko-keyoffset: (\d+) /i)' # length cat auth1_fms_${OUTFILEPREFIX}_${CHANNEL} | perl -ne 'print $1 if(/x-radiko-keylength: (\d+) /i)'
取得したoffsetとlengthを使って取得します。
dd if=$keyfile bs=1 skip=[offset] count=[length] 2> /dev/null | base64
例)トークン S:wdaDhu6evQheSnXIM8vbGA
パーティカルキー cHHB6YxRZrVhZMRASY1J4w==
ところが、このトークンはまだ使えません。
更に認証を通します。
取得したトークンとパーティカルキーを使います。
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' \ '--header=X-Radiko-Authtoken: wdaDhu6evQheSnXIM8vbGA' \ '--header=X-Radiko-Partialkey: cHHB6YxRZrVhZMRASY1J4w==' \ '--post-data=\r\n' --no-check-certificate --tries=5 \ --timeout=5 -O auth2_fms https://radiko.jp/v2/api/auth2_fms
こうして取得したトークンを使えばよいです。
rtmpdump -v -r rtmpe://f-radiko.smartstream.ne.jp --playpath simul-stream.stream \ --app TBS/_definst_ -W http://radiko.jp/player/swf/player_3.0.0.01.swf \ -C S: -C S: -C S: -C S:wdaDhu6evQheSnXIM8vbGA --live \ --flv ./test.flv --stop 30
最後を少し変えれば、そのまま再生もできます。
rtmpdump -v -r rtmpe://f-radiko.smartstream.ne.jp --playpath simul-stream.stream \ --app TBS/_definst_ -W http://radiko.jp/player/swf/player_3.0.0.01.swf \ -C S: -C S: -C S: -C S:wdaDhu6evQheSnXIM8vbGA --live \ --flv - | mplayer -cache 500 -quiet -
mplayerが必要です。
ディスカッション
コメント一覧
まだ、コメントがありません