【工具】下载网页视频的方法(m3u8)

介绍下载网页视频的方法,尤其是m3u8格式

最近在找一个冷门电影,光靠百度是真的没找到还能下的种子(也许开迅雷会员能下但显然我没有会员也懒得买),但是居然发现有一个网站能在线播放,遂尝试下载。

普通网页下载视频方法

今年研开课也提到了,非常简单,但只能用于没有对视频加密的网站,具体方法就是点击视频播放框审查元素(图里的是不能直接下的因为blob加密,但是样式反正就是video的元素):

src里就是视频下载链接,点开即送。

或者F12选择网络-媒体,media类型的元素里也能找到链接,双击即可下载(图里没有但是这个位置):

m3u8

有些网站用的是m3u8格式的视频,如果你播放,会发现F12网络-全部,那里会出现很多.ts文件,点开可下载,但是只是视频片段:

原理贴一下网上的:

视频网站采用流媒体传输协议,将一段视频切成无数个小段,这几个小段就是ts格式的视频文件,一段一段的网站上播放。

这样做的好处是观看更加流畅,因为他会根据网络状况自动切换视频的清晰度,在网络状况不稳定的情况下,对保障流畅播放非常有帮助。

服务器采集编码传输视频到切片器,切片器对视频创建索引文件,并且切割成n个ts文件,这2个文件传输到http服务器上,网站/客户端根据索引文件查找http服务器上的ts文件,连续播放这n个ts文件。

网站需要拿到索引文件,去按照url链接下载在http服务器中的ts文件,类似于爬虫,索引文件就是m3u8文件。

所以我们仔细找,或者过滤一下m3u8:

就能找到索引文件的下载链接了,记住这个链接。有了这个索引文件,貌似一些下载器可以把完整视频下载下来,但是计算机人怎么能在自己电脑乱下软件呢(不是)

blob加密的不用管,也是直接找m3u8就好了。

ffmpeg

搜索解决方案时找到一个神奇的东西ffmpeg,不记得什么时候见过它了但是貌似以前不止一次缺过这个东西的dll…

电脑有pip的用pip install,装anaconda的进anaconda环境的命令行用conda install,linux用sudo apt-get install…

1
conda install ffmpeg

然后:

1
ffmpeg -i m3u8的链接 想保存为的视频名.保存为的视频后缀

经过漫长的等待。。。。建议短视频用,电影就算了,CPU都能烤肉了时间,反正我扔云服务器上去跑了,瞬间跑满:

注:停止是按q

potplayer

右键打开链接直接播放,但是至于怎么保存还不知道。。。

偶然搜到的链接

知乎里贴的:https://tools.thatwind.com/tool/m3u8downloader ,网页即用,非常省事,但是我感觉没有ffmpeg的转换结果清晰。