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になります。
※通信用語については、ネットワーク技術で詳述しています。