N_m3u8DL-RE m3u8 下载完整教程:7 个命令从安装跑通到直播定时录制
【免费下载链接】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 下载工具,同时支持 MPD(DASH)、m3u8(HLS)和 ISM(MSS)三种清单。你把链接丢给它,它替你做完解析轨道、多线程拉分片、解密和合并这些脏活,产出能直接放进播放器的完整媒体文件。需要把点播流存成文件、或者录一段固定时长的直播,这篇就是你的操作手册;只是想下单个 mp4 直链的人可以关掉了。
跑通:安装、验证、下第一条流
按平台装一种即可。Arch 及其衍生版有 AUR 包(该源非作者维护):
# Arch Linux 及其衍生版,安装稳定版 yay -Syu n-m3u8dl-re-bin # 想尝鲜开发版用这个 yay -Syu n-m3u8dl-re-gitWindows 没有包管理器捷径:到项目 Releases 页拿对应平台的压缩包,解压后直接运行里面的N_m3u8DL-RE.exe。老版本 Windows 自带终端跑不动本程序,遇到无响应或乱码就换 cmder 执行。想从源码构建的话:
git clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE cd N_m3u8DL-RE && dotnet build装完先验证,别急着下:
N_m3u8DL-RE --version N_m3u8DL-RE --help判定标准很具体:--version打印出形如N_m3u8DL-RE (Beta version) 20251027的版本号,--help完整列出--save-dir、--key这类全部参数。两条都能正常打印才算装对,打印不出来先解决安装问题,别往下走。
验证通过就跑第一条真实下载。我从官方测试流清单 TestStreams.md 里挑了一条无加密、多音轨多字幕的流:
N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd" --save-name "demo"✅ 成功信号:终端里分片进度走完,输出目录出现合并好的媒体文件,旁边还有一份同名.json(解析信息,--write-meta-json默认开启,可留可删)。
只给链接,零配置存下完整文件
你卡在哪:手上只有一个链接,想拿到整个视频,不想研究任何参数。
N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd"| 参数 | 作用 |
|---|---|
| 无 | 自动为视频、音频、字幕各挑一条最佳轨,完成后自动合并 |
--auto-select | 显式强制为所有类型选最佳轨,拿不准轨道时加它更稳 |
✅ 判定:输出目录里的合并文件双击能播,画面声音俱全。文件名冲突时程序会用流的分辨率、带宽等元数据自动生成唯一文件名,不会简单加.copy后缀。
多码率流只留 4K 和指定语言的轨
你卡在哪:流里码率从 240p 排到 4K,音频还有七八种语言,全下下来浪费带宽,只想要"4K 视频 + 英语音频"。
N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd" -sv 'res="1920*":for=best' -sa 'lang=en:for=best' -ss 'for=all'这条命令里-sv res="3840*":codecs=hvc1就是"4K 且 HEVC 编码"的写法(官方示例原文),上面换成1920*是为了让你在这条 1080p 测试流上能直接跑通;条件语法完全一样。
| 参数 | 作用 |
|---|---|
-sv | 用正则筛视频轨,条件可组合res、codecs、lang、ch等 |
-sa | 筛音轨,lang=en即只要英语 |
-ss | 筛字幕轨 |
for=best/for=all | best 只取最匹配的一条,all 把匹配的留下 |
✅ 判定:输出目录里只出现你命中的轨道对应文件,筛不中的码率压根不发请求——带宽就省在这一步。正则写不出来就先加--auto-select让程序代选。
只下字幕并指定 SRT 格式
你卡在哪:视频不用重新下,只想把 m3u8 里的字幕抠出来,转成播放器通用的 SRT。
N_m3u8DL-RE "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/master.m3u8" --sub-only --sub-format SRT这条用的是官方清单里的高级 HLS(fMP4 + VTT)示例流。
| 参数 | 作用 |
|---|---|
--sub-only | 只选取字幕轨道,音视频完全不拉 |
--sub-format SRT | 字幕输出类型,可选SRT(默认)或VTT |
--auto-subtitle-fix | 时间轴修正,默认 True,一般不用动 |
✅ 判定:输出目录出现.srt文件,挂到播放器里对一下台词时间点,不整体偏移就算成功。
只要中间一段,按时间裁剪下载
你卡在哪:两小时的片子只关心其中 15 分钟,不想下完整片再剪。
N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd" --custom-range 05:00-20:00--custom-range的四种写法(摘自--morehelp custom-range):
| 写法 | 含义 |
|---|---|
05:00-20:00 | 时间段:第 5 分钟到第 20 分钟的内容 |
0-10 | 分片序号:下[0,10]共 11 个分片 |
-99 | 前 100 个分片 |
10- | 从第 10 个分片开始往后的全部 |
✅ 判定:下载比完整片快得多,产出的文件放进播放器看时长,应只有约 15 分钟。
加密流如何配 key 解密保存
你卡在哪:流是 CENC 加密的,下完是一堆打不开的二进制,需要把密钥配进去。
N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p_ClearKey.mpd" --key "9eb4050de44b4802932e27d75083e266:166634c675823c235a4a9446fad52e4d"这条测试流的 KID:KEY 组合来自 TestStreams.md 里的官方标注,可直接复制。
| 参数 | 作用 |
|---|---|
--key KID:KEY | 冒号前是密钥 ID,冒号后是密钥本体;多组密钥就传多个--key;所有轨共用一个 KEY 时也可只写--key KEY |
--decryption-engine FFMPEG | 解密引擎,默认MP4DECRYPT,失败时可换FFMPEG或SHAKA_PACKAGER |
--decryption-binary-path | 指定 mp4decrypt 全路径,不在 PATH 里时用 |
✅ 判定:解密合并后的文件能正常播放,不花屏、不静音。如果你的流是 HLS AES 加密,对应的是另一组参数:--custom-hls-method(指定加密方式,如AES_128)加--custom-hls-key/--custom-hls-iv(接受文件、HEX 或 Base64)。
直播流录制固定时长后自动停
你卡在哪:想把直播录一段时间就自动收尾,不想人守着。
N_m3u8DL-RE "https://cmafref.akamaized.net/cmaf/live-ull/2006350/akambr/out.mpd" --live-perform-as-vod --live-record-limit 00:30:00 --save-name "live"第一条链接是官方清单里的 CMAF 直播示例。
| 参数 | 作用 |
|---|---|
--live-perform-as-vod | 按点播逻辑处理直播流 |
--live-record-limit | 录制时长上限,格式HH:mm:ss,录满即停 |
--live-real-time-merge | 可选,边录边拼成完整文件 |
--live-pipe-mux | 可选,通过管道 + ffmpeg 实时混流到 TS 文件;README 明确提示网络不稳时别开,管道读数据容易丢帧 |
✅ 判定:到设定时长后程序自行退出,输出目录里是一个完整的直播录像文件。
批量下载一份链接清单
你卡在哪:手里有一份地址清单,想挨个下完并统一落到一个目录。
存成batch.sh执行:
#!/bin/bash URLS=( "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd" "http://playertest.longtailvideo.com/adaptive/oceans_aes/oceans_aes.m3u8" ) mkdir -p ./videos for url in "${URLS[@]}"; do N_m3u8DL-RE "$url" --save-dir ./videos --auto-select --thread-count 8 done两个链接都出自官方测试流清单:一个无加密 MPD,一个 HLS AES 加密流,顺手把解密链路也验了。
| 参数 | 作用 |
|---|---|
--save-dir | 输出目录,统一收敛产物 |
--auto-select | 每条流自动选最佳轨 |
--thread-count | 下载线程数,默认是本机 CPU 线程数 |
✅ 判定:./videos里两条流各自的合并文件都齐了。想给多个同类轨道避免重名,还可以加--save-pattern "<SaveName>_<Resolution>"之类的命名模板。
核心机制速查
三张表记住,参数就不用再翻文档了,完整列表在 README.md。
轨道选择规则(-sv/-sa/-ss通用,-dv/-da/-ds是反向剔除):
| for 取值 | 行为 |
|---|---|
best(默认) | 只留最匹配的一条 |
best2 | 留最匹配的两条,如-sa lang="ja\|en":for=best2 |
all | 匹配的全留 |
worst | 留最弱的一条,测试对比用 |
res、codecs、lang、ch等条件都是正则,\|表示"或",例如lang="ja\|en"匹配日语或英语。
三种解密引擎:
| 引擎 | 调用的工具 | 怎么选 |
|---|---|---|
MP4DECRYPT(默认) | mp4decrypt | 速度最快,默认就用 |
FFMPEG | ffmpeg | 兼容性最好,手头有 ffmpeg 最省事 |
SHAKA_PACKAGER | shaka-packager | 功能最全 |
工具放 PATH 里即可,或用--decryption-binary-path/--ffmpeg-binary-path指全路径。
三种合并方式:
| 方式 | 原理 | 何时用 |
|---|---|---|
| 默认 | 调 ffmpeg 合并 | 标准情况 |
--binary-merge | 纯二进制拼接,不依赖 ffmpeg | fMP4/CMAF 分片 |
--skip-merge | 不合并,只留分片 | 想留分片备份 |
分离的音视频想混进指定容器,追加-M format=mp4或-M format=mkv:muxer=mkvmerge,详情跑--morehelp mux-after-done看。
排障:现象对应修复
分片反复失败、任务卡住——多半是网络不稳或默认 100 秒超时不够,直接加参数重跑:
N_m3u8DL-RE "<链接>" --download-retry-count 5 --http-request-timeout 300解密失败,或文件下完打不开——先检查--key是不是完整KID:KEY格式(只填 KEY 时仅限所有轨共用同一密钥的场景);仍不行就换引擎:
N_m3u8DL-RE "<链接>" --key "KID:KEY" --decryption-engine FFMPEG合并阶段提示找不到 ffmpeg——指全路径,或者干脆绕开 ffmpeg:
N_m3u8DL-RE "<链接>" --ffmpeg-binary-path "C:\Tools\ffmpeg.exe" # 或者 N_m3u8DL-RE "<链接>" --binary-merge下载速度上不去——线程开太多互相挤,调低--thread-count,同时把--http-request-timeout加大。
老版本 Windows 终端无响应或乱码——旧终端不支持本程序,换 cmder 运行。
动手修之前先N_m3u8DL-RE --version确认版本,很多坑新版已经修了。
收尾:下一步清单
- 拿 TestStreams.md 里第一条无加密流把上面的验证命令完整跑一遍,安装、网络、解密链路一次验完;
- 跑通后执行
N_m3u8DL-RE --morehelp select-video,把-sv/-sa/-ss的完整条件学一遍,之后就不用一直靠--auto-select代选; - 卡住先对照"排障"一节逐条执行修复命令,仍无解再带着
--version结果去项目 Issues 查同类问题。
本项目基于 MIT License 开源,仅限学习和技术研究用途:只下载你拥有合法权限的流媒体内容,一切法律后果由使用者自行承担。
【免费下载链接】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),仅供参考