变了。不过改一点就行了。
以前的方法是:
用Chrome打开YouTube视频网页,
打开Developer Tools,到Network页
刷新当前Youtube网页
在DeveloperTools的Network页里,按照尺寸排序,找到一个尺寸最大的请求,往往就是那个了。对比看看类型,有时会是mp4或者flv
把那个请求的URL拿到新的页里打开,就会开始在这个页里播放视频了,如果是flv甚至就直接下载成文件了。如果是mp4,那么就从文件菜单里执行保存为...文件
其实这是对于所有的Flash类视频网页都有效的方法。手快的话5秒钟搞定。
现在的问题是,据不完全调查,Youtube的HTML5 video player是分段下载视频的,而且音频是分开的!,也是分段。
实验了一下,发现稍微改进一下第4步就行了:
也是找尺寸比较大的xhr类型的 (显然是ajax请求了),找到之后的URL是带有分段其实结束为止的,例如
https://r19---sn-oguesne6.googlevideo.com/videoplayback?signature=xxxxxx......html5&range=1541202-2106828&rn=13&rbuf=93753
把最后一段range之类的去掉,就是最终的视频或者音频URL了。
要是实在嫌烦,也可以使用online downloader (http://en.savefrom.net/) ,把网址贴进去,就会出现下载link了。
2015/11/18: 后来发现这种html5 video player使用的传输格式叫DASH manifest, 有好事者做了YouTube下载器GUI版,以及命令行版(用python做的).
一个命令 youtube-dl YOUTUBE_VIDEO_URL 就搞定了,而且可以根据playlist批量下载。
来源:oschina
链接:https://my.oschina.net/u/2253129/blog/530565