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