目录
网上很多视频网站用的是HLS流媒体技术,视频被切成几十上百个小碎片,再由一个m3u8播放列表来管理。这样一来,你没法像普通视频那样右键另存为,用下载软件又经常遇到速度慢、下到一半卡住、或者干脆识别不了的情况。m3u8-downloader就是冲着这个痛点去的——它把整个下载流程搬到了网页里,不需要装客户端,也不用研究复杂的命令行参数,对普通用户来说门槛低了很多。
这个项目在GitHub上有一千多颗星,纯粹用前端技术实现,作者把整个工具的代码开源出来,懂技术的人可以自己审查运行逻辑,用起来心里更有底。
官网入口地址
http://blog.luckly-mjw.cn/tool-show/m3u8-downloader/index.html
下载地址
这个工具不需要下载安装。它是纯网页应用,直接打开官网地址就能使用。源代码托管在GitHub:https://github.com/Momo707577045/m3u8-downloader
功能介绍
在线解析下载:把m3u8链接粘贴到输入框,点击解析,工具会读取播放列表里的所有视频碎片地址,然后逐个下载。你能在页面上看到每一个碎片的下载状态,绿色代表成功,红色代表失败,灰色代表还没开始。
碎片级控制:这是它比较好用的一个设计。如果某一个碎片下载失败了,你可以单独点击那个红色图标重新下载,不用把整个视频从头再来一遍。还有一个“强制下载现有片段”的按钮,意思是哪怕视频还没下完,已经下好的部分可以先合并导出,让你提前看上一部分。
AES-128解密支持:不少网站的m3u8视频做了加密处理,直接下载下来的ts碎片是没法播放的。这个工具内置了解密能力,能够处理标准的AES-128-CBC加密,下载完自动解密再合并。
跨域问题处理:有时候在工具页面直接粘贴链接会下不动,因为视频源做了跨域限制。工具提供了一个“跨域复制代码”的功能,让你把一段代码贴到视频所在网页的控制台里,相当于把下载工具“注入”到视频页面内部去运行,绕开跨域障碍。
应用场景
保存网课或讲座视频:有些在线教育平台用HLS分发课程内容,正常观看没问题,但想下载下来反复看或者离线复习就找不到入口。用这个工具提取m3u8链接后可以完整保存下来。
归档直播回放:一些活动直播结束后会留下回放,格式往往也是m3u8。如果平台不提供直接下载按钮,这个工具可以帮你把回放录下来。
个人素材整理:做视频剪辑或者内容创作的人,有时候需要把网上看到的参考素材保存下来做分析,m3u8格式的源用常规方法拿不到,这个工具能派上用场。
技术学习与排查:开源的好处是你可以看到它怎么处理m3u8解析、碎片队列、解密和合并的流程,对想了解HLS原理的开发者来说是个不错的参考样本。
使用方法
第一步,在浏览器里打开目标视频的页面,按下F12打开开发者工具,切到Network面板,在过滤框里输入m3u8。然后刷新页面,让视频开始播放,这时候Network里会出现m3u8文件的请求记录。
第二步,找到那个内容里包含大量.ts后缀地址的m3u8文件,右键复制它的链接。注意不要复制成索引文件,索引文件里只有几行指向他m3u8的地址。
第三步,打开m3u8-downloader的页面,把链接粘贴进去,点击解析下载。页面上会出现一排碎片图标,开始逐个变绿。等全部下完,浏览器会自动触发完整视频的下载。如果中间有变红的,点一下红色图标重新下那个碎片就行。
服务支持与补充说明
定价:免费,开源项目,没有会员制,没有隐藏收费。作者没有在工具里设置任何付费门槛。
局限性需要提前知道:这个工具处理不了大型视频网站(比如爱奇艺、腾讯视频)的视频,因为那些平台有自己的私有加密算法,不是标准的AES-128,通用工具拿它们没办法。另外它依赖浏览器运行,下载超大文件时对电脑内存有一定要求,长时间挂机下载建议别开太多他网页。
使用边界:工具本身是中性的,但怎么用取决于人。下载自己有权限访问的内容、保存自己的课程回放、归档自己直播的录像,这些都没问题。但拿它去批量抓取有版权保护的内容再传播,就不合适了,这个分寸需要自己把握。
| 源码反馈/咨询 (共有 条反馈) |
m3u8-downloader常见问题
不是公司做的,是一个个人开发者开源的项目。作者在GitHub上的用户名是Momo707577045,项目以开源形式发布,任何人都可以查看代码或者参与改进。
是一个跑在浏览器里的网页工具,专门用来下载 m3u8 格式的视频。你把视频的 m3u8 链接给它,它就把背后那几十上百个视频碎片全部拉下来,拼成一个完整文件给你。省掉了装软件、配环境的麻烦。
基本操作不复杂,会复制粘贴链接就行。但有一个步骤需要稍微动动手:你得从浏览器的开发者工具里把 m3u8 链接找出来,这个对没接触过的人有点陌生。不过流程是固定的,照着做一遍就会了。工具页面本身很简洁,输入框、按钮、碎片状态图标,看一眼就明白。
免费。没有会员等级,没有试用期限制,没有导出水印。作者把这个工具当开源项目维护,代码都在GitHub上公开,不存在收费入口。
因为它是纯前端工具,下载和解密都在你自己的浏览器里完成,视频碎片不经过作者的服务器中转。代码开源也意味着懂技术的人可以审查它到底做了什么。从项目公开的代码来看,它的逻辑就是解析m3u8、请求碎片、解密、合并,没有收集用户信息的行为。任何在线工具都存在浏览器环境本身的限制,这一点心里有数就行。
常见的原因是跨域限制。工具页面和视频源不在同一个域名下,浏览器安全策略会拦掉请求。遇到这种情况用“跨域复制代码”功能,把工具注入到视频页面里运行,能解决。另一种情况是大平台的私有加密,比如爱奇艺、腾讯的自有算法,不是标准 AES,这个工具处理不了。
点那个红色的碎片图标单独重下就行。页面上每个碎片对应一个图标,哪个红了点哪个,不用全部重来。如果失败的多,可以点“重新下载错误片段”按钮批量处理。
官方的介绍里主要说的是点播视频的解析下载,不是专门做直播录制的工具。如果你需要录直播流,需要找专门支持直播源持续写入的方案,这个工具的定位更偏向于“把一个已经存在的 m3u8 播放列表完整拿下来”。
合并出来的是MP4文件。工具做的是原样下载碎片再拼接,没有重新编码的过程,所以画质跟你在线观看时是一致的,不会有二次压缩的损失。
理论上可以,因为它是网页工具,手机浏览器打开官网地址也能访问。但实际操作中,手机浏览器找 m3u8 链接、挂后台下载大文件这些步骤都不太方便。这个工具的设计场景还是以电脑浏览器为主,推荐在电脑上用。
省事。不用下载安装包,不用配置ffmpeg路径,不用面对命令行。打开网页、粘贴链接、等它下完,就这三步。对于偶尔需要用一次的人来说,学习成本比装软件低很多。当然如果你需要批量下载几百个视频,桌面软件在管理上会更顺手,看你的使用频率和场景。
大概率是跨域问题导致请求被浏览器拦了。先试试“跨域复制代码”那个功能,把代码贴到视频页面的控制台里运行,然后通过注入在页面底部的工具界面来操作。如果还是不行,检查一下你复制的链接是不是真正的视频m3u8(内容里有很多.ts地址的那种),而不是一个索引文件。