☰
N_m3u8DL-RE 实战指南:快速下载、解密并录制 m3u8、MPD、ISM 流
2026/10/23 4:14:39 网站建设 项目流程

N_m3u8DL-RE 实战指南:快速下载、解密并录制 m3u8、MPD、ISM 流

【免费下载链接】N_m3u8DL-RECross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文.项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE

m3u8 只是播放列表:本体被切成上千个小分片,部分还带 AES-128 加密,浏览器里"另存为"拿不到画面。N_m3u8DL-RE 是免费的跨平台下载器,支持 HLS、DASH、ISM 协议,负责把播放列表解析、分片解密、合并成可播放文件,三端行为一致。

先对号入座:这三类场景用得上

如果你的需求落在下面任意一类,就值得装一个:

  • 网课与课程存档:平台给的 m3u8 常带多语言音轨、广告段,你可以用正则挑出需要的轨,再按时间段只取想要的片段。
  • 直播录制与回看:HLS 或 DASH 直播流支持定时停录,也能从过去某个时间点补下已经错过的分片,不用开着软件盯着表。
  • 多轨源管理:一场演出或一部片源可能同时带多条音轨和字幕轨,工具能按条件批量挑出最佳质量,再混成一个文件。

如果只是想存一个现成的 .mp4 或 .ts 文件,普通下载器就够,不需要它。

三步完成安装并跑一次自检

第 1 步,按平台选安装方式。Windows、macOS、Linux 均可从发布页下载对应平台的压缩包,解压即可运行,不依赖额外运行时;Arch Linux 及其衍生版可用社区维护的 AUR 包n-m3u8dl-re-bin。从源码构建需先装好 .NET SDK:

# 克隆仓库后在 src 下构建整个解决方案 git clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE cd N_m3u8DL-RE/src && dotnet build N_m3u8DL-RE.sln

第 2 步,老系统注意终端。版本较低的 Windows 自带终端可能显示异常,换用 cmder 这类第三方终端运行。第 3 步,跑内置的 doctor 自检,它会检查程序版本以及 ffmpeg 等外部工具是否可用:

# 打印版本与环境检查结果 N_m3u8DL-RE doctor

手头没有链接时,仓库自带TestStreams.md测试流列表,可以先用其中任意一条走通全流程。

跑通最小命令,下载第一条流

下载前程序会先读取播放列表、识别协议类型,并打印全部视频、音频、字幕轨的分辨率、编码与语言,HLS、DASH 2.0、MSS 三套解析器内建在解析器模块里。不指定选轨时它自动挑最优组合并行拉分片,默认线程数 10:

# 指定保存目录,其余用默认值 N_m3u8DL-RE "https://example.com/course/lesson1.m3u8" --save-dir ./videos

结果判断:下载完成后临时文件默认自动删除,./videos目录里剩下最终可播放的文件,外加一份解析信息 json。音视频分开两条轨时,程序下载完会自动混流为一个文件。

常见任务实操:五个高频场景

用 KID 和 KEY 解出加密的 DASH 内容

目标:MPD 的视频带 CENC 加密,KID 与 KEY 已从请求中抓到。密钥按KID:KEY传入,同一个 KEY 对应多个 KID 就传多次:

# 传入解密密钥并指定输出文件名 N_m3u8DL-RE "https://example.com/protected.mpd" \ --key "4a3b2c1d-8e6f-4a5b-9c7d-1e2f3a4b5c6d:0f1e2d3c4b5a69788796a5b4c3d2e1f0" \ --save-name protected

结果判断:输出文件可直接播放,画面无马赛克花屏。默认解密程序是 mp4decrypt,环境里没有时可用--decryption-engine换 ffmpeg 或 shaka-packager。HLS 的 AES-128 与 ChaCha20 走内建实现、不依赖外部程序,源码见内建解密实现目录。

按语言与分辨率挑选轨道

目标:源里 1080p、720p 各有多条,只取最佳 1080p 加一条英语音轨,输出单个 mp4。选轨参数支持按分辨率、编码、语言、名称做正则匹配:

# 视频限定 1920 宽、音频限定英语,各取最佳 N_m3u8DL-RE "https://example.com/stream.m3u8" \ -sv res="1920*":for=best -sa lang=eng:for=best -M format=mp4

