形兆です。こんばんわ。
YouTube 関連のサイトを運営されている方から、YouTube の仕様変更で flv の直接ダウンロードができなくなったと相談を受けました。
こちらで調べた結果、一応問題は解決できたみたいなので簡単に報告しときます。
現状については tv-game.jp さんの YouTube 仕様変更 (2009年4月4日からか?) が簡潔に説明されているのでまずはご一読を。要は YouTube から flv ブッコ抜きをブロックされるようになったということみたいです。
私の方で確認した限りでは、FireFox で一度表示したビデオクリップを Opera で表示したりとかはできましたので、IP でブロックしているんじゃないかと思います。
で、解決方法ですが、long tail video の Youtube blocked http://youtube.com/get_video
Google Translate に PHP のコード付きで色々と書かれてます。
こちらのサイトはフォーラムのようですので、やり方だけ簡単にまとめますと…
- http://www.youtube.com/get_video_info?&video_id=[VIDEO_ID] にリクエストを投げます。application/x-www-form-urlencoded 形式でデータが返ってきますので、token= 部分のビデオトークンを取り出します。
- http://youtube.com/get_video?video_id=[VIDEO_ID]&t=[VIDEO_TOKEN] にリクエストを投げ、HTTP ヘッダを取得します。long tail video では get_headers PHP 関数を使ってリクエストしてますが、この URL から返ってくるレスポンスはボディが空なので GET で問題ない(HEAD でリクエストする必要はない)みたいです。
- 成功時(ビデオクリップが存在するとき=成功です)は 303 See Other で HTTP レスポンスが返ってきますので、返ってきた HTTP ヘッダから Location を探します。
この Location にダウンロード可能な flv や mp4 の URL が入ってます。
tv-game.jp の方が言われてる、googlevideo のやたら長い URL はこの値だと思います。
(将来的にずっと 303 が返ってくるかは分かりませんので、普通に HTTP エラーなら失敗と判断するコードを書いとく方がいいと思いますが、今回はその辺はパスです。) - 上記の URL にユーザがブラウザからアクセスするとダウンロードが始まります。
という感じです。
fmt= うんぬんとか get_video のパラメータについては他のサイトで調べてください。
ブッコ抜きに関する個人的見解
なんかややこしい人が湧いてきたら嫌なので一応書いときますと、YouTube のブッコ抜き自体はあんまり褒められたものじゃないというか、法律的にもグレーだというのが個人的見解です。
国内法的には不正アクセス禁止法とかその辺だと思いますが、ちゃんと調べた上での話ではありませんのでご容赦を。
それと、リソースだけ乗っ取られるのはサーバ運営してる側からするとたまったもんじゃないだろうな、とは同情してます。運営に結構な金がかかってる訳ですし。
なんで、この手のことを記事にするのもどうかとは思ったのですが、tv-game.jp さんの記事の中で3割のサイトは今でもブッコ抜けてて7割が NG っていう状況を報告されているのが気になったので書いちゃいました。
気になったというのも、私の拙い Flash に関する知識から考えても、YouTube が本気でブッコ抜きをできなくしようと思ったらできるはず…少なくともこんな簡単にできないようにはできるはず…なのに何故しないのかと。
やるならちゃんとしろよ、という感じでしょうか…
私自身はブッコ抜きできなくなっても一向に困りませんしw
あと、中途半端にできる人とできない人がいる状況もどうかと。
この辺はいずれ解消されると思いますし、どうせすぐ一般的な情報になるでしょうからとっとと書いちゃえとw
形兆
P.S. 最初に話に出た知人が運営してるサイトはこちらです。よろしければどうぞ。
なんかブログに貼れるようになったみたいです。何が貼れるかは…向こうで見てくださいw








youtubeの仕様変更
のびさんがyoutubeの仕様が変わって大変だったみたいね ギークなさくらちゃんの手助け(というよりほぼ全部ねw)で何とかなったみたい のびさんもさくらちゃんにきちんとお礼を言っ…
初めまして。
コメントしていただいて、ありがとうございました。
私のブログでこの記事を紹介しようか悩んでいるのですが、
コメントから飛んでこれるので、ご要望がない限りはご紹介させていただくのは控えようかと思います。
ですが、ヒントをいただけたので、大変感謝いたしております。
これから作業を行おうかと思います。
できましたら、またコメントさせていただきます。
どうも。
tv-game.jpです。
ご教授いただいた方法で取得することができました!
ありがとうございました!
tg-game.jp 様
コメントありがとうございます。
トラックバックしておりますので私の方から紹介して頂きたいという要望はございません。
そちらも復旧されたようで何よりです。
今後ともよろしくお願いいたします。
この方法でやったら出来ました!情報ありがとうございます
匿名様!
コメントありがとうございます!
またお越しになってくださいね、お待ちしております!!