N_m3u8DL-RE:跨平台流媒体下载指南
【免费下载链接】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 构建,覆盖 Windows、Linux、macOS 三大平台,以单文件可执行程序分发,无需额外依赖环境。
一条命令跑通
获取可执行程序。这一步的目的是拿到能直接运行的二进制文件。Arch Linux 用户可从 AUR 安装,其他平台用户可从仓库获取源码后用 .NET SDK 构建。
# 从源码构建 Release 版本 git clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE cd N_m3u8DL-RE/src dotnet build -c Release输入链接发起下载。执行后工具会解析播放列表、选择默认轨道并逐片下载。
N_m3u8DL-RE "https://example.com/video.m3u8"确认文件生成。输出文件默认写入当前目录,可用--save-dir指定其他位置;程序同时生成一份解析结果的 json 元数据文件(--write-meta-json默认开启)。
N_m3u8DL-RE "https://example.com/video.m3u8" --save-dir "~/Videos"如果只想完成下载,到这里就够了。
能力速览
协议支持:DASH/HLS/MSS 三种协议的点播与直播。输入.mpd、.m3u8、.ism文件即可,直播流可用--live-perform-as-vod转为点播方式下载。
轨道选择:-sv/-sa/-ss用正则筛选视频、音频、字幕,例如-sv res="3840*":codecs=hvc1只留 4K HEVC 视频;-dv/-da/-ds做反向排除。
输出控制:--save-pattern支持<SaveName>、<Resolution>等变量命名;--skip-merge、--skip-download可只解析不落地,方便调试;--binary-merge启用二进制合并。
加密与直播:--key KID:KEY指定 HLS 解密密钥,配合--decryption-engine选择解密引擎;--live-real-time-merge开启 m3u8 直播录制的实时合并,--live-record-limit 01:00:00限制录制时长。
典型场景实战
点播画质选择:下载课程视频前,通常要先确定拿哪个分辨率、哪条音轨。
N_m3u8DL-RE "https://course.com/lecture.mpd" \ -sv res="3840*":codecs=hvc1:for=best \ -sa lang=zh:for=best \ --save-dir "~/Courses" \ --save-name "第01讲"执行后工具从所有视频中选出 4K HEVC 最高码率的一条,配中文音轨,合并为单一文件。DASH 画质选择的核心就是-sv的res、codecs、for三个字段组合。
直播实时录制:直播流持续更新播放列表,需要边录边合并,否则结束后还要二次处理。
N_m3u8DL-RE "https://live.example.com/stream.m3u8" \ --live-real-time-merge \ --live-record-limit 02:00:00 \ --live-keep-segments \ --save-name "直播录制"录制 2 小时后自动停止,分片合并为完整文件,同时保留原始分片(--live-keep-segments默认开启)。网络不稳定时不要追加--live-pipe-mux,管道模式在丢包环境下容易丢直播数据。
批量下载加解密:多个加密的 MPD 文件共享同一份密钥时,用密钥文件按 KID 匹配解密。
N_m3u8DL-RE "https://vod.example.com/film.mpd" \ --key-text-file ~/keys.txt \ --decryption-engine MP4DECRYPT \ --ad-keyword "cmccads" \ --save-pattern "<SaveName>_<Resolution>_<Language>"密钥文件按KID:KEY逐行存放,程序自动匹配;--ad-keyword用正则过滤广告分片,命名模板保证多流输出不重名。
关键参数按用途分组
画质与音频:需要锁定分辨率、编码、语言或剔除低质量流时调整。-sv/-sa/-ss接收id=REGEX:lang=REGEX:codecs=REGEX:res=REGEX:frame=REGEX形式,for=best取最优、for=all全选、for=best2取最优两条;--auto-select直接自动选择所有类型的最佳轨道。
保存与命名:需要固定输出目录或避免同名文件覆盖时调整。--save-dir设输出目录,--save-name设文件名,--save-pattern用变量模板生成唯一文件名,--log-file-path把日志写入文件便于排查。
网络调优:带宽受限时用-R 15M限速(单位 Mbps 或 Kbps);-mt并发下载音视频字幕;--use-system-proxy默认开启,需要指定代理时用--custom-proxy "http://127.0.0.1:8888"。
| 参数 | 推荐值 | 适用情况 |
|---|---|---|
--thread-count | 默认 CPU 线程数 | 分片多的大文件;共享带宽时手动调小 |
--http-request-timeout | 100(秒) | 弱网环境调大,默认 100 秒 |
--download-retry-count | 3 | 单片失败自动重试,默认 3 次 |
-R | 15M / 100K | 需要限速时 |
--custom-proxy | http://127.0.0.1:8888 | 关闭系统代理后走自定义代理 |
加密与范围控制:遇到加密流或部分下载需求时使用。--key KID:KEY传解密密钥,KEY 相同的所有流可直接--key KEY;--decryption-engine在 MP4DECRYPT、FFMPEG、SHAKA_PACKAGER 间切换;--custom-range "05:00-20:00"只下载第 5 到 20 分钟,--custom-range -99只下载前 100 个分片。
排错手册
旧版 Windows 终端显示异常。原因:Windows 7 及以下系统终端不支持本程序的输出。解法:换用 cmder 运行,或加参数关闭颜色输出。
N_m3u8DL-RE "<url>" --no-ansi-color直播录制中途丢分片。原因:--live-pipe-mux的管道模式由 ffmpeg 持续读取数据,网络不稳时容易丢失。解法:改用普通实时合并,结束后由程序落盘合并。
N_m3u8DL-RE "<直播url>" --live-real-time-merge解密后文件无法播放。原因:密钥格式与流不匹配,或解密引擎选择错误。解法:确认--key KID:KEY中 KID 与流的标识一致;AES-128 流可换引擎重试。
N_m3u8DL-RE "<url>" --key KID1:KEY1 --decryption-engine FFMPEG多流下载时文件名互相覆盖。原因:同名流同时落地,默认自动加元数据区分,但命名不可控。解法:用--save-pattern显式指定模板变量。
N_m3u8DL-RE "<url>" --save-pattern "<SaveName>_<Resolution>_<Bandwidth>"部分分片下载失败。原因:弱网下超时或单片重试次数不够,默认超时 100 秒、重试 3 次。解法:调大超时与重试,并确认分片数量校验结果。
N_m3u8DL-RE "<url>" --http-request-timeout 180 --download-retry-count 5源码入口
如需二次开发或调试,参考以下入口;否则可跳过。
- src/N_m3u8DL-RE/Program.cs:程序主入口,初始化终端状态与 UI 语言。
- src/N_m3u8DL-RE/CommandLine/:命令行参数解析与选项定义。
- src/N_m3u8DL-RE/Downloader/:分片下载核心逻辑。
- src/N_m3u8DL-RE/DownloadManager/:点播与直播下载任务编排。
- src/N_m3u8DL-RE.Parser/Extractor/:DASH、HLS、MSS 三种协议的解析提取。
- src/N_m3u8DL-RE/Crypto/:AES、ChaCha20 解密实现。
N_m3u8DL-RE 的定位是把一条流媒体链接变成完整的本地文件,中间的解密、合并、命名、直播录制全部内置。建议先运行N_m3u8DL-RE --help查看完整参数列表,再用--morehelp select-video之类命令查看单个参数的详细规则。
建议先读:
- 完整文档:README.md
- 参数详解:README.md 命令行参数章节
- 源码目录:src/
【免费下载链接】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),仅供参考