ブラウザで動画再生開始した際に流れたリクエストヘッダ
おそらく下に挙げたパケットがフラッシュビデオファイルをダウンロードする際のリクエストヘッダだろう。これと同じヘッダをcurlやwgetで発行できればflvファイルがダウンロードできるはずだ。
GET /unit1/flash8/cd/cd94412311d23d23d447497cdc5f5761.flv HTTP/1.1 Accept: */* Referer: http://www.yourfilehost.com/flash/flvplayer7.swf?autoStart=0&no_skin_menu=1&video=http%3A%2F%2Fwww.yourfilehost.com%2Fvideo-embed.php%3Fvidl x-flash-version: 9,0,28,0 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322) Host: cdn.yourfilehost.com Connection: Keep-Alive Cookie: media_views=2; yfh_cids=%7C1227611186%3A3adc5c53ef9234cdc53dc01d0b5d7a1b%7C%7C1227611609%3Acd94412311d23d23d447497cdc5f5761%7C; yfh_views=2; yfh_ac=active; yfh_af=off; __utma=83567518.757577051.1227611203.1227611203.1227611203.1; __utmb=83567518; __utmc=83567518; __utmz=83567518.1227611203.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); cdnlock=ip%3D219.126.168.136%7Eexpires%3D1227611913%7Eaccess%3D%2Funit1%2F%2A%7Emd5%3Dd152af2c2fff38e8ba0e9b174ac7ec46; from=noref; lfrom=noref; idcheck=1227611204; count_visits=1
cookieがないと403 Forbiddenが返されてダウンロードできない。また、目的のflvのURL側からないとダウンロードできない。このCookieとURLを取得するのにもう一手間必要。
cookieとURL取得のためのリクエストヘッダ
GET /video-embed.php?vidlink=&cid=3adc5c53ef9234cdc53dc01d0b5d7a1b&adult=1&cat=video&file=rankouplay_part01.wmv&family=off&key=219.126.168&cdn=1&f=flash8&? HTTP/1.1 Accept: */* Referer: http://www.yourfilehost.com/flash/flvplayer7.swf?autoStart=0&no_skin_menu=1&video=http%3A%2F%2Fwww.yourfilehost.com%2Fvideo-embed.php%3Fvidl x-flash-version: 9,0,28,0 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322) Host: www.yourfilehost.com Connection: Keep-Alive Cookie: media_views=1; yfh_cids=%7C1227611186%3A3adc5c53ef9234cdc53dc01d0b5d7a1b%7C; yfh_views=1; yfh_ac=active; yfh_af=off; __utma=83567518.757577051.1227611203.1227611203.1227611203.1; __utmb=83567518; __utmc=83567518; __utmz=83567518.1227611203.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)
URLは/media.php?cat=video&file=rankouplay_part02.wmvで送られてきた内容にかかれている。これで送られてきた内容を解析してダウンロードするflvのURLを決める。
ブラウザアドレス入力欄に書いたアドレスの取得時に流れたリクエストヘッダ
GET /media.php?cat=video&file=rankouplay_part02.wmv HTTP/1.1 Accept: */* Accept-Language: ja Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322) Host: www.yourfilehost.com Connection: Keep-Alive Cookie: __utma=83567518.757577051.1227611203.1227611203.1227611203.1; __utmz=83567518.1227611203.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)
なぜかcookieがセットされている。あらかじめ消しておいたはずだが。
未ダウンロード部分へのシーク
未ダウンロード部分へのシークができればその際に流れたパケットをみて分割ダウンロード部分を書こうと思ったのだが、yourfilehostの場合シークできるのはダウンロード済みの部分だけ。と言うことで分割ダウンロードはyourfilehost側からすればあまりうれしくないことなのかもしれない。