rtmpdump コマンド一覧と使い方

HDS や HLS 形式の保存には streamlink を使う。
streamlink の使い方

RTMPDumpHelper の使い方

rtmpdump のコマンド一覧は -h から取得できる。

この和訳はrtmpdump.1.htmlの和訳に独自の使用方法を加筆した文章になっている。

追記 2011年10月27日
rtmpdump-2.4-windows.zip付属のrtmpdump.1.htmlの和訳に変更し、-j JSON を追加した。

追記 2012年5月10日、2012年5月12日、2012年6月14日、2012年7月3日
和訳を一部修正、-A -B を修正。

追記 2012年8月11日
-R を追加した。

追記 2013年9月1日
一部の文字を強調して修正を行った。

-A, -B で時間指定した場合に動画時間がカットしてない時間になるので保存した後に動画を remux するか、パイプすれば時間が正しくなる。

remux
ffmpeg -i input.flv -c copy output.flv

パイプ
rtmpdump -r foo -o - | ffmpeg -i - -c copy output.flv

最初に弁解しておくとrtmpdumpの全てのコマンドを使いこなせてない(理解してない)のと、プログラミングの英語を上手く和訳できてない。

目次




コマンド一覧

和訳ここから

NAME


    rtmpdump - のRTMPストリーミングメディアクライアント

