ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

N_m3u8DL-RE:m3u8 下载与直播录制,一条命令跑通全流程

N_m3u8DL-RE:m3u8 下载与直播录制,一条命令跑通全流程

N_m3u8DL-RE: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)、HLS(.m3u8)、MSS(.ism)三种清单,覆盖点播下载与直播录制。读完本文,你可以独立完成安装验证、跑通第一条下载命令,并按需截取时间段、录制直播。

先看结论:它能帮你解决什么

整片落盘:把一条 mpd/m3u8/ism 链接对应的完整内容下载到本地。适用判断:你手里有课程、剧集或赛事回放的地址,目标是拿到完整文件。

跟着直播走:持续跟踪直播清单并落盘分片,录到你指定的时长为止。适用判断:节目在固定时段播出,你需要全程留存而不是只取回放。

只取中间一段:只下载内容中指定时间区间的分片,前后部分不碰。适用判断:一整场录像里你只需要某几个片段,不想下载全部内容。

从拿到文件到第一条命令

程序基于 .NET 10 构建,Release 产物是自包含的可执行文件,装好即可运行,无需单独安装 .NET 运行时。

  1. 取产物:从 Release 页面下载与你系统匹配的压缩包(Arch 及其衍生发行版可走 AUR:yay -Syu n-m3u8dl-re-bin)。
yay -Syu n-m3u8dl-re-bin
  1. 解压或赋权:Windows 解压到任意目录即可;Linux 与 macOS 需给可执行文件加执行权限(macOS 额外chmod +x)。
chmod +x N_m3u8DL-RE
  1. 验证版本:输出版本号即说明文件与系统匹配。
./N_m3u8DL-RE --version
  1. 跑最小命令:只需输入和保存名两个要素,其余参数全部缺省。这条命令解析清单、自动选流、多线程抓分片并合并成成品。
./N_m3u8DL-RE "https://example.com/course.m3u8" --save-name my_course

参数即旋钮:一张表看懂默认行为

参数一句话作用不写会怎样
<input>清单链接或本地清单路径必填,不填无法运行
--save-name指定输出文件名用自动生成的保存名
--save-dir指定输出目录存到当前工作目录
-sv/--select-video按正则或 best 选视频轨自动挑选一条视频轨
-sa/--select-audio按正则或 best 选音轨自动挑选一条音轨
--thread-count下载线程数取本机 CPU 逻辑核数
--download-retry-count分片失败重试次数默认重试 7 次
--tmp-dir临时分片存放目录用默认临时目录

不写-sv、-sa时程序会自动挑选视频与音频轨道,多数清单不需要手动选流。未指定--thread-count时线程数取Environment.ProcessorCount,与你的 CPU 逻辑核数一致。合并完成后默认删除临时分片,分片数量校验默认开启,会核对实际下载数与清单预期是否一致。

四个高频任务,各给一条可直接粘贴的命令

录下整场直播并自动停

适用信号:目标是持续更新的直播流,录满指定时长即可收工。

这条命令开启实时合并并限定录制两小时后自动停止。

./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(到点自动停,不用手动中断)。

只剪出 5 到 20 分钟

适用信号:清单里的内容只需要某段,前后部分都不要。

这条命令只保留起始时间落在 5 到 20 分钟的完整分片。

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

与基础命令的差异:只多一个--custom-range,时间格式为 MM:SS 或 HH:MM:SS,也支持10-、-99这类按分片序号的写法;按整片截取,不做精确裁切。

取最高画质的一整部内容

适用信号:清单有多条视频轨和音轨,你要分辨率最高、码率最高的组合。

这条命令明确取分辨率最高的视频轨和码率最高的音轨。

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

与基础命令的差异:显式给了-sv best -sa best,不再依赖自动选轨,确保拿到最高规格。

批量跑多条清单

适用信号:输入是多个文件或多个链接,参数完全相同,适合写进循环。

这个循环对每条清单独立解析与合并,输出统一进./out目录,互不影响。

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

与基础命令的差异:输入来自循环变量、输出统一由--save-dir指定,其余参数与单条命令完全一致。

跑不通时按这张表查

现象最可能原因一条处置建议
老版本 Windows 终端乱码或无法运行系统自带终端不兼容换 cmder 等第三方终端运行
分片下载反复失败网络抖动致分片请求超时用--download-retry-count调大重试次数
临时文件占用空间过大临时目录所在分区不足用--tmp-dir指到空间更大的分区
稳定版与开发版行为不一致AUR bin 包与 git 包构建内容不同先用--version确认当前版本号

改代码前先看这里

模块职责相对路径
下载调度:点播下载、直播录制与合并策略DownloadManager
清单解析:MPD/M3U8/ISM 提取与轨道处理N_m3u8DL-RE.Parser
加解密:AES、ChaCha20 等解密工具Crypto
工具函数:合并、混流、清理等通用逻辑Util

提 Issue 前先检索仓库已有 Issue;确认无人提过后新建,描述中附上版本号、完整命令,以及用--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),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进