【工具】下载网页视频的方法(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的转换结果清晰。