自从知道浏览器的开发者模式以后,看视频的时候就会看看能不能找到视频源文件下载下来,后来发现对于以前的网站,往往是可以找到原视频下载的,但是近些年,采用了流媒体,视频被切分为片段,数量从几百到几千不等,因此通过开发者模式手动下载视频变得不太可能,尤其是对于带有加密的流媒体文件。了解到这些流媒体后,找了一些资料,并参考别人的经验,成功下载并合成了。因此记录一下下载过程,以备不时之需。
以谷歌浏览器为例,打开早些年的网站,并使用F12快捷键进入开发者模式,打开network项,F5刷新界面,获得页面加载资源视图。找到一直在加载的文件,或者使用过滤器寻找mp4文件,可找到如下文件,右键复制地址,通过下载器便可将文件下载至本地。
在此介绍一种更为简便的方法,使用IDM下载器,在浏览器中安装插件后,打开视频便可自动找到视频文件,操作简单。
点击后即可下载
而近些年的网站,因为流媒体技术的应用,大多数采用切片文件(.TS),为了下载并转码获得原视频,可采用ffmpeg工具,该工具可通过官网免费下载点此跳转。解压后将bin目录添加至环境变量的路径栏,即可通过cmd指令窗口调用。
对于成百上千个TS文件,手动下载是不切实际的,因此我们需要利用流媒体文件的目录.m3u8文件进行下载。按照上面介绍的方法,在过滤器中寻找m3u8文件。
将目录文件下载至本地,用记事本打开目录文件,可查看流媒体是否加密,以及切片的数量。观察切片文件是否有具体地址!!!若缺少具体地址,则需在过滤器中寻找一个TS文件,获取文件的存储地址。利用记事本的替换功能给每个切片文件添加实际地址。
获得能够用于直接下载的目录文件(.m3u8)后,使用CMD窗口条用ffmpeg工具下载转码。在线下载并转码的指令为
ffmpeg -protocol_whitelist "file,https,crypto,tcp,http,tls" -i index.m3u8 -c copy out.mp4
执行效果如下
ffmpeg是强大的流媒体处理软件,同样可以快速转码本地的文件。对于本地文件,只需要将切片文件地址指向本地的切片文件即可,密钥文件.key同样需要修改为本地密钥。执行本地转码时,指令也有所差别。
ffmpeg -allowed_extensions ALL -i index.m3u8 -c copy new.mp4
第一篇博客就到此为止了,写得确实比较简略,因为我对其中很多也不甚了解,本博客只作为个人笔记,大家如有不懂可参考以下几篇博客进行深入学习。
1.m3u8及TS文件下载解密:用FFmpeg解密合并m3u8中ts文件(一)