news 2026/9/19 21:31:23

N_m3u8DL-RE:3步跑通 m3u8 下载与解密

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
N_m3u8DL-RE:3步跑通 m3u8 下载与解密

N_m3u8DL-RE:3步跑通 m3u8 下载与解密

【免费下载链接】N_m3u8DL-RECross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文.项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE

你手上是一个 m3u8 或 mpd 链接,浏览器只能看、存不了。N_m3u8DL-RE 是跨平台流媒体下载工具,给它链接,自动解析轨道、下载分片、合并成完整文件。

判断值不值得装

它能同时解析 DASH、HLS、MSS 三种清单,并用正则挑音视频字幕轨道,多数同类工具只覆盖其中一种。它也支持直播录制、限时长与实时合并,还内置 AES/ChaCha20 解密,带密钥的流也能处理。

跑通第一条 m3u8 下载命令

你只需要克隆源码并构建一次,就能得到一个可执行程序。构建完成后跑--version,能输出版本号说明装好了:

git clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE cd N_m3u8DL-RE && dotnet publish -c Release -o ./out src/N_m3u8DL-RE

先拿项目自带的公开测试流,加--skip-download只输出解析结果、不下载,用来验证安装。屏幕列出成组视频、音频、字幕轨道,各带分辨率和语言信息 ✅ 说明解析正常:

./out/N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd" --skip-download

去掉--skip-download,加--auto-select让程序为每种类型自动选最佳轨道,完成首次下载。看到当前目录出现first-test命名的成品文件,第一次 m3u8 下载就跑通了:

./out/N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd" --auto-select --save-name first-test

在源码里定位问题入口

如果你打开src/目录,最先看src/N_m3u8DL-RE.Parser/StreamExtractor.cs,它是解析清单的入口,流类型、轨道、加密方式的识别都从这里开始。问题出在下载阶段,再看src/N_m3u8DL-RE/DownloadManager/,点播与直播录制的任务调度都在里面。

做三件高频任务的实战配方

保存在线课程只要最高画质

目标:课程 m3u8 出一个 mp4,只留最高画质。这条命令让程序自选轨道,下载完成后把分离的音视频混流进 mp4 容器:

./out/N_m3u8DL-RE "课程m3u8链接" --auto-select --save-name python-course -M format=mp4

看到当前目录出现python-course命名的 mp4 即成功。

⚠️ 坑:-M依赖 ffmpeg,PATH 里没有时混流会失败,但分片下载其实已经完成。先把 ffmpeg 装进 PATH,或用--ffmpeg-binary-path指全路径再跑。

直播录制限时长边录边合

目标:录直播 m3u8,文件边下边成型,3 小时自动收工。这条命令开启实时合并并限制录制时长:

./out/N_m3u8DL-RE "直播链接" --save-name tech-conference --live-real-time-merge --live-record-limit 03:00:00 --thread-count 8

--live-real-time-merge边下边并入成品;--thread-count 8把并发拉到 8 线程。录到 3 小时后进程自行退出即成功。

⚠️ 坑:--live-record-limit只认HH:mm:ss,写3h会被直接拒绝。另外--live-keep-segments默认保留分片,录一整天时磁盘占用会非常可观。

下载加密流并输出 SRT 字幕

目标:带密钥的流正常出片,字幕转成通用 SRT。这条命令外部注入密钥、选最佳视音频、抓全部字幕:

./out/N_m3u8DL-RE "加密流链接" --key "KID:KEY" -sv best -sa best -ss all --sub-format SRT

--key接受KID:KEY组合,多组密钥就重复传参;KID 相同时只传 KEY 也行。出片文件旁出现.srt文件即成功。

⚠️ 坑:默认解密引擎是 MP4DECRYPT,机器上没有mp4decrypt时解密直接报错。已有 ffmpeg 的话加--decryption-engine FFMPEG复用即可。

按 m3u8 下载场景选参数

要一次下多条同类型流,加--save-pattern "<SaveName>_<Resolution>"把分辨率写进文件名防冲突;单流下载用默认命名就够。弱网频繁超时,加--http-request-timeout 300 --download-retry-count 5加预算;带宽足但速度慢,换成--thread-count 16。目标站点要走代理,加--custom-proxy http://127.0.0.1:8888;只想拿字幕,换成-ss all再配--sub-only。担心占满带宽,加-R 15M限速。

参数默认值什么时候改
--thread-countCPU 核心数带宽足但速度慢时调大
--http-request-timeout100 秒弱网频繁超时调大
--download-retry-count3分片失败多时加预算
--key流带加密、需外部密钥时
--decryption-engineMP4DECRYPT没有 mp4decrypt 换 FFMPEG
--sub-formatSRT要 VTT 字幕时
-R不限速不想占满带宽时
--log-levelINFO查不出问题时调 DEBUG

按症状逐条修复

症状:下载慢,进度条挪得极慢。 原因:默认线程数按 CPU 核心数,高带宽场景不够用。 修复:追加--thread-count 16重跑。

症状:日志里反复出现超时重试。 原因:默认 100 秒超时在弱网下等不到响应。 修复:追加--http-request-timeout 300 --download-retry-count 5

症状:解密失败,报 mp4decrypt 相关错误。 原因:默认解密引擎是 MP4DECRYPT,机器没装这个工具。 修复:追加--decryption-engine FFMPEG复用已有 ffmpeg。

症状:HLS 解密后画面花屏或报密钥错。 原因:程序把加密方式判断错了。 修复:追加--custom-hls-method AES_128(或 CHACHA20 / SAMPLE_AES)强制指定。

症状:Windows 终端输出乱码或直接退出。 原因:旧版系统自带终端不支持 ANSI。 修复:追加--no-ansi-color,或改用 cmder 执行。

下一步行动

  1. 拿项目文档列出的公开测试流跑一次--skip-download,确认解析链路正常。
  2. 对真实链接套用上面的任务配方,选不准轨道或报错时加--log-level DEBUG看详细日志。
  3. 把你常用的参数组合抄成自己的速查清单,下次按场景直接套用。

只下载你拥有合法权限访问的内容。

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 21:31:04

Gatsby 升级指南:语义化版本、依赖更新命令与常见问题排查

Gatsby 升级指南&#xff1a;语义化版本、依赖更新命令与常见问题排查 【免费下载链接】gatsby React-based framework with performance, scalability, and security built in. 项目地址: https://gitcode.com/gh_mirrors/ga/gatsby 导读 本篇指南围绕 upgrade-gatsby…

作者头像 李华
网站建设 2026/9/19 21:25:07

Shopee接口逆向:x-sap-Ri与x-sap-Sec签名生成全解析

做电商平台数据采集的人&#xff0c;这两年应该都能明显感觉到&#xff0c;Shopee的详情页接口已经不是当年随手一抓就能返回数据的时代了。打开商品详情页&#xff0c;随便点一个请求&#xff0c;Headers里都会带上两个非常显眼的参数&#xff1a;x-sap-Ri和x-sap-Sec。第一次…

作者头像 李华
网站建设 2026/9/19 21:23:55

KimiCode 跑 Kimi K3 长程 Agent,Base URL 填 TaoToken 兼容地址

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华