☰
N_m3u8DL-RE 全攻略:4 个场景一次跑通 m3u8 下载与直播录制
2026/10/22 1:43:08 网站建设 项目流程

N_m3u8DL-RE 全攻略:4 个场景一次跑通 m3u8 下载与直播录制

【免费下载链接】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 是跨平台流媒体下载工具,支持 m3u8 下载、DASH(.mpd) 与 MSS(.ism) 清单解析和直播录制。跟着下面四个场景往下走,读完你就能跑通自己的第一个下载。

30 秒看懂它到底在干什么

把 m3u8 想成点外卖时的菜单:菜单本身不含菜,只列了每道菜的编号和取餐口;真正进嘴的菜品,是后厨按编号一道道端出来的。N_m3u8DL-RE 干的就是这件事——读清单、按编号逐个取回分片、拼回完整文件。

边界说清楚:它管清单解析、分片下载、合并落盘;不管 DRM 破解,需要破解保护的内容它下不了;也不做下载之外的后期加工。看完安装部分,你将经历四个场景:完整下载、直播录制、时间段截取和批量循环,难度逐级上升。

装好并验证

程序基于 .NET 10 构建,Release 产物采用 AOT 静态编译,可执行文件自包含、解压即可运行,无需单独装 .NET 运行时;只有从源码自行编译时才需要 .NET 10 SDK。Windows 和大部分 Linux 发行版走同一条路:到 Release 页面取对应平台的压缩包,解压到任意目录,把该目录当作执行目录即可;macOS 取 macOS 产物解压后先加执行权限(首次运行若被安全策略拦截,在系统设置里放行);Arch 及其衍生发行版可以走 AUR 包管理器,bin 包是稳定版、git 包是开发版:

# macOS:解压后加执行权限 chmod +x N_m3u8DL-RE # Arch / 衍生发行版(AUR):bin 稳定版,git 为开发版 yay -Syu n-m3u8dl-re-bin # 所有平台统一验证 N_m3u8DL-RE --version

看到版本号就能开工。

从一条命令到四个场景

一条命令只有两个必填要素:输入和保存名,其余参数全部可缺省:

N_m3u8DL-RE "https://example.com/course.m3u8" --save-name my_course

回车之后程序按顺序做四件事:解析清单、按默认策略挑出视频与音频轨道、多线程抓取分片、合并成以 my_course 命名的成品。下面四个场景按复杂度递增排列,每个场景只讲和上一步不同的地方。

场景一:完整下载怎么配

拿到一条链接、想要整部内容,但想锁定最高画质,就把选流显式写出来。

N_m3u8DL-RE "https://example.com/course.m3u8" \ --save-name my_course -sv best -sa best

这行命令和上一步多出来的地方是-sv best -sa best:视频轨按分辨率取最高,音轨按码率取最高,替代默认自动选轨。坑:best 只按分辨率挑视频轨,码率最高的未必被选中,要精确指定就写正则,比如-sv "720"。

场景二:直播录制怎么配

直播流是滚动的,要录满两小时再停,就用这组参数。

N_m3u8DL-RE "https://example.com/live.m3u8" --save-name live \ --live-real-time-merge --live-record-limit 02:00:00

这行命令和上一步多出来的地方是--live-real-time-merge与--live-record-limit 02:00:00:前者让录制过程同步合成完整文件,而不是结束后才处理分片;后者限定录满两小时自动停止。坑:不配录制上限时程序不会自己停,得靠 Ctrl+C 手动收尾。

场景三:时间段截取怎么配

清单里只想要中间某一段、前后都不留,用--custom-range圈出来。

N_m3u8DL-RE "https://example.com/course.m3u8" \ --save-name part --custom-range 05:00-20:00

这行命令和上一步多出来的地方是--custom-range 05:00-20:00:时间格式为 MM:SS 或 HH:MM:SS,也支持按分片序号写,比如10-、-99。坑:它只保留起始时间落在区间内的完整分片,首尾不会精确裁切到秒。

场景四:批量循环怎么配

手头有一堆清单文件、参数全都一样,写进 for 循环逐条跑。

for url in list1.m3u8 list2.m3u8 list3.m3u8; do N_m3u8DL-RE "$url" --save-dir ./out done

这行命令和上一步多出来的地方是输入来自循环变量、输出统一收进--save-dir ./out,每条清单独立解析与合并,互不影响。坑:某条失败不会中断整个循环,建议每条都加--log-file-path落盘日志,方便回溯哪条出了问题。

参数与默认行为速查

参数作用缺省时行为
<input>清单链接或本地清单文件路径无,必填
--save-name指定输出文件名使用自动生成的保存名
--save-dir指定输出目录当前工作目录
-sv/--select-video按正则或 best 选择视频轨自动挑一条视频轨
-sa/--select-audio按正则或 best 选择音轨自动挑一条音轨
--thread-count下载线程数本机 CPU 逻辑核数
  • 选流:不写-sv、-sa时自动挑选视频与音频轨道
  • 线程:不写--thread-count时线程数取Environment.ProcessorCount
  • 临时文件:--del-after-done默认开启,合并完成后自动删除临时分片;--check-segments-count默认开启,会核对实际下载分片数与清单预期是否一致

卡住了?按这里查 🛠

老版本 Windows 终端里显示乱码或程序跑不起来?换成 cmder 等第三方终端中运行。系统自带终端与本程序不兼容,老系统上直接替换终端即可解决。

分片下载反复失败?把--download-retry-count调大即可,该参数默认每个分片异常重试 7 次。根因是网络抖动让分片请求超时,分片数量校验默认开启,最终失败会在结果里给出提示。

临时文件把所在分区塞爆?用--tmp-dir把临时文件指到空间更大的分区。临时文件默认随任务落盘,--del-after-done完成后会清理,先挪位置再确认磁盘回收更稳妥。

稳定版和开发版行为不一致?先跑--version确认当前版本号是否为最新。AUR 的 bin 包对应发布版、git 包对应开发版,构建内容本就不同;确认版本无误仍复现,再记录版本信息去反馈。

成品不在预期目录或文件名不对?补上--save-name和--save-dir这两个参数即可。两者缺省时走自动保存名与当前工作目录,显式写出来才可控。

源码在哪找 📂

职责目录
下载调度:点播下载、直播录制、直播回看与合并策略src/N_m3u8DL-RE/DownloadManager/
清单解析:MPD/M3U8/ISM 提取与轨道信息处理src/N_m3u8DL-RE.Parser/
加解密:AES、ChaCha20 等解密工具实现src/N_m3u8DL-RE/Crypto/
工具函数:合并、混流、清理、日志等通用逻辑src/N_m3u8DL-RE/Util/

提 Issue 前先在已有 Issue 中搜一遍是否有人提过相同问题;新建时在描述里附上--version输出的版本号、完整命令,以及用--log-file-path落盘的日志文件路径,方便复现与定位。

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

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

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

立即咨询