☰
N_m3u8DL-RE 实战:一条命令搞定 m3u8 下载、直播录制与带密钥解密
2026/10/15 21:04:47 网站建设 项目流程

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(HLS)、mpd(DASH)或 ism(MSS)链接,它负责解析播放列表、并发拉取分片、合并输出、按需解密,最后产出可直接播放的成品文件。本指南按四个真实任务推进——整片下载、定点截取、直播录制、加密流解密——适合手里有链接、想在终端里快速拿到本地文件的用户。

5分钟装好 N_m3u8DL-RE 并确认版本

两种拿法:从 Releases 下载与你系统对应的压缩包,解压得到独立可执行文件,放进 PATH;或者拿源码自己构建:

git clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE

Arch Linux 及衍生版可直接装 AUR 包:n-m3u8dl-re-bin(稳定版)或n-m3u8dl-re-git(开发版),用yay -Syu n-m3u8dl-re-bin一条命令完成。

装完先跑这条验证命令,终端应输出一行版本号(如N_m3u8DL-RE 0.6.0)即表示环境正常:

N_m3u8DL-RE --version

✅ 到这里就通了:版本能打印出来,后面所有命令都以这个可执行文件为前缀。

把 m3u8 视频一条命令存成一个文件

这是最高频的场景:手里有一个可公开访问的点播链接,想存成本地文件。解析三种协议的逻辑都在 src/N_m3u8DL-RE.Parser/,分片调度在 src/N_m3u8DL-RE/DownloadManager/,你不需要关心内部,直接跑:

N_m3u8DL-RE "https://example.com/video/index.m3u8" --save-name 我的视频 --save-dir ./out --auto-select

参数逐个说:

  • --save-name:成品文件名,不加扩展名;
  • --save-dir:输出目录,不存在会自动创建;
  • --auto-select:所有类型的轨道自动挑最佳,不用写任何筛选条件;
  • 想精确控制时,把--auto-select换成-sv best -sa best(正则选最佳视频轨、最佳音轨,写法如res="1920*"、lang=en:for=best);
  • 音视频分离时想合成一个文件,追加-M format=mp4(也可-M format=mkv:muxer=mkvmerge)。

跑完你会看到:终端进度条走完,./out下多出可播放的成品文件,同时默认还会写一份日志和解析结果的 json 元数据。用播放器打开确认画面、声音、时长正常,就算成功。

只下中间一段:用 --custom-range 圈定分片

整片太大、只需要其中一段时,用--custom-range限定范围,支持时间段和分片序号两种写法:

N_m3u8DL-RE "<链接>" --save-name 片段 --custom-range 05:00-20:00

参数逐个说:

  • 05:00-20:00:按时间,只下第 5 分钟到第 20 分钟的内容;
  • 按序号则写成0-10(共 11 个分片)、10-(第 10 个起往后)、-99(前 100 个分片);
  • 大文件下载中断后,也可以--custom-range 10-配合--skip-download跳过已有分片、只补缺失部分再合并。

跑完你会看到:成品文件时长约等于你圈定的区间,而不是整片;分片数量默认会自动核对(--check-segments-count默认开启),数量不符会在日志里报错,别忽略。

直播录制一条命令搞定

正在直播的 m3u8,想录固定时长并实时合并,用这条:

N_m3u8DL-RE "<直播链接>" --save-name 直播 --live-real-time-merge --live-record-limit 01:00:00

参数逐个说:

  • --live-real-time-merge:边下边合,不在本地堆积分片;
  • --live-record-limit 01:00:00:按HH:mm:ss限时,到点自动结束;
  • --live-wait-time <秒>:手动指定播放列表刷新间隔,信号不稳的流调小些;
  • --download-retry-count 10:每个分片失败后的重试次数(默认 3),录直播建议调高;
  • --task-start-at yyyyMMddHHmmss:预约录制,到这个时间点才开始,配合定时任务很方便。

跑完你会看到:录满设定时长后进程自动退出,输出目录里是合并好的直播文件。直播中断后重跑原命令即可续录。

加密流解密:密钥从浏览器里抓出来带上

