エンジニアリングにはほど遠い

iPhoneアプリとかサイトとかをつくっていくブログです。

Macで、rtmpによってニコ生タイムシフトをflvで保存する

追記:ニコ生のシステム更新で落とせなくなるかもしれません。また、落とした動画はVLCPlayer, ひまたんぷれいやではみれず、ReaPlayerでは見れました。コーデック的なものみたいです。

保存できるようになったのでそれを書いてみます。

Macportsを使ってrtmpdumpをダウンロードしてコンパイルする(?←解釈間違ってる気がします)

ターミナルで以下のコマンドを打ち込みます

sudo /opt/local/bin/port install rtmpdump

(Macportsが必要?Macportsは以前入れたかな?と言う感じで実はよく分かっていないです。これで動かなかった人はMacportsを入れてみて下さい)

rtmpdumpを使う

次のオプションで使います。

rtmpdump
-r "URL"
-C S: "TICKET"
-f "MAC 10,0,32,18"
-s "http://live.nicovideo.jp/liveplayer.swf?20100531"
-o output.flv

で、このURLとTICKETというやつはgetplayerstatus APIで取得できる値で、これはhttp://watch.live.nicovideo.jp/api/getplayerstatus?v=lv********でも見れます。

URL:["getplayerstatus/stream/quesheet"]の中のrtmp://で始まる部分の",/content"を"/mp4:content"に置き換えたもの(これが2個以上ある場合は動画が切れています。1個ずつ落とす事はできました。)
TICKET:["getplayerstatus/rtmp/ticket"]

-f はフラッシュのバージョンらしいです。rtmpdump -hで見れます。
-sはswfプレーヤーのバージョンでニコ生配信ページソースに記載されているそうです。
-oは出力先ファイル

これで、タイムシフトの動画が保存できました。

次は放送のlv=******を入れただけで動画が落とせる機構(スクリプト?)をObjective-Cで作ろうと思います。
オプションを手でごちゃごちゃ入力するのが大変なので。


(rtmpdumpのオプションはニコ生リスナーさんがWin用のkakorokuRecorderがrtmptump.exeに飛ばしている引数を調査して発見しました。本当にありがとうございます。ていうか僕はなんもやってません。

.exeファイルをつくって、rtmpdump.exeとすり替えて、kakorokuRecorderから飛んできたものを見たそうです。スゴいですね。そういう風に調べていくんですね。
スニッファというソフトもあるみたいです)