Flash8からあるFLVPlaybackコンポーネント、先日使ってみてJavaScriptと連動させたりしてたけど、ちょっと駄目な所があったのでMediaPlaybackを使う事にした。

Flash8のドキュメントによると、MediaPlayback古いので推奨しないらしいけどまあ動いてるし大丈夫だと思う。

MediaPlayback

YouTubeのFLVを外にひっぱりだそうとしてるんだけど

So-net blog:牛猫亭羊。お散歩する霊柩車の別館にして赤の他人丼。:YouTubeのサイトに仕様変更、今までの直リンクは無効により

1. オモテページのURLで表示

 http://www.youtube.com/watch?v=zzzz

2. ソッコーで関連メディアのURLを調べる(tパラメタ取得)

 http://www.youtube.com/player.swf?video_id=zzzz&t=Hoge

3. FLVファイルのURLをつくってアクセス

 http://www.youtube.com/get_video?video_id=zzzz&t=Hoge

という情報を得て、HTML解析してflvファイル取れた…かに見えたけどまだだった。

http://www.youtube.com/get_video?video_id=zzzz&t=Hoge

にアクセスすると、HTTPコード303で.flvファイルのURLにリダイレクトされるのだが、リダイレクト先が2種類ある。



■1.flvにリダイレクト

たとえば

http://www.youtube.com/watch?v=luVcCs0UMB0

とかは、t=Hogeの形式のURLからさらに

http://youtube-662.vo.llnwd.net/d1/05/F0/luVcCs0UMB0.flv

にredirectされるけど、

■2.get_videoにもう一度リダイレクト

http://www.youtube.com/watch?v=BsGbMntwzY8

これはt=HogeのURLから

http://sjl-v56.sjl.youtube.com/get_video?video_id=BsGbMntwzY8

こっちにリダイレクトされる。

拡張子は.flvではないが、HTTPコードは200(普通のコンテンツ)で、

Content-Type: video/flv になっててflvファイルだとわかる。

■FLVPlaybackの仕様?

でも、FLVPlaybackは.flvでないと読み込んでくれない。

MediaPlaybackなら読み込めた。両方とも同じように、playheadTimeやcontentPathなどのプロパティがあったので置き換えはすんなりいけた。

ああ本当に良かった。