N_m3u8DL-RE 流媒体下载与直播录制实用手册:10 分钟从安装到批量处理
【免费下载链接】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 是一款跨平台的流媒体下载工具,支持 DASH(MPD)、HLS(M3U8)、MSS(ISM)三种清单格式,覆盖点播下载与直播录制两类任务,适合只会基础命令行操作、想把视频和直播保存到本地的用户。
三步拿到第一个文件
你手上有一条视频链接,想尽快把它存下来——这一节让你从零走到第一个成功结果。
第一步:拿到能直接跑的可执行文件。程序基于 .NET 10 构建,Release 产物采用 AOT 静态编译,自带运行时,解压即用;只有源码编译才需要 .NET 10 SDK。
- Windows:取对应平台的压缩包,解压到任意目录。
- Linux:Arch 系发行版可直接从 AUR 安装,
yay -Syu n-m3u8dl-re-bin;其他发行版取 Linux 产物后加执行权限。 - macOS:下载产物后执行
chmod +x N_m3u8DL-RE,首次运行若被系统拦截,在"系统设置"里放行即可。
第二步:验证安装。在解压目录里执行:
N_m3u8DL-RE --version能输出版本号,说明文件与系统匹配。
第三步:跑一条最小命令。一条命令只需两个要素:输入和保存名。
./N_m3u8DL-RE "https://example.com/course.m3u8" --save-name my_course执行后程序会自动解析清单、挑选视频与音轨、多线程抓取分片并合并,最终得到 my_course 命名的成品文件。如果清单里有多档画质,想明确锁定最高规格,加上-sv best -sa best取最高分辨率视频和最高码率音频;想改输出位置,追加--save-dir指定目录。点播下载到这里就完成了。
读懂下载行为:清单、分片与默认策略
你好奇程序"为什么这么下"——选哪条流、开几个线程、临时文件去哪了,答案都在这。
先弄清两个概念:
- 清单(MPD/M3U8/ISM):一份索引文件,本身不含媒体数据,只列出分片地址与编码参数。
- 分片:真正的媒体数据单元,程序按清单逐个抓取,再拼成完整文件。
理解这两点,三条默认策略就很好解释:
- 选流:缺省时程序自动挑选一条视频轨和一条音轨;只有你对自动结果不满意(比如想要 4K 而非 720p),才需要显式传
-sv、-sa。 - 线程数:缺省取
Environment.ProcessorCount,即本机逻辑核数;带宽紧张时用--thread-count调低,追求速度时调高。 - 临时文件:分片先落在临时目录,
--del-after-done默认开启,合并完成后自动清理;--check-segments-count也默认开启,会把实际下载分片数与清单预期比对,数量对不上会明确提示,帮你发现漏片而不是拿到残缺文件。
想深入看这些策略的实现,可以从下载调度模块入手:src/N_m3u8DL-RE/DownloadManager/。
常用参数工具箱:输入、输出、选流与性能
你不需要背下全部参数,按下表分组记住高频项即可——左列是作用,右列是不写时的缺省行为。
| 分组 | 参数 | 作用 | 缺省行为(不写时) |
|---|---|---|---|
| 输入 | <input> | 清单链接或本地清单文件路径 | 必填,无缺省 |
| 输入 | --cookies <FILE> | 读取 Netscape 格式 Cookie 文件,用于需要登录态的来源 | 不携带 Cookie |
| 输入 | -H, --header | 追加自定义请求头,如 User-Agent | 使用默认请求头 |
| 输出 | --save-name | 指定输出文件名 | 自动生成保存名 |
| 输出 | --save-dir | 指定输出目录 | 当前工作目录 |
| 输出 | --tmp-dir | 指定临时分片存储目录 | 系统默认临时目录 |
| 选流 | -sv, --select-video | 按正则、分辨率、码率等条件选视频轨,或写 best | 自动选一条视频轨 |
| 选流 | -sa, --select-audio | 按语言、声道等条件选音轨,或写 best | 自动选一条音轨 |
| 选流 | -ss, --select-subtitle | 选择字幕轨 | 不下载字幕 |
| 性能与行为 | --thread-count | 下载线程数 | 本机逻辑核数 |
| 性能与行为 | --download-retry-count | 单个分片异常时的重试次数 | 7 次 |
| 性能与行为 | -R, --max-speed | 限速,支持 Mbps/Kbps 单位,如 15M | 不限速 |
| 性能与行为 | --del-after-done | 完成后删除临时文件 | 开启 |
| 性能与行为 | --custom-range | 只下载指定时间区间或序号范围的分片 | 下载全部内容 |
场景演练:直播录制、截取时间段与批量清单
前面的点播流程解决不了这三类需求:内容还在持续更新、只要中间一段、或一次要处理多条清单。逐个来看。
📺 直播录制关键参数
什么情况下用:目标是持续更新的直播流,你要录到指定时长为止,而不是等直播结束。
./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限定录满两小时自动停止;不加这个参数,程序会一直跟到手动停止。- 如果错过了节目开头,
--live-catchup支持从历史时间点开始下载,覆盖首部分片数量的默认取值。
🎬 截取时间段:只留中间一段
什么情况下用:清单对应完整内容,但你只想要某一段,前后部分都不要。
./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-表示从第 10 片开始,-99表示只要前 100 片。
📦 批量清单处理
什么情况下用:输入是多个链接或多个本地清单,参数完全相同,比如频道列表、成片合集。
for url in list1.m3u8 list2.m3u8 list3.m3u8; do ./N_m3u8DL-RE "$url" --save-dir ./out done关键参数为何这样写:输入来自循环变量,参数只写一套;--save-dir ./out把输出统一收进一个目录,每条清单独立解析、独立合并,某一条失败不影响其余的。
避坑问答:下载卡住的四种常见情况
你的执行过程如果和下面描述的症状对得上,按对应问答处理即可。
老版本 Windows 终端显示乱码、甚至无法运行,怎么办?原因是系统自带终端与本程序不兼容。处置:换到 cmder 这类第三方终端中运行;仍异常的话,先用--version确认执行文件与系统架构匹配。
分片下载反复失败、报超时错误,怎么调?原因是网络抖动导致分片请求超时。处置:程序默认每个分片失败后重试 7 次,偶发波动通常自动恢复;如果网络环境普遍差,用--download-retry-count调高次数。分片数量校验默认开启,漏片会在结果中体现,据此判断是否需要重跑。
临时文件把磁盘占满了,如何处理?原因是临时目录所在分区剩余空间不足。处置:用--tmp-dir把临时文件指到空间更大的分区;合并完成后--del-after-done默认会清理临时分片,处理完回看磁盘占用是否回落即可。
稳定版和开发版行为对不上,是不是 Bug?原因是 AUR 的 bin 包对应发布版、git 包对应开发版,两者构建内容不同,行为差异未必是缺陷。处置:先执行--version确认当前版本号;已是最新版仍复现,记录版本信息后再反馈。
代码地图:按行为快速定位源码目录
你想看某个行为背后的实现或参与贡献,按职责对号入座:
- 下载调度——点播下载、直播录制、直播回看与合并策略: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),仅供参考