如何下载Youtube 的各种格式视频

网上流传了很多下载youtube的方法或者工具. 其实原理很简单, 只需要通过这样一个URL:

http://www.youtube.com/get_video?fmt=%(fmt)s&video_id=%(video_id)s&t=%(t)s

就可以下载到想要的格式和清晰度.

里面有三个参数, fmt, video_id, t.

对于fmt, 我会在最后列出一个表, 现在youtube所支持的fmt参数.

video_id就是对应于观看youtube video时候的url里的v=xxxxxxxx, 例如  http://www.youtube.com/watch?v=Cb7sPebuKLY&NR=1  video_id就是Cb7sPebuKLY.

t是一个类似cookie的东西, 在page source里可以找到. 在源码里搜索 ‘"t": ‘ 注意包含引号和冒号. 在这个video里的t就是

"vjVQa1PpcFPAdzenFnWSQ2nCQ0NxZ00JfWyv2qTMdTQ%3D".

有了这样几个参数后, 就可以下载想要的video了. 下面是fmt的表

fmt 说明
5 低品质 flv
13 低品质 3gpp
17 低品质 3gpp 略高于13
18 低品质 mp4 320×240??
22 高清品质 mp4 1280 x 720 (画面比例 16:9)
34 高品质 flv 
35 高清品质 864 x 480 ( 9:5 )
36 高品质 3gpp

到此为止, 随便写个程序实现下载已经很容易了, 若是徒手略微麻烦了点.

这里有一个javascript, 或者叫bookmarklet, 把它拖到bookmark栏里, 在看youtube的时候, 点它就可以下载. 比较方便. 但由于并不是所有的video都有高清的, 所以不能用一个javascript搞定所有的格式, 需要的时候自己修改修改里面的fmt吧.

Download Youtube Video

同时我写了个python程序下载, 点我下载

使用方法是 youtubeDownloader [localfile] [video_id|URL] [fmt]

下载的部分用了wget, windows版本的wget这里下载

另外有一个网站http://www.file2hd.com/ , 你只要把要下载的youtube url给他, 他能帮你整理出可以下载的video. 如果少量video下载也是很不错的选择.

 

有个疑问: 有些video算是HQ的, 但又没有到fmt=35的品质, 当然更到不了22这种, 对于这种video, 应该用fmt等于几来下载呢?  我尝试了各种fmt都是不行.  一个例子是http://www.youtube.com/watch?v=-E_8YzO6oL0, 谁有兴趣,帮忙尝试一下吧.

Comments(0)