N_m3u8DL-RE 完全指南:一条命令下载 M3U8/DASH 流的 5 种玩法
2026/8/24 10:47:29 网站建设 项目流程

N_m3u8DL-RE 完全指南:一条命令下载 M3U8/DASH 流的 5 种玩法

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

你在浏览器里"另存为"却只存下一个 m3u8 文本文件?其实真正的视频藏在那些分段列表里。N_m3u8DL-RE 是一款跨平台的命令行流下载工具,支持 HLS(M3U8)、DASH(MPD)、MSS(ISM) 三种协议——给它一条链接,它自动解析多码率轨道、下载分片、解密并合并成单个可播放文件,点播和直播都能处理。

它能帮你做什么:3 个典型场景

这一节先帮你对号入座,看它是否正好解决你手头的问题。

  • 下载电影级点播流:输入 MPD/M3U8 主链接 → 交互式勾选 4K 视频、目标音轨和字幕 → 输出混流好的 MP4,多音轨各存一份
  • 录制整场直播:输入直播流链接 → 自动刷新播放列表、逐片下载并实时合并 → 得到一个连续可播的 TS/MP4 录像
  • 只抓字幕或某段时间:输入链接加过滤参数 → 只下中文字幕或第 5 到 20 分钟的分片 → 省掉整部片子的流量和时间

拆开来看:核心架构

这一节帮你搞清楚"下载一个链接"背后跑了哪些模块,以后读源码不迷路。

项目分三层,调用关系是 主程序 → 解析器 → 下载管理器:

  • 解析层src/N_m3u8DL-RE.Parser/:入口是StreamExtractor.cs,先嗅探内容——以#EXTM3U开头交给 HLSExtractor,含<MPD>交给 DASHExtractor2,<SmoothStreamingMedia>交给 MSSExtractor。每条轨道的 URL 生成前都会经过 UrlProcessor / KeyProcessor / ContentProcessor 三条"处理器链",这就是它为站点定制逻辑预留的扩展点。
  • 下载层src/N_m3u8DL-RE/DownloadManager/:点播走SimpleDownloadManager,多线程拉分片再合并;直播走SimpleLiveRecordManager2HTTPLiveRecordManager,负责轮询刷新播放列表和录制时长。
  • 扩展层src/N_m3u8DL-RE/Processor/:放具体站点的 UrlProcessor 实现。比如NowehoryzontyUrlProcessor.cs就是为某网站计算签名 URL 的,每个分片请求前都会调它的Process()补上secure=参数。

这样设计的好处是:核心下载流程对"站点差异"完全无感,适配新站点只需往处理器链里插一个类,不用动主程序。

动手试试:三个递进场景 🎬

这一节按"入门 → 进阶 → 高阶"排好顺序,照着做就能出片。

入门:交互式下载一个点播流

需求:把一条 MPD 链接存成 1080p 视频。直接运行N_m3u8DL-RE <你的链接>,程序列出全部轨道供你勾选,默认选最高码率,完成后自动合并成单文件。

进阶:正则选轨 + 只要一段

需求:只要 4K HEVC 视频加最佳英语音轨,且只下前 20 分钟。用到-sv-sa--custom-range三个选项,一行说清思路:

N_m3u8DL-RE <url> -sv "res=3840*:codecs=hvc1" -sa "lang=en:for=best" --custom-range -20:00 -M format=mp4

预期输出:一个只有 20 分钟内容的 MP4,而不是两小时的原始分片堆。

高阶:加密流 + 直播实时混流

需求:录制一条 CENC 加密直播,边录边合成。给--key KID:KEY提供密钥,程序自动调用 mp4decrypt 逐片解密;直播侧加--live-real-time-merge让分片下载即合并,网络够稳时再开--live-pipe-mux通过管道交给 ffmpeg 实时混流成 TS,录完直接可播。

让它变成你的样子:定制指南

这一节给三条改法,从改参数到写代码,难度逐级递增。

  1. 改配置--save-pattern "<SaveName>_<Resolution>"一改,输出名就从video.mp4变成video_1920x1080.mp4,批量下多路流时不再互相覆盖;-R 10M一行即可把下载限速到 10Mbps,不占满带宽。
  2. 换引擎:解密默认走 mp4decrypt,改成--decryption-engine FFMPEGSHAKA_PACKAGER即可,某些 CENC 流在 mp4decrypt 下报错时换引擎往往直接通过;混流同理,-M format=mkv:muxer=mkvmerge可用 mkvmerge 代替 ffmpeg。
  3. 写新处理器:在src/N_m3u8DL-RE/Processor/新建一个继承 UrlProcessor 的类,实现CanProcessProcess两个方法,再到Program.cs里照UrlProcessors.Insert(0, ...)的方式注册。项目自带的DemoProcessor.cs就是留给你抄作业的示例,改一下签名算法就能适配自己的目标站点。

下一步怎么走

这一节给你一条最短上手路线,和几个值得花周末的点子。

学习路径:先用TestStreams.md里的测试链接跑通一次完整下载(它列了多音轨、加密、直播等各种样例)→ 换一次--thread-count和选轨参数感受差异 → 照着 NowehoryzontyUrlProcessor 给自己常用的站点写一个 UrlProcessor。

周末实验

  • 定时录像机:用--task-start-at指定开始时间、--live-record-limit限定录制时长,配 cron 每日执行,直播录制全自动无人值守。技术要点是理解这两个参数与播放列表刷新间隔的配合关系。
  • 批量抓片脚本:把一批链接写进文件循环调用,配合--save-pattern--custom-range只采样每部片的关键片段。要点是先开--skip-download批量解析 meta.json,摸清各流结构再决定下载策略。
  • 广告分片清洗:摸清目标站点广告分片 URL 的规律,用--ad-keyword正则直接跳过,录出来就是无广告成片。

快速上手

git clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE cd N_m3u8DL-RE/src dotnet build -c Release

另外记得装好 ffmpeg,合并和混流都依赖它。跑通第一次下载之后,你唯一需要投入的就是想法:下一站想让它替你拿下什么流。

核心关键词:M3U8 下载工具长尾关键词:DASH 下载、HLS 直播录制、加密流解密下载、m3u8 命令行下载器

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

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

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

立即咨询