ustreamには録画機能がありますよね。
先日開催されたモバイル勉強会でも録画したものが公開されていたりします。
この録画されたもの(flv形式のファイル)をダウンロードすることができれば、それをmp4に変換してiPodで見られちゃうぜ!と思い、ちょっとハックしてみたところ、かなりめんどくさいですが方法がみつかりました。
でも、今のところアナログな方法しかなくシステマチックする方法はみつかっていません。
具体的な方法は以下。
※この方法をやるためには前提条件としてFirebugがインストールされたFirefoxが必要となります
- まずダウンロードしたい対象のチャンネルのURLを開く
普通に http://ustream.tv/channel/example/ を開くだけです。
- 次にダウンロードしたい録画された動画をクリックする
先程開いたページの Past Clips からダウンロードしたい動画をクリックします。
- その状態でFirebugを開いて、HTMLタブをみます。
そのHTMLの中から「serverid=数字」という記述がみつかると思います。
この数字の部分を覚えておいてください。
- 次に、今開いてるページの動画が流れているところの下にある「Open in larger window」というリンクをクリックする
クリックすると別タブ(ウィンドウ)が開いて、そこに動画の部分だけが大きく表示されると思います。
- この状態でふたたびFirebugを開いて、Netのタブを見ます
Netタブには、そのページを開いた際にダウンロードされたリソースがリストされていると思います。その中から「http://playback1.ustream.tv/thumbnails/orig/broadcast/数字/数字.jpg」という画像をダウンロードしているのがみつかると思います。
ここの「数字/数字」を覚えておいてください。
- ここまできたら、おもむろにFirefoxの別のタブ(ウィンドウでもいいけど)のロケーションに http://flash{serverid}.ustream.tv:18881/broadcast/{数字/数字}.flv を打ってリターン
実際には http://flash1.ustream.tv:18881/broadcast/11111/1111111111111.flv みたいなかんじのURLになると思います。
これで flv をダウンロードすることができます。
今のところ「serverid」と「数字/数字」を取得する方法が、このFirebugを使う方法しかなくて、他の方法がみつかっていません。一応動画を再生するswfを解析してはみたのですが、その中にはなさそうです。
これは想像ですが、swf内でhttp://gw.ustream.tv/gateway.phpをPOSTしているのはわかっているので、そこで取得しているのか、もしくはJavaScriptでAjaxをつかってどこかから取得しているのか、といったところだと思いますが、いずれにしてももう少し解析が必要です。