放送中のUstreamを録画する
GUI環境用には既にある
専用、汎用含めてGUI環境では既にそのようなツールは存在する。
コマンドラインからやりたかった
ネットワーク的にいいところ(例:さくらのVPS)からURLを与えるだけで録画できるツールが欲しかったけれど、録画に必要なサーバーの情報を得るにはFlashとUstreamのサーバーの通信を解析する必要があり面倒だった。が、いろいろ解析していた所、Flashなしでも情報をぶっこ抜ける事がが判明。→できました。
どちらのスクリプトもrtmpdumpを使うので事前にインストールしておく必要があります。
メモ
Flashのプレイヤーが読み込む設定ファイルを直接DLしにいく
- あたま
- ch番号(サブストリーム関係?)
- 1
- 配信のUID
- 1041782
- 拡張子
- .amf
- 引数はつけなくても大丈夫だった
- ?pageUrl=http%3A%2F%2Fwww%2Eustream%2Etv%2Fchannel%2Ftowerbridge&locale=ja%5FJP&encoded=1
UIDは録画したいチャンネルのページのhtml内にたくさん書いてある。
URLを求めたamfファイルから本命のrtmpサーバーのアドレスを取り出す
rtmp://flash56.ustream.tv/ustreamVideo/1041782
URLがわかったらrtmpdumpに突っ込んでダウンロード
rtmpdump -q -v -r “rtmp://flash56.ustream.tv:1935/ustreamVideo/1041782” -a “ustreamVideo/1041782” -f “LNX 10,0,45,2” -y “streams/live” -o rec.flv
- channel名の代わりにUIDを使ってアクセスすることもできる
- 全画面Flash表示
- chennel名に#や/などを使うと、URLが変な文字列になる