YouTubeの動画ファイルのURLを、Microsoft Network Monitorを使用して取得する方法について解説します。
Microsoft Network Monitorを起動します。
[New Capture]をクリックして、新規にキャプチャする準備をします。
[Start]をクリックして、キャプチャを開始します。このとき無関係な情報がキャプチャされないように、通信機能を持つソフトウェアを停止させておきます。
YouTubeのページを開いて、動画の再生を開始します。
再生が開始されたならば[Stop]をクリックして、キャプチャを停止します。
Frame Detailsから通信内容を解析します。
[www.youtube.com/watch]へのリクエストで、動画ページを要求しています。
- Http: Request, GET /watch Command: GET - URI: /watch?v=vWF4x01MkzE&eurl=http%3A%2F%2Fvideo%2Egoogle%2Eco%2Ejp%2F Location: /watch v: vWF4x01MkzE eurl: http%3A%2F%2Fvideo%2Egoogle%2Eco%2Ejp%2F feature: player_embedded ProtocolVersion: HTTP/1.1 Accept: image/gif, application/x-shockwave-flash, Accept-Language: en-US,ja;q=0.5 UA-CPU: x86 Accept-Encoding: gzip, deflate UserAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727 ) Host: www.youtube.com Connection: Keep-Alive Cookie: PREF=gl=JP&hl=en HeaderEnd: CRLF
- Http: Response, HTTP/1.1, Status Code = 200, URL: /watch ProtocolVersion: HTTP/1.1 StatusCode: 200, Ok Reason: OK Date: Thu, 30 Apr 2009 14:53:53 GMT Server: Apache X-Content-Type-Options: nosniff Content-Encoding: gzip Expires: Tue, 27 Apr 1971 19:44:06 EST X-YouTube-MID: WkFSZzctYUFHdmlYWld3ZTVFeF9lU1dJSnBxcTdTTjEwU0RRa2lLZFd2bzJ2a0NIcDlwLXdn Cache-Control: no-cache ContentLength: 19189 Keep-Alive: timeout=300 Connection: Keep-Alive ContentType: text/html; charset=utf-8 HeaderEnd: CRLF - payload: HttpContentType = text/html; charset=utf-8 HtmlElement: ヒ
[www.youtube.com/get_video]へのリクエストでは、動画の情報を要求しています。
- Http: Request, GET /get_video Command: GET - URI: /get_video?video_id=vWF4x01MkzE&t=vjVQa1PpcFOvriImNzSrd2YsSmt8_hmg8ynGfJsxToM= Location: /get_video video_id: vWF4x01MkzE t: vjVQa1PpcFOvriImNzSrd2YsSmt8_hmg8ynGfJsxToM= el: detailpage ps: fmt: 34 ProtocolVersion: HTTP/1.1 Accept: */* Accept-Language: ja-JP Referer: http://s.ytimg.com/yt/swf/watch-vfl94162.swf x-flash-version: 9,0,124,0 UA-CPU: x86 Accept-Encoding: gzip, deflate UserAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727 ) Host: www.youtube.com Connection: Keep-Alive HeaderEnd: CRLF
- Http: Response, HTTP/1.1, Status Code = 303, URL: /get_video ProtocolVersion: HTTP/1.1 StatusCode: 303, See other Reason: See Other Date: Thu, 30 Apr 2009 14:53:55 GMT Server: Apache X-Content-Type-Options: nosniff Expires: Tue, 27 Apr 1971 19:44:06 EST X-YouTube-MID: WkFSZzctYUFHdmlVUXBDYVAweUZFdHZvZEU1MEVHa3Nrc2lpNW9QVkFtSkVoTkc1d29FZ0NB Cache-Control: no-cache Location: http://v23.lscache7.googlevideo.com/videoplayback?sparams=id Keep-Alive: timeout=300 Connection: Keep-Alive TransferEncoding: chunked ContentType: text/html; charset=utf-8 HeaderEnd: CRLF
ResponseがStatus 303 (See Other) で返されています。よって、参照先のLocationヘッダが動画ファイルのURLになります。
※通信用語については、ネットワーク技術で詳述しています。