目录
N_m3u8DL-CLI诞生于2019年10月,作者是nilaoda。它的核心能力是处理HLS协议下的m3u8播放列表——这种格式把视频切成很多个小的TS分片,通过网络流式传输。N_m3u8DL-CLI的工作就是把这些分片抓下来,该解密的解密,合并成一个完整的视频文件。
这个工具在技术圈子里有一定的知名度,主要是因为它对加密流媒体的处理比较到位。很多视频网站为了保护内容,会对m3u8流采用AES-128加密,N_m3u8DL-CLI内置了解密能力,能自动识别并处理常见的加密场景。
项目采用MIT许可证开源,代码托管在GitHub上。原版N_m3u8DL-CLI主要面向Windows平台,依赖.NETFramework运行。作者后来推出了跨平台版本N_m3u8DL-RE,真正实现了Windows、Linux、macOS的全面支持。
官网入口地址
https://nilaoda.github.io/N_m3u8DL-CLI/
下载地址
https://github.com/nilaoda/N_m3u8DL-CLI/releases
建议下载文件名包含with_ffmpeg_and_SimpleG的版本,这个版本自带ffmpeg和图形界面,解压后就能用。
功能介绍
多线程高速下载
支持自定义下载线程数,多个分片并行下载,明显提升获取速度。
AES-128自动解密
内置AES-128-CBC解密能力,能够自动识别受保护的m3u8流并完成解密,不需要用户手动提供密钥。
断点续传
网络中断或者主动暂停后,重新启动可以继续之前的下载进度,不用从头再来。
自动合并
下载完成后可以直接调用内置的二进制合并功能,或者使用外部的ffmpeg进行音视频合并,生成可直接播放的MP4或TS文件。
自定义HTTPHeader
支持通过--headers参数添加请求头信息,能够应对需要特定Referer或User-Agent才能访问的视频源。
直播录制
提供对HLS直播流的实时录制能力,可以把正在进行的直播内容保存到本地。
音轨与字幕处理
支持下载m3u8中的外挂音轨和字幕轨道,还能选择下载指定时间段或分片的内容。
SimpleG图形界面
附带一个轻量级的图形界面程序SimpleG,适合不熟悉命令行操作的用户。界面支持拖入txt文件或文件夹进行批量下载。
多语言支持
SimpleG界面支持简体中文、繁体中文和英文三种语言。
应用场景
保存在线课程
很多教育平台使用HLS流媒体传输视频,N_m3u8DL-CLI可以把课程内容下载到本地,方便反复观看或离线学习。
归档直播内容
对于有回放价值的直播,可以用它录制下来保存,避免直播结束后内容被下架。
研究流媒体技术
开发者可以用这个工具分析m3u8流的结构、加密方式,理解HLS协议的工作原理。
下载受限视频
有些视频网站不提供直接下载按钮,或者需要特定请求头才能访问。N_m3u8DL-CLI的header自定义功能可以应对这类情况。
使用方法
获取m3u8链接
使用N_m3u8DL-CLI的第一步是拿到m3u8地址。可以通过浏览器的开发者工具(F12)在网络请求中筛选.m3u8文件来找到。也可以配合浏览器扩展如“猫抓”来嗅探页面上的m3u8链接。
命令行基本用法
解压下载的压缩包后,打开命令行,切换到程序所在目录。基本命令格式如下:
N_m3u8DL-CLI.exe"m3u8链接"--workDir"保存目录"
程序会自动开始下载分片、解密(如果有加密)并合并。
使用SimpleG图形界面
双击运行N_m3u8DL-CLI-SimpleG.exe,在界面中粘贴m3u8链接,设置保存路径和文件名,点击开始即可。输入框支持拖入txt文件或文件夹来实现批量下载。
配合浏览器扩展使用
社区有一个增强版的SimpleG工具,可以配合Chrome的“猫抓”扩展使用。安装扩展后,在猫抓的设置中配置N_m3u8DL-CLI的自定义协议,之后在网页上点击下载就能自动把任务添加到工具列表中。
服务支持
N_m3u8DL-CLI是免费的开源工具,没有付费版本,不需要注册,也没有广告。项目遵循MIT许可证,代码可以自由查看和修改。
作者在GitHubRelease页面的更新日志中提到,由于“沉重的历史包袱”,v3.0.2之后如果没有重大问题,原版将不再引入新功能,建议用户关注全新开发的跨平台版本N_m3u8DL-RE。
使用中遇到问题可以在GitHubIssues中反馈,也可以查阅项目文档。需要注意,工具本身不支持优酷视频的解密。
| 源码反馈/咨询 (共有 条反馈) |
N_m3u8DL-CLI常见问题
这是个人开发者nilaoda制作的开源项目,不是公司产品。代码托管在GitHub上,2019年10月开源,采用MIT许可证。
是一个专门下载m3u8格式视频的工具。m3u8是流媒体常用的播放列表格式,视频被切成很多小片段传输。这个工具能把所有片段抓下来,合成一个完整的视频文件保存到本地。
简单的用法是下载带SimpleG图形界面的版本,解压后双击SimpleG程序,粘贴m3u8链接,点开始下载就行。如果习惯命令行,也有丰富的参数可以控制下载行为。
免费,开源工具,没有收费版本。
是一个开源的下载工具,代码公开可查。下载过程在本地完成,不涉及上传数据。但因为涉及流媒体下载,建议用于个人学习和研究用途。
原版N_m3u8DL-CLI主要面向Windows平台,依赖.NETFramework。作者后来推出了跨平台版本N_m3u8DL-RE,支持Windows、Linux和macOS。
N_m3u8DL-RE是作者推出的新一代版本,真正实现了跨平台,并且对新的流媒体格式(如MPD)支持更好。原版CLI已经进入维护阶段,不再添加新功能。
支持AES-128-CBC加密的自动解密。但需要注意,工具不支持优酷视频的解密,他平台的特殊DRM也无法处理。
这是HLS多轨流的常见问题,音视频分片的起始时间戳不对齐。可以尝试在合并时使用ffmpeg的-async1参数重新同步,或者升级到更新的版本。
项目文档页面在 https://nilaoda.github.io/N_m3u8DL-CLI/ 代码仓库和下载都在GitHub上。
打开浏览器的开发者工具(按F12),切换到Network面板,播放视频后筛选.m3u8文件。也可以安装“猫抓”等浏览器扩展来自动嗅探页面上的m3u8链接。
SimpleG界面支持批量操作。可以把多个m3u8地址写到一个txt文件里(每行一个),然后把文件拖入程序输入框,或者拖入包含多个m3u8文件的文件夹。
可以在参数中调整线程数,多线程并行下载能提高速度。但线程数过高导致连接不稳定,建议根据网络情况调整到8到16左右比较合适。
支持HLS直播流的录制,但这是Beta功能,稳定性不如点播下载。
下载with_ffmpeg_and_SimpleG版本的压缩包已经内置了ffmpeg,不需要单独安装。如果下载的是他版本,需要自行配置ffmpeg路径。
猫抓是一个浏览器扩展,能嗅探页面上的m3u8链接。社区有一个增强版SimpleG工具,可以和猫抓对接。在猫抓中点击下载时,会自动把任务添加到SimpleG的任务列表中。