查看原文
其他

新版本,包搞定,解决 99% 的视频下载问题

奔跑中的奶酪 奔跑中的奶酪 2022-05-20

1、阅读本文预计需要 7 分钟,并提供了资源下载。

2、本文是网上冲浪指南专题i14篇的3.0版本

3、第一时间获取更新,欢迎关注「奔跑中的奶酪」。



导读


总会有那么一些视频和电影,我们想保存到本地反复观摩。

今天我们就来聊聊视频下载的问题,预计能解决 99% 的视频下载问题。


而且绝对简单,隔壁老大爷也能学会。

本文可能是目前最全的视频下载教程,也可能是最长久有效的。




01


视频下载的原理


首先,我们来讲一讲视频下载的原理。

不然,就算你被安利再多的“万能视频下载器”,也都是徒然。

有时候,我们下载下来的视频是分段的,是网站为了防止别人下载,故意这么做的吗?

不是的!

将视频分成多个片段,为的是解决视频的缓冲问题

它可以让我们不用等到整个视频都缓冲好了才开始播放,否则就等于下载整个视频了。

这个做法就是苹果公司推出的 HLS 协议(HTTP Live Streaming)。


HLS 协议可以分为两个部分:

一是 ts 视频文件。

它的特点,是可以在视频的任意位置独立解码,再加上视频被分成了多个片段。

所以,现在大多数视频网站,我们可以点到那里就播那里。

二是 m3u8 文件。

m3u8 文件是一个文本文件,它记录着要播放什么样的 ts 视频文件。

也就是说,m3u8 文件其实就相当于是一个“播放列表”。


所以,视频下载的关键:

一是如何将 ts 分段视频合并在一起。

这个很好办,业界普通采用的方法是 FFmpeg 开源项目,如果你下载的视频是完整的,那么说明软件已经内置了 FFmpeg

二是如何获取和解析 m3u8 文件

这个比较复杂,但这是视频下载的关键的关键,下面我我总结了一些解析 m3u8 文件的方法。




02


视频下载的方法


1、浏览器拓展法


第一种方法是使用浏览器拓展,比如知名视频下载拓展:Video DownloadHelper



但由于受浏览器沙盒的限制,拓展对视频的解析能力有限


会经常解析不到视频内容,遇到稍长一点的视频就会分成多个视频,你需要手动合并这些视频。


在这里,奶酪有一个成熟的建议:


忽略所有视频下载扩展



2、嗅探工具法


想要有强大的视频解析能力,那就需要用视频嗅探工具了。


比如知名下载工具 IDM,它不但支持多线程下载,而且还内置了“视频嗅探功能”。


在有视频的地方就会显示一个“浮动下载框”,点击就可以一键下载。



Mac 下也有类似的软件 NDM,它不但支持 Mac 和 Windows 多个平台,而且还是免费的。



但一些网站或者网页会对 IDM / NDM 这类软件进行屏蔽,所以会出现“浮动按钮不显示”的情况。



3、解析工具法


如果“浮动按钮不显示”,那么就需要用专门的“视频解析”工具了。


这其中做得最好的当属 Mac 下的软件 Downie


它不但界面精美,而且操作简单,只需要复制粘贴网页地址就可以一键下载。



Windows 下也有类似的软件,叫做 Annie


为什么叫 Annie(安妮 / 女孩名)呢?是因为它要对标的是 Mac 平台下的 Downie (唐尼 / 男孩名)。


其实在此之前,已经有过像 you-get , youtube-dl 这样解析引擎,只不过它们对国内视频网站的支持不太好,所以就有了 Annie 这个项目。



网友“愚无尽”觉得 Annie 的使用方法太麻烦。


就制作了一键部署工具,有了图形化界面的 Annie 就可以媲美 Downie 了,而且它还是免费的。



使用方法:


1、回复关键字 i14 获取软件。
2、使用管理员身份运行“安装.bat”。
3、打开“视频下载工具.exe”,复制网页地址,粘贴即可下载。



4、网页解析法


还有一种“网页解析”的方法,其实就是 Downie 的在线版


比如网站 https://www.parsevideo.cn 就支持解析大多数视频网站,同样,只需要输入网页地址就可以下载。



但这类在线视频解析网站,通常会因为版权的问题而停止服务,而且还会有使用次数的限制


所以,在线解析的优势,是在于一些特殊的视频下载:


比如 VIP 视频解析、无水印视频、视频网站国内无法正常打开等情况。


下面我精选了一批优秀的网页解析网站,你可以回复关键字 i14 获取。




5、总结


我们来总结一下视频下载的方法。






03


视频下载的流程


视频下载的方法这么多,那我应该如何选择呢?


1、有浮动下载框


如果能显示“浮动下载框”,那么优先使用 IDM 或 NDM 来下载。


2、无浮动下载框


如遇到“浮动下载框不显示”的情况,那么就用 Annie 或 Downie 来下载。


3、m3u8 后缀视频


一些视频的链接为 .m3u8 后缀,使用 IDM 或 NDM 来下载时,会出现“没有下载权限”的问题。


例如网站:

https://www.enaea.edu.cn/other/xyjs/202.html


这时候就需要复制该 “m3u8链接”,然后用专门的 m3u8 下载器 来下载。



Mac 下载方法:


Mac 下的 Downie 本身就支持 m3u8 链接下载,所以,只需要粘贴到 Downie 上就可以下载。



Windows 下载方法:


Windows 下的 Annie 不支持,所以,就需要用专门的 m3u8 Downloader 来下载。


推荐这个项目:

https://github.com/nilaoda/N_m3u8DL-CLI



网页下载方法:


此外,你还可以用“在线 m3u8 解析工具”来下载,同样,粘贴网页地址就可以。


http://blog.luckly-mjw.cn/tool-show/m3u8-downloader/index.html




4、专用播放器


一些网站会使用专门的播放器,来屏蔽所有视频下载工具。


比如网站:

https://www.51zxw.net/Show.aspx?cid=976&id=111886


解决方法,是使用“用户代理”工具,然后将用户代理切换为“移动端”,让网页重新用回“通用播放器”。


扩展推荐 User Agent Switcher and Manager


如果你使用的是 RC FirefoxRC Chrome,自带的扩展 Header Editor 也有用户代理功能。



启用 "iPhone" 后刷新网页,然后网站就会使用通用播放器,这样就可以用 IDM / NDM 下载了。




5、无差别视频下载


一些网站设置了反嗅探机制,即便你嗅探成功,可下载下来的视频要么“有画面没声音”,要么“有声音没画面”。


网友“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)Windows 可使用「小丸工具箱」完成合并。

5)Mac 可使用 FFmpeg 命令,又或者使用「Video Audio Merger」来完成合并。



6、100% 视频下载方法


使用上面的方法,就已经可以解决 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:通过上面的链接购买,奶酪会有一定的返利。(不用也可以哈!)



回复关键字
i
查看本系列的所有文章,
回复关键字
 i14
获取本文提到的所有资源

近期文章:


专栏介绍:


看完文章:

1、点在看,帮助更多的人看到这篇文章。
2、写留言,对文章进行评论,我会尽可能回复。
3、点关注,关注我并星标,第一时间获取更新。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存