N_m3u8DL-RE 完整指南:流媒体下载、解密与直播录制的实操手册
【免费下载链接】N_m3u8DL-RECross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文.项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE
N_m3u8DL-RE 是一款跨平台的 DASH/HLS/MSS 流媒体下载工具:它负责解析 MPD、M3U8、ISM 清单,把点播视频和直播流保存为本地文件,并内置 CENC、AES-128、ChaCha20 等加密内容的解密能力。界面提供简中、繁中、英文三种语言,Windows 与 Linux 均可运行。下面按"装好、下载、解密、录直播"的顺序,带你把最常用的几条路径走通。
🚀 怎么把程序装好并跑通第一条命令?
获取可执行文件有两条路:到项目 Releases 页面下载预编译包,解压即用;或者克隆源码自己构建。下面这条命令完成克隆与构建:
git clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE dotnet build src/N_m3u8DL-RE.sln构建成功后,可执行文件就在输出目录里。仓库自带一份公共测试流清单(见 TestStreams.md),从中挑一条 HLS 流来验证安装是否成功:
N_m3u8DL-RE "http://playertest.longtailvideo.com/adaptive/oceans_aes/oceans_aes.m3u8" --save-name oceans参数很直白:第一个参数是播放列表链接,--save-name oceans指定输出文件名。程序会先列出清单里可用的轨道,再下载视频、音频分片并自动合并,最终得到 oceans.mp4 和一份元信息 json。
注意:旧版 Windows 的自带终端可能无法完整显示程序输出,建议换用第三方终端运行。
Arch Linux 系用户可以从 AUR 直接安装n-m3u8dl-re-bin(发行版)或n-m3u8dl-re-git(开发版),省去手工构建步骤。
📥 流媒体点播下载:一条命令拿成本地文件
手头已有 MPD 或 M3U8 链接时,最省事的写法是让程序自己挑轨道:
N_m3u8DL-RE "<链接>" --save-name 我的视频 --auto-select--auto-select会自动挑选最佳视频、音频、字幕轨道,--save-name给出输出文件名,其余不用管。
想手动控制轨道时,用-sv、-sa、-ss按正则挑选视频、音频、字幕。下面这条命令取 1920 级别中码率最高的一条视频:
N_m3u8DL-RE "<链接>" -sv 'res="1920*":for=best'其中res="1920*"匹配所有以 1920 开头的分辨率,for=best表示只保留最优的一条;音频、字幕的写法与它一致。同时保存多条轨道时,给--save-pattern加上<Resolution>、<Language>等变量,每条轨道会生成互不冲突的文件名。
这一场景常用的输出与性能参数:
--save-dir— 指定输出目录,如--save-dir "D:\Videos"--tmp-dir— 临时分片目录,如--tmp-dir "C:\Temp"--thread-count— 下载线程数,默认 10,如--thread-count 8-R— 限速,单位 Kbps 或 Mbps,如-R 15M-H— 为请求附加请求头,如-H "User-Agent: iOS"-M— 全部完成后混流分离的音视频,如-M format=mp4--log-level— 日志级别,可选 DEBUG/INFO/WARN/ERROR/OFF
🔑 加密流解密:密钥参数怎么填
已经拿到密钥的加密流,把密钥随命令一起传入即可:
N_m3u8DL-RE "<加密链接>" --key KID:KEY --save-name 解密后的视频--key有两种写法:KID:KEY成对给出密钥 ID 与密钥;如果所有轨道共用同一个密钥,直接传KEY就行。多个 KID 就重复传多次--key;密钥条数很多时,可以改用--key-text-file指向一份 KID-KEY 映射文件,程序按 KID 查找对应密钥。
解密默认由 mp4decrypt 执行(引擎名 MP4DECRYPT),--decryption-engine可切换为 FFMPEG 或 SHAKA_PACKAGER。遇到清单没写清加密方式的自定义 HLS AES-128,还能用--custom-hls-key和--custom-hls-iv分别指定密钥与 IV,两者都接受 HEX、Base64 或文件路径三种形式。
这一场景常用的参数:
--key— 解密密钥,KID:KEY成对或纯KEY--key-text-file— KID-KEY 映射文件--decryption-engine— 解密引擎:MP4DECRYPT(默认)/ FFMPEG / SHAKA_PACKAGER--custom-hls-key/--custom-hls-iv— 自定义 HLS 的密钥与 IV,支持 HEX、Base64、文件
🎥 直播录制:录多久自动停、怎么边录边合
对持续开播的直播流,想录到固定时长就停,用--live-record-limit指定 HH:mm:ss 格式的时长:
N_m3u8DL-RE "<直播链接>" --live-record-limit 01:00:00--live-record-limit 01:00:00表示录制 1 小时后自动停止。
两个可选的实时能力:加--live-real-time-merge可以在录制过程中边录边合并,省掉事后的二次合并;--live-pipe-mux更进一步,把分片通过管道交给 ffmpeg 实时混出 TS 文件。
警告:--live-pipe-mux依赖管道传输,网络不稳时容易丢失直播数据,不确定的网络环境请关掉它,改用普通实时合并。
其余常用直播参数:
--live-take-count— 首次获取的分片数量,默认 16--live-wait-time— 手动设置直播列表刷新间隔(秒)--live-idle-timeout— 列表连续指定秒数无新分片时停止录制,默认关闭
🧭 想看源码?一条命令经过哪些模块?
读源码时跟着一条命令的数据流走最顺。你敲下一条下载命令后,程序依次经过五个阶段:
- 入口与参数解析:从 Program.cs 启动,加载配置文件与命令行参数,
CommandInvoker判断是打印帮助还是开始任务,解析实现在 CommandLine/。 - 清单解析:
StreamExtractor按内容类型在 Parser 工程里挑选解析器——M3U8 走 HLSExtractor,MPD 走 DASHExtractor2,ISM 走 MSSExtractor——输出轨道列表、分片列表与解密信息,入口在 Parser 工程,各解析器位于 Extractor/。 - 下载编排:点播任务交给 SimpleDownloadManager 分片并发下载,直播录制交给 HTTPLiveRecordManager 轮询清单并追加新分片,统一在 DownloadManager/ 里调度。
- 解密:CENC、AES-128、ChaCha20 等由进程内实现与 mp4decrypt 等第三方工具协作完成,代码在 Crypto/。
- 合并与混流:分片拼成完整文件后,调用 ffmpeg 或 mkvmerge 输出 mp4/mkv,核心逻辑在 MergeUtil.cs。
🛠️ 常见问题:显示乱、速度慢、解密失败
Windows 终端下进度条和颜色显示错乱,怎么办?旧版 Windows 自带终端不支持程序使用的输出方式,换 cmder 等第三方终端,或加--no-ansi-color去掉颜色。
下载速度偏低,先查什么?先提高--thread-count看并发是否用满;再用-R限速观察真实带宽;如果经常超时,调大--http-request-timeout。
报 403 或分片拉取失败?多半是平台在校验请求头,用-H传入需要的头;如果分片 URL 必须带上原链接的查询参数,启用--append-url-params。
解密失败怎么排查?先核对 KID 与密钥是否一一对应;仍不行就换一家引擎试试--decryption-engine FFMPEG。
直播录制丢数据?如果开着--live-pipe-mux,先怀疑它——管道模式在网络不稳时容易丢数据,关掉改用实时合并即可。
⚖️ 合规提醒与小结
注意:请只下载自己有权访问的内容,并遵守所在地区的法律法规;项目以 LICENSE 中声明的 MIT License 开源提供。
点播下载、解密、直播录制是 N_m3u8DL-RE 使用频率最高的三条路径,本文覆盖了它们各自的核心参数。完整参数以运行--help的输出和 README.md 为准;版本更新到项目 Releases 页面获取,遇到问题和改进建议到项目 Issue 区反馈。
【免费下载链接】N_m3u8DL-RECross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文.项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考