结果判断:命令行只列出命中的轨道,下载完生成一个 mp4。想同时保留多条匹配轨,把for=best改成for=all,并用-mt让多条选中的轨并行下载;完整字段语法见README 参数参考。

定时录下 90 分钟直播

目标:直播进行 3 小时,只要前 90 分钟;录制期间分片持续并入文件,结束后不必再等二次合并:

# 限定录制 90 分钟,边录边实时合并 N_m3u8DL-RE "https://example.com/live/manifest" \ --live-record-limit 01:30:00 --live-real-time-merge

结果判断:到达限时程序自动收尾退出,文件在录制过程中随时可播放。想补录开播前错过的节目,给--live-catchup传一个过去时间;网络稳定时还可加开--live-pipe-mux,让分片数据经 ffmpeg 直接写入 TS 文件。直播下载与合并引擎的逻辑见下载管理器目录。

只截取中间的时间段

目标:两小时的课只想要第 5 到第 20 分钟,不想等全量下载:

# 只获取 05:00 到 20:00 之间的内容 N_m3u8DL-RE "https://example.com/vod.m3u8" --custom-range 05:00-20:00

结果判断:范围按分片起始时间筛选,边界处的分片整片保留、不做精确裁切,所以成品时长会略大于 15 分钟。也可以按分片序号写,如--custom-range 10-表示从第 10 个分片取到结尾。

用 Cookie 和请求头绕开鉴权

目标:站点要求登录态或特定 User-Agent 才能取到分片,直接请求返回 403。用-H逐条附加请求头:

# 为清单与分片请求附加 Cookie 和 UA N_m3u8DL-RE "https://example.com/vod.m3u8" \ -H "Cookie: session=abc123" -H "User-Agent: Mozilla/5.0"

结果判断:这些头会作用于清单、密钥和分片三类请求。Cookie 条目多时,从浏览器导出 Netscape 格式的 cookie 文件后用--cookies cookies.txt传入更省事。

常用参数速查

下表只列上面任务里出现频率最高的参数,完整清单以N_m3u8DL-RE --help输出为准。

参数作用什么时候用
-sv/-sa/-ss按正则选视频/音频/字幕轨轨道多,要按语言、分辨率、编码收窄
--auto-select所有类型自动选最佳轨不想手写任何选择条件
--thread-count设置分片下载线程数,默认 10分片量大且网络稳定
--key传入解密密钥,格式 KID:KEY内容加密且已拿到密钥
--decryption-engine切换解密程序 MP4DECRYPT / FFMPEG / SHAKA_PACKAGER默认程序解密失败
--custom-range只下载指定时间或序号范围的分片只想要中间一段
--live-record-limit直播录制时长上限,HH:mm:ss 格式定时录制直播
-M指定混流容器格式音视频分离、想要单个文件
--sub-only+--sub-format只取字幕,输出 SRT 或 VTT只想要字幕文件
-H/--header附加请求头站点要求 Cookie 或 UA

出错先查这里

  • 混流报错提示找不到 ffmpeg→ 程序搜索路径里没有该可执行文件 → 安装 ffmpeg 后用--ffmpeg-binary-path指到它,再跑一次doctor确认。
  • 密钥已传却解密失败→ KID:KEY 字符串有多余空格,或密钥不属于当前 KID → 核对字符串;多个密钥用多个--key分别传入;仍不行时--decryption-engine FFMPEG换引擎重试。
  • 请求被站点拦截(403 或分片为空)→ 缺鉴权信息 → 补-H "Cookie: ..."或--cookies;需要代理时加--custom-proxy http://127.0.0.1:7890;排查阶段把--log-level调到 DEBUG 看完整请求日志。
  • 老版 Windows 终端输出乱码或卡住→ 该系统的自带终端对 ANSI 支持不全 → 在 cmder 等第三方终端里运行程序。

它覆盖 HLS/DASH/ISM 解析、解密与合并的完整链路,但各平台的鉴权方式无法保证。遇到解析不了的流或想要目前没有的参数,把命令和场景写进 Issues,能帮助迭代。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询