SYNOPSIS


    rtmpdump-r url [-n hostname] [-c port] [-l protocol] [-S host:port] [-a app] [-t tcUrl] [-p pageUrl] [-s swfUrl] [-f flashVer] [-u auth] [-C conndata] [-y playpath] [-Y] [-v] [-R] [-d subscription] [-e] [-k skip] [-A start] [-B stop] [-b buffer] [-m timeout] [-T key] [-j JSON] [-w swfHash] [-x swfSize] [-W swfUrl] [-X swfAge] [-o output] [-#] [-q] [-V] [-z]
    rtmpdump -h

DESCRIPTION


    rtmpdump はRTMPでストリーミングされているメディアコンテンツを表示(ダウンロード)するツールです。

    rtmpdump 指定のRTMPサーバーへの接続を行い、再生メディアを指定されたURLで指定します。 urlはフォームである必要があります。


    rtmp[t][e]://hostname[:port][/app[/playpath]]

    RTMP、RTMPT、RTMPEなど暗号化されたセッションもサポートされます。


OPTIONS


Network Parameters

    これらのオプションはどのようにメディアサーバーへの接続するかを定義します。
    --rtmp -r url
    サーバーとメディアコンテンツのURL。
    --host -n hostname
    RTMP URLのホスト名をオーバーライドします。(http://.../の...を入力)
    --port -c port
    RTMP URLのポート番号をオーバーライドします。
    --protocol -l number
    RTMP URLのプロトコルをオーバーライドします。

    0 = rtmp
    1 = rtmpt
    2 = rtmpe
    3 = rtmpte
    4 = rtmps
    5 = rtmpts

    --socks -S host:port
    指定したホストとポートを使ってプロキシに接続します。

Connection Parameters

    これらのオプションはRTMP接続要求のパケットの内容を定義します。正しい値が提供されていない場合、メディアサーバーは、接続の試行を拒否します。
    --app -a app
    アプリケーションの名前はRTMPサーバーに接続します。RTMP URLのアプリケーションにオーバーライドする。時にはrtmpdumpのURLパーサが自動的にアプリケーション名を判断できない場合は、このオプションを的確に指定して使用する必要があります。
    --tcUrl -t url
    目的のストリームのURL。デフォルトは rtmp[e]://host[:port]/app/playpath
    --pageUrl -p url
    メディアが埋め込まれたWebページのURL。デフォルトでは値が送信されません。
    --swfUrl -s url
    メディアのSWFファイルのプレーヤーのURL。デフォルトでは値が送信されません。
    --flashVer -f version
    SWFプレーヤーを実行するために使用されるFlashプラグインのバージョン。デフォルトでは"WIN 10,0,32,18"。
    --auth -u string
    認証文字列が接続メッセージに追加される。このオプションは、論理値のTRUEが指定した文字列を追加して使用します。このオプションは、いくつかの特定のサーバーでの使用を推奨していません。より一般的な - conn オプションを代わりに使用する必要があります。
    --conn -C type:data
    接続メッセージに追加任意のAMFデータを記述する。タイプは次の通り。Bはブール変数、Nは数字、Sは文字列、Oはオブジェクト、Zはnullでなければならない。ブール変数のデータが0か1またはFALSEかTRUE、でなければならない。同様にデータはそれぞれ最初か最後は0か1でなければならない。サブオブジェクトのデータ項目は、'N'に値の前に名前を指定するなど接頭辞で指定された可能性があります。例えば NB:myFlag:1 このオプションは、任意のAMFのシーケンスを構築するために複数回使用されることがあります。例えば

    B:boolean(0|1), S:string(文字列), N:number, O:object-flag(0|1), Z:(null), NB:name:boolean, NS:name:string, NN:name:number

    -C B:0 or 1 -C S:文字列 -C N:数字 -C O:0 or 1 -C Z:null -C NB:NB:name:boolean -C NS:name:string -C NN:name:number

Session Parameters

    これらのオプションは接続要求が成功すると有効になります。
    --playpath -y path
    playpathのRTMP URLから解析するのにオーバーライドします。時にrtmpdumpのURLパーサーが自動的に正しいplaypathを判断できないことがあり、その場合は正確にこのオプションを使用して指定する必要があります。
    --playlist -Y
    playコマンドを送信する前にset_playlistコマンドを発行します。プレイリストは現在のplaypathが含まれます。
    --live -v
    指定メディアがライブストリームです。レジュームの無いライブストリームで可能です。
    --subscribe -d stream
    ライブストリームの名前を署名します。 デフォルトは playpath.
    --realtime -R
    一時停止・再生コマンド(これが何を差すかよくわからない)を使ってスピードアップをせずにリアルタイムのようにダウンロードします("the BUFX hack")。再生コマンドで後ろの時間に戻されるようなサーバーに便利です。レジュームやライブストリーミングにも使えます。
    --resume -e
    不完全なRTMPのダウンロードをレジュームします。
    --skip -k num
    最後のキーフレームからレジュームした所を探しだして指定数のキーフレームをスキップします。定期的にレジュームが失敗した場合これが役に立つかもしれません。デフォルトは0です。
    --start -A num
    指定秒後にストリームのdumpを開始します。ライブストリームではできません。このオプションで最初の無駄な映像をカットできます。 特定秒(詳細不明)以上を指定すると9割くらいで止まったり(放置すると100%かその一歩手前までdump可能)、一部dumpできない仕様があります。そして不完全なファイルではレジュームコマンド(-e)が機能しません。その場合 -R を指定すると完全に dump できるかもしれません。
    --stop -B num
    指定した秒後にストリームのdumpを停止します。ライブストリーミング以外で -A と併用すると終了時間は -B で指定できて、-A で指定した分だけ最初がカットされます。
    例:-A 30 -B 50 1分の動画の場合、開始30秒から50秒までの20秒がdumpされる
    --buffer -b num
    バッファ時間をミリ秒で指定します。デフォルトは36000000です。
    --timeout -m num
    指定秒後までにサーバーから全然データを受信しなければセッションがタイムアウトします。デフォルトは120です。

Security Parameters

    これらのオプションは、サーバーからの追加の認証要求を処理します。
    --token -T key
    サーバーがSecureToken認証を必要とする場合にkeyをSecureTokenに応答させて使用します。
    --jtv -j JSON
    JSON token は Justin.tv サーバーで使用。 NetStream.Authenticate.UsherToken を呼び出します。
    --swfhash -w hexstring
    解凍SWFファイルのSHA256チェックハッシュ。サーバーはSWFファイルの検証を使用する場合、このオプションは必要とされるかもしれません。以下の --swfVfy オプションを参照すると、ハッシュは32バイトであり、16進数で指定する必要があります。 --swfsize オプションは、常にこのオプションを使用する必要があります。
    --swfsize -x num
    解凍SWFファイルのサイズ。このオプションはサーバーがSWFファイルの検証を使用する場合に必要とされるかもしれません。以下の --swfVfy オプションを参照すると --swfhash オプションを常に使用する必要があります。
    --swfVfy -W url
    メディアのSWFファイルのプレーヤーのURL。このオプションは以下の3つのオプション --swfUrl, --swfhash--swfsize に置き換えられます。 SWFプレーヤーが指定されたURLと自動的に計算されるハッシュとサイズを受け取る場合にこのオプションが使用されます。またその情報はユーザーのホームディレクトリ内のswfinfoファイルにあるので、一度取得するとキャッシュされ毎回rtmpdumpが再計算をする必要はありません。swfinfoのファイルはURL、SWFファイルの変更のタイムスタンプを取得された時刻、そのサイズ、そのハッシュを記録しています。デフォルトではキャッシュされた情報は次に再確認する30日間使用されます。
    --swfAge -X days
    SWFファイルの情報のキャッシュを再チェックする指定日数を記述します。0を記述すると常にSWFファイルのURLを確認します。確認したときにその SWFファイルが前と同じタイムスタンプが表示される場合、再確認する必要はありません。

Miscellaneous

    --flv -o output
    出力ファイル名の指定。ファイル名が - の場合、または省略すると、ファイル名がstdoutになります。
    --hashes -#
    バイトカウンタの代わりに進捗状況を1%ごとに表示します。
    使用するには -o の手前に指定します。
    --quiet -q
    すべてのコマンドの出力を停止します。
    --verbose -V
    冗長コマンドの出力。
    --debug -z
    デバッグレベルの出力です。非常に冗長ですべてのパケットデータの16進数のダンプを含みます。
    --help -h
    コマンドオプションの概要を表示します。

EXIT STATUS


    0
    プログラム実行の成功。
    1
    回復不能なエラー。
    2
    不完全な転送。レジュームすると再取得できます。

ENVIRONMENT


    HOME
    $HOME の値は、swfinfoファイルの場所として使用されます。

FILES


    $HOME/.swfinfo
    SWF検証情報のキャッシュ

SEE ALSO


    rtmpgw(8)

AUTHORS



使い方


rtmpdump は windows だとコマンドプロンプトから起動するツールなので rtmpdump.exe をダブルクリックで実行しても何も起こらない。バッチを書くか、コンソールの中に記述して実行するかの2種類方法がある。その際にはディレクトリを移動しないと上のコマンドを記述しても実行できない。

コマンドを実行するには cmd.zip を保存し rtmpdump と同じフォルダ内に解凍して、cmd.bat を実行し、コマンドをコピペすればコマンドラインから rtmpdump を実行できる

よく間違えるミスに半角スペースのところに全角スペースを使うことがある。全角スペースを使うとエラーになるので間違えないように注意する。

基本的な使い方は -r と -o を指定してdump出来るか確認。次に -y を指定してみてそれでもダメなら swf の認証のコマンド -s を使う。-u (auth) は &aifp 手前まで指定する。-r でフルパスを入力してエラーがでる場合には -y を併用して dump する。rtmp のパスはxmlが用意してあればそれを参考に、なければパケットを監視してパラメータを確認する。dump するのが難しいのは接続ごとにパラメータが変わるタイプや、auth を使っているところ、swf の解析が必要なところ、ログインを要するところ。

rtmpdump -r "rtmp://hoge.com/piyo/mp4:huga/hoge.mp4" -o hoge.flv

でエラーがでる場合に

rtmpdump -r "rtmp://hoge.com/piyo/" -a "piyo/" -y "mp4:huga/hoge.mp4" -o hoge.flv

とするとうまくいくことがある

パケットを解析するには URLSnooperwireshark を使う。GetFLVを使っているならcg.datを調べる。Orbitならrtmp、app、swfのURLがわかる。MediaBox なら rtmp playPath がわかりそこからBlader を使って保存もできるので結構オススメ。StreamTransport はrtmpのURLがわかる。その他にサイトの.js等を調べてrtmpを探す。RTMPDumpHelper や現在では一番オススメの RTMPExploreX を使って rtmpsrv や rtmpsuck で解析してもらう。

その他の調べ方
How to find rtmp:// stream URL: Software to sniff, snoop RTMP links - Audio/video stream recording forums

rtmpのパスの中に/_definst_&contents/がある場合、& を / に変えて /_definst_/contents/ にしないとdump出来ない。

保存が途中で止まる場合にはレジュームを行う。レジュームの方法は同じコマンドを打ち込む方法と、コマンド末尾に --resume (-e) を追加する。このときにその前のオプションは""でくくっておく。レジュームせずに中途半端に止まる場合は少し様子を見て、再度同じコマンドが入力できる状態まで待つ。待ってもコマンドを入力できる状態に戻らなければレジュームできない。そして再度同じコマンドを入力して途中から開始できたら成功。最初からになる場合は回線に問題があるかもしれない。

コマンドが入力できる状態にならない場合 -R を指定すると出来る状態になるかもしれない。

使い方は rtmpexplorer の中身を rtmpdump と rtmpsrv, rtmpsuck のあるフォルダにコピーして rtmpexplorer を起動し、cmd.exe を rtmpsuck に変更し保存したいサイトを入力して保存出来ればそのまま開始される。

swf ファイルの SecureToken を調べるのに便利なツールに SWFScan がある。
SWFScan - FREE Flash decompiler - Audio/video stream recording forums

インストーラー版
HP Communities - SWFScan - FREE Flash decompiler - Enterprise Business Community
ポータブル版
https://github.com/svnpenn/rtmpdump 配布停止

Adobe からも同じようなものがリリース(実行にはAdobe Airが必要)されている。SecureToken を調べるのなら SWFScan のほうが使いやすい。SWF Investigator は開発者向け。
Adobe SWF Investigator | Flash security - Adobe Labs
SWF_Investigator.png

swf ファイルをデコンパイルできるオンラインサービス
Show My Code | Free Online swf Adobe flash decompiler, java class decoder, java class decompiler, php dezender, Zend decompiler, Zend decoder,Zend Guard, ActionScript recover, QR bar code decoder

swf ファイルをデコンパイルできるツール(要Java)
JPEXS Free Flash Decompiler - Opensource SWF Decompiler

関連記事
開発の状況がわかるメールリスト
http://lists.mplayerhq.hu/pipermail/rtmpdump
rtmp等のストリームをダウンロードする場合の英語の掲示板
http://stream-recorder.com/forum/
rtmpdump専用の掲示板
http://stream-recorder.com/forum/rtmpdump-f54.html
http://stream-recorder.com/forum/release-unofficial-rtmpdump-binaries-t11030.html
http://stream-recorder.com/forum/possible-modify-rtmpsrv-code-launch-vlc-t10220.html
Rtmpdump - Wikipedia, the free encyclopedia

バイナリ配布先


KSV氏の最新版ビルド:Customized rtmpdump binaries with patch file - Audio/video stream recording forums
android ビルド:Zeranoe FFmpeg ? View topic - Help with android build

公式の Git
git clone git://git.ffmpeg.org/rtmpdump
http://repo.or.cz/w/rtmpdump.git
Public Git Hosting - rtmpdump.git/log

ニコ生用の rtmpdump のソースコードはこちら
git clone git://github.com/taonico/rtmpdump-nico-live
taonico/rtmpdump-nico-live ・ GitHub

タイポを直す必要がある
https://github.com/taonico/rtmpdump-nico-live/blob/nicolive/rtmpdump.c#L858

-{"nlpalypath", 1, NULL, 'N'},
+{"nlplaypath", 1, NULL, 'N'},



別のニコ生対応の rtmpdump。タイポを直す必要が無い。
meronpan3419/rtmpdump_nicolive
git clone git://github.com/meronpan3419/rtmpdump_nicolive

【ニコ生】namareco namarokuについて語ろう Part24(c)2ch.net
http://potato.2ch.net/test/read.cgi/software/1446367249/188
KSV パッチを含んだニコ生用の rtmpdump が配布されている
rtmpdump[20160215_1949].zip

ニコ生のコマンドはこちらを参照
ニコ生の配信データを保存する rtmpdump のコマンド内容のまとめ

ニコ生用の rtmpdump で Mac と linux のバイナリはこちら
★Axfc Uploader -2786658.zip-
【ニコ生】namareco namarokuについて語ろう Part18
http://anago.2ch.net/test/read.cgi/software/1357463927/251-256

新しいニコ生用の rtmpdump
N を使わない新しいニコ生用の rtmpdump と ffmpeg(librtmp)

rtmp をプログラムから理解した人向けの記事


shogo4405/lf.swift: Camera and Microphone streaming library via RTMP, HLS for iOS, macOS. より

関連記事


サイトスクリプトblog : Crunchyroll の視聴
サイトスクリプトblog : RTMPDumpHelper v1.15

現行スレ
RTMPDump 2
http://engawa.2ch.net/test/read.cgi/pc2nanmin/1322979352/

2ちゃんねる抜粋


一昔前のスレッド、Radiko の仕様変更の時に参考になる。

【動画配信】rtmpdump総合スレ【radiko】
http://yutori7.2ch.net/test/read.cgi/pc2nanmin/1271066265/

189 名前:まちがって名前消しちゃいました。[] 投稿日:2010/10/01(金) 06:27:22 ID:Wdwjp2ws
Wiresharkで調べたら、って所で、
rtmp://brightcove.fcod.llnwd.net/a500/d12/&mp4:media/85688275001/85688275001_617221727001_CBR-TheSea-POST.mp4&1285884000000&303c6b2c3e79f922e744106f5a70e1bf
までは見つけられたのですが、
rtmpdump 2.2dで落とせません・・・。

http://thelivebuzz.com/video/corinne-bailey-rae-the-sea-livebuzz-session/

どなたか落とせるかたいらっしゃいます?
--rtmp "rtmp://brightcove.fcod.llnwd.net:1935/a500/d12/"
って入れても、playpathが足りないってエラーが出ちゃいます・・・。


190 名前:まちがって名前消しちゃいました。[sage] 投稿日:2010/10/01(金) 07:22:25 ID:???
>>189
rtmpsuck一発だったよ。
-y mp4:media.....(最後まで)
でいけると思う

191 名前:まちがって名前消しちゃいました。[sage] 投稿日:2010/10/01(金) 07:24:20 ID:???
ごめん、
rtmpsuckじゃ無くって、rtmpsrvの方

193 名前:まちがって名前消しちゃいました。[] 投稿日:2010/10/02(土) 01:11:57 ID:86tYO1WE
>>190

ありがとうございます。

rtmpsrv -y "mp4:media/85688275001/85688275001_617221727001_CBR-TheSe
a-POST.mp4&1285884000000&303c6b2c3e79f922e744106f5a70e1bf" --rtmp "rtmp://bright
cove.fcod.llnwd.net/a500/d12/&mp4:media/85688275001/85688275001_617221727001_CBR
-TheSea-POST.mp4&1285884000000&303c6b2c3e79f922e744106f5a70e1bf" --flv "D:\01 Th
e Sea.flv"
って、やってみましたが、
Streaming on rtmp://0.0.0.0:1935
って出たまま、止まってしまっています。

どうすればいいんでしょうか・・・???
他に必要なパラメータがあるんでしょうか。

194 名前:まちがって名前消しちゃいました。[] 投稿日:2010/10/02(土) 07:07:42 ID:Z1QEsuzJ

コマンドのオタクでなくflvのみゲットしたいなら
StreamTransport のフリーソフトで逝けるよ!

195 名前:まちがって名前消しちゃいました。[sage] 投稿日:2010/10/02(土) 07:13:43 ID:???
>>193
rtmpsrvってのは、動かしておいて通常にflvを見ると勝手にrtmpパケットを解析して
rtmpdump用のパラメター生成してくれる(+かってにrtmpdumpを起動)物なんだ。

使うには仕込みが必要でOSによって方法が違うのでREADMEを読んでね

196 名前:まちがって名前消しちゃいました。[] 投稿日:2010/10/02(土) 08:44:01 ID:86tYO1WE
>>195
そうか!と思ってREADME読みましたが、実際にどのようにすればいいか分からず・・・。
ググってみたんですが、hostsファイルをまずいじらないとダメらしいので
色々やってみたんですけど、全くダメでした。
結果、>>194のStreamTransportで難なくダウンロードできたんですが、
後学のため、rtmpsrvの使い方(&hostsファイルの書き換えとか)を、
教えていただけないでしょうか?
ググってもrtmpsrvの使い方のページって皆無なんですよね・・・。


Windows Vista + IE8でやってたんですけど、

201 名前:まちがって名前消しちゃいました。[sage] 投稿日:2010/10/03(日) 03:51:22 ID:???
>>196
ttp://stream-recorder.com/forum/tutorial-simply-use-rtmpsrv-and-example-t6325.html
を参考にして落とせたのでご報告。環境winXP+IE8

1.Wiresharkでhostを調べる→brightcove-05.fcod.llnwd.net
2.hostsファイルをバックアップ
3.hostsファイルに→127.0.0.1 brightcove-05.fcod.llnwd.net
4.rtmpsrv.exeと同じディレクトリにbatファイルを作成
 rtmpsrv.batの中身↓
 rtmpsrv > rtmpdump.bat
5.rtmpsrv.batを実行
6.ブラウザで動画再生
7.rtmpdump.batに解析内容が出力される
エラーで止まるがおそらくhostsいじってるせいなので気にしない
8.hostsファイルを元に戻す
9.rtmpdump.bat実行→ウマー
今回の場合 -C S:mp4:media/... の部分でエラーになるので
-C S:"mp4:media/..." のようにbatファイルを修正


【DL】動画の保存方法総合スレ【保存】part7
http://hibari.2ch.net/test/read.cgi/streaming/1292375910/

213 名前:名無しさん@お腹いっぱい。[] 投稿日:2011/02/01(火) 02:08:39 ID:k800WMN+0
>>212
rtmpsrvというのが、よく分からなかったのですが
つまり、これはどういったものなのでしょうか?

ラジコを録画するときによく使用され、
海外サーバーにアクセスして録画するみたいな事が書いてあったのですが

ttp://rtmpdump.mplayerhq.hu/
ここで一応、ダウンロードができるようで、これをダウンロードして
コマンドを設定すれば動画が落せるって事であっていますか?

しかし、動画を再生してrtmpsrvを起動するとディレクトリに
動画ファイルが作成されて~という説明も見つけたのですが
解説ページが少ないので、意味不明状態です

215 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2011/02/01(火) 02:55:22 ID:nED80VH70
>>213
rtmpsrv は一言で言って一種のプロクシ。
クライアント (ストリーミング動画を再生するプレイヤ) とサーバの間に挟んで通信内容を解析する。
接続先が解析できたら rtmpdump が呼出されてダウンロードが開始される。

rtmpsuck もプロクシだが、 rtmpsrv が解析だけしてダウンロードは rtmpdump に丸投げなのに対して
rtmpsuck は通信している動画情報をそのまま保存する。
実際にやりとりしている情報を保存するのでこれ以上確実な方法は無いと思う。

DNSリゾルバがクライアントの接続先を rtmpsuck に向けるように設定したりする必要がある。
ググるとPCを二台 (仮想PCでもいい) 用意する方法が紹介されている場合が多いけど、
仮想PCの設定から始めるのはいかにも面倒な方法ではあるわなぁ…。


335 名前:まちがって名前消しちゃいましたいました。[sage] 投稿日:201185 ID:???
rtmpsuckを使いradikoを録音する基本的な方法をまとめてみた。
インストール方法は省略する。ーrtmpdumpのほうのインストール方法をググればすぐ分かるはず、通常はrtmpdumpと一緒にインストールされている

581 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2011/04/20(水) 18:50:16.67 ID:Kig6ZGl30
>>580
後学の為に、簡素だけど工程

ローカルなWINの場合、まずhosts書換
127.0.0.1 bwstream.uliza.jpを追加
suck or srv起動
動画再生→各パラメータ取得
hostsを元に戻す
不要なAMFデータ削除
dump実行→ウマー

【ネットラジオ】 radiko 関連ソフト総合 Part5
http://hibari.2ch.net/test/read.cgi/software/1299389698/

37 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2011/03/13(日) 20:27:46.73 ID:lAip+WeQ0
windowsでrtmpdump+mplayerで聞けなくなった。エリア制限解除の方が嬉しいし良いけど

"C:\(略)\rtmpdump" -q -vr "rtmpe://radiko.smartstream.ne.jp" --playpath "simul-stream" --app "TBS/_defInst_" -f "TEST" |"C:\(略)\mplayer\mplayer" -cache 64 -

39 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2011/03/13(日) 20:44:37.83 ID:7SruaUI00
>>37
フラッシュプレイヤーと鯖とのコネクションに認証トークン仕込まれたからストリーム録音は死亡っす

109 名前:名無しさん@お腹いっぱい。[] 投稿日:2011/03/16(水) 00:19:04.22 ID:c7G0pdvq0
wget --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 https://radiko.jp/v2/api/auth1_fms

111 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2011/03/16(水) 02:33:46.69 ID:ImYtNVbe0
>>109
X-Radiko-AppType=pc
X-Radiko-AuthToken=JguAW8d12LwS4ctHNjL9qQ
X-Radiko-AuthWait=0
X-Radiko-KeyLength=16
X-Radiko-KeyOffset=142096

おお、すごい!
少し光が見えてきた

116 名前:名無しさん@お腹いっぱい。[] 投稿日:2011/03/16(水) 23:01:38.62 ID:c7G0pdvq0
>>111

RadikoPlayer_keyImage.dat

129 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2011/03/18(金) 03:29:39.01 ID:s7GBlN4F0
参考までにradikoのストリームセッション確立までのダンプ
ttp://pastebin.com/trJSweB7

132 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2011/03/18(金) 10:00:58.62 ID:Mr9xQs/20
>>131
>>116のファイルをplayer.swfから引っこ抜いて、
そのファイルの先頭authoffsetからauthlengthバイトを
base64でエンコードしてpartialkeyで渡せばおk。

その後は知らん。

133 名前:名無しさん@お腹いっぱい。[] 投稿日:2011/03/18(金) 10:01:59.90 ID:8h3+6Abv0
>>131
conn.setRequestProperty("X-Radiko-PartialKey", key);

【動画配信】rtmpdump総合スレ【radiko】
http://yuzuru.2ch.net/test/read.cgi/pc2nanmin/1271066265/

328 名前:まちがって名前消しちゃいました。[sage] 投稿日:2011/03/16(水) 02:28:24.56 ID:???
【ネットラジオ】 radiko 関連ソフト総合 Part5
http://hibari.2ch.net/test/read.cgi/software/1299389698/109

109 名前:名無しさん@お腹いっぱい。[] 投稿日:2011/03/16(水) 00:19:04.22 ID:c7G0pdvq0
wget --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 https://radiko.jp/v2/api/auth1_fms

これでトークンキー取れるみたいなんだけど、rtmpdumpのオプションでこのキーの渡し方が分かる人いますか?

335 名前:まちがって名前消しちゃいました。[sage] 投稿日:2011/03/17(木) 22:42:35.85 ID:???
◆rtmpsuckとはー
 フラッシュのストリーミングを動的にキャプチャするための透過プロキシ。
 したがってフラシュのクライアント(通常であればWEBブラウザ)からのパケットをローカル(もしくは他ホスト)のrtmpsuckに転送する必要がある。
 なおかつrtmpsuckを経由したパケットが本来の宛先であるストリーミングサーバに送出できなければならない。
 
◆ローカル環境でrtmpsuckを作動させるための条件
①linux
②firefoxで正常にradikoを聴取できること
③rtmpsuckとfirefoxを実行する別々のユーザーを用意すること(iptablesでユーザープロセスに対するマッチングフィルタを行い、透過的にパケット通過させるため)
④IPパケットの転送を有効にすること[echo 1 > /proc/sys/net/ipv4/ip_forward]

◆ローカル環境でrtmpsuckを使いradikoのストリーミングをキャプチャする手順
①iptablesで以下のフィルタリングルールを追加する。"xxxxx"の部分はfirefoxを実行するユーザー名に置き換えること
iptables -t nat -A OUTPUT -d 219.103.34.224 -p tcp --dport 1935 -m owner --uid-owner xxxxx -j REDIRECT
②①の"xxxxx"とは別のユーザーでrtmpsuckを起動する。
③ユーザー"xxxxx"でfirefoxを起動してradikoを聴取する

以上でrtmpsuckが正常に動作した場合には実行環境下にストリーミングファイルが保存されるだろう。

339 名前:まちがって名前消しちゃいました。[] 投稿日:2011/03/18(金) 22:20:14.96 ID:HXJTO+60
>>337
まじ、すげえ。鍵の取得は328では?トークンとは別?

340 名前:まちがって名前消しちゃいました。[sage] 投稿日:2011/03/18(金) 22:21:16.14 ID:???
>>337
すごい!
どんなオプション記述ですか?

341 名前:まちがって名前消しちゃいました。[sage] 投稿日:2011/03/18(金) 23:09:01.30 ID:???
>>335の
>iptables -t nat -A OUTPUT -d 219.103.34.224 -p tcp --dport 1935 -m owner --uid-owner xxxxx -j REDIRECT
の"-d 219.103.34.224"を抜くと他のフラッシュ動画もブラウザで再生するだけで勝手に落ちてくるw

342 名前:まちがって名前消しちゃいました。[sage] 投稿日:2011/03/18(金) 23:19:51.82 ID:???
>>339 328は鍵で、これを認証させないといけない
必要なデータがswfに格納されてるらしいけど、それを取り出すための知識は持ってないので
>>340 今手元に資料ないんだけど、成功時のdebugデータを元にrtmp.cのSendなんちゃらを書き換えと
RTMP_Initかなんかでm_fEncodingかなんかに適当に値をつけてやる。ちなみに鍵は-uで指定

343 名前:まちがって名前消しちゃいました。[sage] 投稿日:2011/03/19(土) 00:08:01.42 ID:???
http://gist.github.com/875864

macでしか動作確認してないけど

344 名前:まちがって名前消しちゃいました。[sage] 投稿日:2011/03/19(土) 00:11:48.38 ID:???
>>343
GJ!Genius!!

345 名前:まちがって名前消しちゃいました。[sage] 投稿日:2011/03/19(土) 00:34:17.78 ID:???
スクリプトの実行は 局名を引数で指定するだけですよね?
"yum instatll swftools"でswfextractをインスコしたんだけど

Unknown option: -b
failed get keydata

で処理が止まってしまいます。
centos5.5-x86_64です。


346 名前:まちがって名前消しちゃいました。[sage] 投稿日:2011/03/19(土) 00:51:23.06 ID:???
>343
authkey.pngてのは必要な資材でしょうか?

347 名前:まちがって名前消しちゃいました。[sage] 投稿日:2011/03/19(土) 00:56:54.65 ID:???
>>343
GJ!
FreeBSD OKでした
>>345
sh -x rec_radiko.sh
て動作させてみれば足りない物解るとおもうよ。

348 名前:まちがって名前消しちゃいました。[] 投稿日:2011/03/19(土) 01:03:35.51 ID:vBzBbB9k
>>343
すばらしい。

ARM CPU上の debian linux という特殊な環境ですが、
ちゃんと動きました。

349 名前:まちがって名前消しちゃいました。[sage] 投稿日:2011/03/19(土) 01:20:42.19 ID:???
>>345
多分swftoolsが古いので、ソースからインストールしてみると良いかも。

350 名前:まちがって名前消しちゃいました。[sage] 投稿日:2011/03/19(土) 01:23:19.63 ID:???
>>349
thx!!

351 名前:まちがって名前消しちゃいました。[sage] 投稿日:2011/03/19(土) 01:43:50.37 ID:???
>>343
>>349
私もswftoolsをソースからインストールして出来ました!すばらしい!


352 名前:まちがって名前消しちゃいました。[sage] 投稿日:2011/03/19(土) 02:29:26.79 ID:???
これは近年稀に見る2chでのハック

353 名前:まちがって名前消しちゃいました。[sage] 投稿日:2011/03/19(土) 06:42:42.96 ID:???
何をどうすんのかサッパリわかんねwwwみんな賢いんだな

354 名前:まちがって名前消しちゃいました。[sage] 投稿日:2011/03/19(土) 08:39:01.65 ID:???
>>343
すばらし。
CentOS 5.3 のx86_64で動きました。
swftoolsはダメだったんでソースから。
関連記事

コメント

非公開コメント

プロフィール

ロベルト

お問い合わせはこちらまで
robelt2525[at]gmail.com

中の人 @nico_lab

広告リンク
Amazon
楽天市場

ブログ更新用 @blo_nico_lab

詳しいプロフィールはこちら

当ブログは、Amazonアソシエイトに参加しています。