总会有那么一些视频和电影,我们想保存到本地反复观摩。
今天我们就来聊聊视频下载的问题,预计能解决 99% 的视频下载问题,而且绝对简单,隔壁老大爷也能学会。
本文可能是目前最全的视频下载教程,也可能是最长久有效的。
首先,我们来讲一讲视频下载的原理。不然,就算你被安利再多的“万能视频下载器”,也是徒然。
有时候,我们下载下来的视频是分段的,是网站为了防止别人下载,故意这么做的吗?
不是的!
将视频分成多个片段,为的是解决视频的缓冲问题。它可以让我们不用等到整个视频都缓冲好了才开始播放,否则就等于下载整个视频了。
这个做法就是苹果公司推出的 HLS 协议(HTTP Live Streaming)。
HLS 协议可以分为两个部分:
一是 ts 视频文件。
它的特点,是可以在视频的任意位置独立解码,再加上视频被分成了多个片段,所以,现在大多数视频网站,我们可以点到那里就播那里。
二是 m3u8 文件。
m3u8 文件是一个文本文件,它记录着要播放什么样的 ts 视频文件。也就是说,m3u8 文件其实就相当于是一个“播放列表”。
所以,视频下载的关键:
一是如何将 ts 分段视频合并在一起。
这个很好办,业界普通采用的方法是 FFmpeg 开源项目,如果你下载的视频是完整的,那么说明软件已经内置了 FFmpeg。
二是如何获取和解析 m3u8 文件。
这个比较复杂,但这是视频下载的关键的关键,下面我总结了一些解析 m3u8 文件的方法。
第一种方法是使用浏览器拓展,比如知名视频下载拓展:Video DownloadHelper。
但由于受浏览器沙盒的限制,拓展对视频的解析能力有限,会经常解析不到视频内容,遇到稍长一点的视频就会分成多个视频,你需要手动合并这些视频。
在这里,奶酪有一个成熟的建议:忽略所有视频下载扩展。
想要有强大的视频解析能力,那就需要用视频嗅探工具了。
比如知名下载工具 IDM,它不但支持多线程下载,而且还内置了“视频嗅探功能”,在有视频的地方就会显示一个“浮动下载框”,点击就可以一键下载。
Mac 下也有类似的软件 NDM,它不但支持 Mac 和 Windows 多个平台,而且还是免费的。
但一些网站或者网页会对 IDM / NDM 这类软件进行屏蔽,所以会出现“浮动按钮不显示”的情况。
如果“浮动按钮不显示”,那么就需要用专门的“视频解析”工具了。
这其中做得最好的当属 Mac 下的软件 Downie,它不但界面精美,而且操作简单,只需要复制粘贴网页地址就可以一键下载。
Windows 下也有类似的软件,叫做 Annie。
为什么叫 Annie(安妮 / 女孩名)呢?是因为它要对标的是 Mac 平台下的 Downie (唐尼 / 男孩名)。
不过,现在 Annie 已经改名为 Lux 了。(英雄联盟女英雄名)
在此之前,其实已经有过像 youtube-dl 这样的视频解析工具,只不过它对国内的视频网站支持不太好,所以就有了 Lux 这个项目。
如果你觉得用“命令行”的下载方式太麻烦,参考文章《App02-Lux》,可以实现视频的一键下载。
还有一种“网页解析”的方法,其实就是在线解析。
比如网站 https://www.parsevideo.cn 就支持大多数视频网站的解析,同样,只需要输入网页地址就可以下载。
但这类在线视频解析网站,通常会因为版权的问题而停止服务,而且还会有使用次数的限制。
所以,在线解析的优势,是在于一些特殊的视频下载:
比如 VIP 视频解析、无水印视频、视频网站国内无法正常打开等情况。
下面我精选了一批优秀的网页解析网站,你可以回复关键字 i14 获取。
我们来总结一下视频的下载方法。
视频下载的方法这么多,那我应该如何选择?
如果能显示“浮动下载框”,那么优先使用 IDM 或 NDM 来下载。
如遇到“浮动下载框不显示”的情况,那么就用 Lux 或 Downie 来下载。
一些视频的链接为 .m3u8 后缀,使用 IDM 或 NDM 来下载时,会出现“没有下载权限”的问题。
例如网站:https://www.enaea.edu.cn/other/xyjs/202.html
这时候就需要复制该 “m3u8链接”,然后用专门的 m3u8 下载器 来下载。
Mac 下载方法:
Mac 下的 Downie 本身就支持 m3u8 链接下载,所以,只需要粘贴到 Downie 上就可以下载。
Windows 下载方法:
Windows 下的 Lux 不支持,所以,就需要用专门的 m3u8 Downloader 来下载,推荐这个项目:
https://github.com/nilaoda/N_m3u8DL-CLI
网页下载方法:
此外,你还可以用“在线 m3u8 解析工具”来下载,同样,粘贴网页地址就可以。
http://blog.luckly-mjw.cn/tool-show/m3u8-downloader/index.html
一些网站会使用专门的播放器来屏蔽视频下载工具。
比如网站:https://www.51zxw.net/Show.aspx?cid=976&id=111886
解决方法,是使用“用户代理”工具,然后将用户代理切换为“移动端”,让网页重新用回“通用播放器”。
扩展推荐 User Agent Switcher and Manager。
如果你使用的是 RC Firefox 和 RC Chrome,自带的扩展 Header Editor 也有用户代理功能。
启用 "iPhone" 后刷新网页,然后网站就会使用通用播放器,这样就可以用 IDM / NDM 下载了。
一些网站设置了反嗅探机制,即便你嗅探成功,可下载下来的视频要么“有画面没声音”,要么“有声音没画面”。
网友“momo707577045”开发了一个“无差别视频下载”脚本。
只要是“用浏览器能播放的视频”都可以下载。
https://github.com/Momo707577045/media-source-extract/raw/master/media-source-extract.user.js
使用方法:
这里有一个示例链接:
http://blog.luckly-mjw.cn/tool-show/media-source-extract/example/iframe.html
1)播放视频,等视频缓冲一段时间后,开启「十倍速捕获」。
2)视频播放结束后,点击「下载已捕获片段」。
3)这时会得到一个「没声音的视频文件」和一个「没画面的音频文件」。
4)最后,使用 FFmpeg 或者 Quick Cut 将两个文件合并。
使用上面的方法,就已经可以解决 99% 的视频下载问题了。
如果还是无法下载,那么就得用最后的方法了——“录屏”,保证解决 100% 的视频下载问题。
最后,我们来划个重点。
理论上,只要是使“用浏览器能打开的视频”,使用上面的方法都可以下载。
至于,“微信视频号”的视频下载是另一个次元,上面的方法并不适用,后续我再更新视频号的下载方法。
PS:以上方法只是用于个人学习,切勿用于任何侵权行为。
如果你想在视频下载这个问题上省心、省力、省时间。
推荐购买正版 IDM 和 Downie。
我们经常看到 IDM / Downie 提示升级,但更新后又看不到有什么外变化,原因是它们更新了算法,视频解析能力更加强大了。
购买正版 IDM / Downie,不但是购买了软件本身,而且还购买了后续的维护更新。
使用下面的链接购买,可以领取优惠卷减 5 元。
IDM:https://store.lizhi.io/site/products/id/325/cid/g7qzu9lf
Downie:https://store.lizhi.io/site/products/id/280/cid/g7qzu9lf
PS:通过上面的链接购买,奶酪会有一定的返利。(不用也可以哈!)