流用了 AES-128 或 CENC 加密时,播放列表只有密文分片。密钥一般在浏览器开发者工具的网络请求里能抓到,格式是KID:KEY(两段都写十六进制)。内置的 AES、ChaCha20 实现见 src/N_m3u8DL-RE/Crypto/,CENC 类加密则调用 mp4decrypt 等外部工具完成:

N_m3u8DL-RE "<加密流链接>" --save-name 解密后 --key "eb676abb:100b6c20"

参数逐个说:

  • --key:可重复写多次对应多组KID:KEY;所有分片密钥相同时只写 KEY 部分即可;
  • --key-text-file 路径:多轨道多密钥、手敲太累时,从文件里按 KID 查 KEY;
  • --decryption-engine FFMPEG|MP4DECRYPT|SHAKA_PACKAGER:选外部解密工具,默认MP4DECRYPT,报错时换一个试试;
  • --decryption-binary-path:工具不在 PATH 里时指定可执行文件全路径;
  • --mp4-real-time-decryption:分片实时解密,大文件时省临时空间。

跑完你会看到:进度条中多了解密环节,产物是正常可播放的明文文件;如果解密阶段报工具找不到,先用--decryption-binary-path指全路径再跑。

批量下载:一行一个链接,脚本循环跑

同一批链接反复要下时,把链接逐行存进urls.txt,循环执行:

while read -r url; do N_m3u8DL-RE "$url" --save-dir ./out --save-name "vid_$(date +%s)"; done < urls.txt

这里用时间戳做文件名保证互不覆盖;更推荐--save-pattern "<SaveName>_<Resolution>_<Language>",用流自身的元数据(分辨率、语言、编码、带宽等)拼出唯一文件名,多条流同时下也不会重名。

跑完你会看到:urls.txt里每条链接对应./out下一个独立文件,逐条检查文件是否完整即可。

现象→参数反查表:慢的时候先动哪里

调优顺序建议:一次只改一个参数,加线程→调超时→动代理,方便定位问题。

现象先动哪个参数
带宽还有富余,想再快些--thread-count N(默认等于 CPU 核心数,点播可试 16)
网络波动、分片频繁失败--download-retry-count(默认 3,直播建议 10 以上)
服务器响应慢、老超时--http-request-timeout(默认 100 秒)
要给别的任务留带宽-R 15M(单位 Mbps/Kbps,如15M、100K)
分片 403、需要登录态-H "Cookie: xxx" -H "User-Agent: xxx"逐条加请求头
走代理加速--custom-proxy http://127.0.0.1:8888(--use-system-proxy默认开启,一般不用动)
临时文件占满小盘--tmp-dir指到大盘;完成后删临时文件的开关--del-after-done默认是开的,别关

⚠️ 代理只影响拉流请求:代理通了但分片 403,通常是请求头缺目标站点的 Cookie,配合-H一起补上。

故障对照清单:下载失败时查这里

症状可能原因对应处理
命令没有任何输出老版本 Windows 自带终端不支持该程序的输出格式换用 PowerShell 新版终端或 cmder 再跑
速度远低于带宽上限设了-R限速、线程偏低,或分片被服务器串行化确认没设-R,再调--thread-count
下载成功但文件打不开没给密钥,或KID:KEY格式不对(须两段十六进制)核对--key格式,确认解密工具已安装
合并阶段报 ffmpeg 错误混流依赖的 ffmpeg 不在 PATH 里安装 ffmpeg 进 PATH,或--ffmpeg-binary-path指全路径
同时下多条流互相覆盖保存名相同加--save-pattern让文件名带区分变量
直播录到一半缺分片刷新间隔太长或抖动后重试没救回来调小--live-wait-time,--download-retry-count调到 10 以上
403,分片全部拉不下来请求头缺登录态或被风控从浏览器复制 Cookie 与 User-Agent,用-H逐条加上
想断点续传大文件整片重下太浪费--custom-range 10-补下剩余分片,配--skip-download直接合并

适合谁,不适合谁

它是纯命令行工具:有链接、要批量、要解密的场景很趁手;没有技术背景、想要图形界面或批量管理后台的用户不适合,它对平台级强 DRM 也没有通用破解能力。下载内容前请确认你拥有合法权限,仅用于学习和研究,遵守所在地法律法规。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询