
N_m3u8DL-RE 实操教程一条命令下载、解密并混流 m3u8/MPD 流媒体【免费下载链接】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 是跨平台流媒体下载工具给它一个链接就能完成解析、下载、解密和混流直接产出可播放的 mp4 或 mkv。读完这篇你会跑通自己的第一次实际下载并知道成功长什么样、失败去哪里查。需求匹配自检先判断要不要用它动手前先过一遍省得白折腾你拿到的是 m3u8、MPD、ISM 地址或本地清单文件想产出能直接播放的成品 → 适合。内容带 AES-128、ChaCha20、CENC 加密且你能从抓包里拿到 KID 和 KEY → 适合解密环节交给工具。要录直播、按频道批量录 IPTV或只下点播里某一段 → 适合。只是存一个直链视频文件或要走平台私有 DRM 授权流程 → 帮不上忙直接离开。这篇写给刚下载完工具、准备敲第一条命令的人直链和 DRM 场景不用读下去。安装与 doctor 环境自检确认 ffmpeg 就绪安装三条路任选其一Windows / macOS / Linux到项目 Release 发布页下载对应平台的压缩包解压即用无需额外运行时。老版本 Windows 自带终端显示异常时换 cmder 这类终端运行。Arch Linux 及衍生版yay -Syu n-m3u8dl-re-bin。从源码构建需要 .NET SDKgit clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE cd N_m3u8DL-RE/src dotnet build N_m3u8DL-RE.sln看到Build succeeded即源码路线就绪报错多为缺 .NET SDK 或拉包失败。装好后先别碰下载链接跑一条环境自检N_m3u8DL-RE doctor判定标准报告逐项打印依赖状态必需的ffmpeg显示[ok]就算通过留档可执行N_m3u8DL-RE doctor --json doctor.json。如果 ffmpeg 显示[missing]或[error]说明没装或版本识别不了先装 ffmpeg装好的路径不在 PATH 里就用--ffmpeg-binary-path /path/to/ffmpeg显式指定。doctor 通过说明工具与依赖都就绪下一节把一条真链接交给它。最短主线用测试源跑通解析、下载与解密先用仓库自带的测试源证明工具没问题别一上来就用你的目标源。TestStreams.md 按协议列了一批源这里挑一条无加密的多音轨 DASH 源N_m3u8DL-RE https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd --save-dir ./out看三件事控制台打印出解析出的轨道列表 → 分片下载进度走完 → 自动合并收尾。成品出现在./out默认--write-meta-json开还会写一份解析信息 json可用来核对轨道结构。临时分片默认完成后自动清理--del-after-done默认 True。如果这一步失败含义是链接本身不通源挂了、链接过期或网络问题不是参数问题——换 TestStreams.md 里另一条重跑仍失败就跳到文末的收敛顺序。工具通了再走加密主线。测试源列表里附了一条 CENC 加密的 MPD 和它的密钥N_m3u8DL-RE https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p_ClearKey.mpd \ --key 9eb4050de44b4802932e27d75083e266:166634c675823c235a4a9446fad52e4d --save-dir ./out判定下载完后进入解密阶段./out里的成品音画正常可播。如果解密失败先检查--key里 KID 与 KEY 之间有没有多余空格、密钥是否确实属于这个 KID多个 KID 就多次传--key。格式没问题但默认 MP4DECRYPT 引擎跑不通就换引擎N_m3u8DL-RE URL --key KID:KEY --decryption-engine FFMPEG # 或 --decryption-engine SHAKA_PACKAGER--decryption-engine三个值对应不同的第三方程序实现对某些 CENC 方案兼容性不同依次试即可。重跑同一流程解密阶段通过即说明是引擎兼容问题。到这里解析 → 下载 → 解密链路已经验证过后面按任务取参数就行。按任务取参数选流、鉴权、部分下载与直播录制挑最优轨并自动混流成 mp4不想分辨哪条流分辨率高时让程序代选并自动把分离的音视频混到一起N_m3u8DL-RE https://example.com/stream.m3u8 -sv best -sa best -M formatmp4-sv best选最佳视频轨-sa best选最佳音轨也可加lang、codecs、res等条件细节用--morehelp select-video查。-M formatmp4表示完成后混流进 mp4 容器想让 mkvmerge 干活就写-M formatmkv:muxermkvmerge。判定./out里多出一个带音画的 mp4而不是分离的音视频文件。请求被拦补请求头、Cookie 与代理出现 403 / 401、或清单直接拉不动多数是缺 Cookie 或 User-Agent。头少就直接补N_m3u8DL-RE https://example.com/vod.m3u8 \ -H Cookie: sessionabc123 \ -H User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)头多就用浏览器导出的 Netscape 格式文件--cookies cookies.txt它会按域名、路径、有效期匹配清单、密钥、分片都带上与-H Cookie: ...同时使用时以手动请求头为准。判定请求不再 403 / 401清单与分片都能拉下来。网络走代理更稳就加--custom-proxy http://127.0.0.1:8888默认读取系统代理--use-system-proxy默认 True想绕过就关掉它。只留字幕轨或只下中间某段只要字幕时用--sub-only要 VTT 输出就加--sub-format VTT默认 SRTN_m3u8DL-RE URL --sub-only -ss name中文:forall --sub-format VTT-ss用正则筛轨forall保留全部命中。判定输出目录只出现 .srt或 .vtt文件没有视频。只想要点播中间一段用--custom-range按分片起始时间筛保留完整分片、不做精确裁切N_m3u8DL-RE URL --custom-range 05:00-20:00省略起点表示从头--custom-range -00:26只下前 26 秒也支持按分片编号--custom-range 10-。判定成品时长大致落在 5–20 分钟区间分片完整可播。直播录制定时停并回看历史内容直播场景用--live-record-limit设录制时长录满自动收尾--live-real-time-merge边录边合并N_m3u8DL-RE https://example.com/live/manifest \ --live-record-limit 01:30:00 --live-real-time-merge判定录满 01:30:00 后自动停止并产出合并文件。想省一次落盘可加--live-pipe-mux走管道 ffmpeg 混流但弱网容易丢分片网络不稳别开。要录过去的节目--live-catchup 01:00:00从一小时前起录也可传具体日期时间。IPTV 频道列表m3u 文件能直接录用-sv name...按频道名筛N_m3u8DL-RE channels.m3u -sv name^Channel:forall --live-record-limit 00:03:00forall同时录多个匹配频道判定是各频道分别生成录制文件。常用参数速查参数作用何时用-sv/-sa/-ss按正则选视频 / 音频 / 字幕轨支持res、codecs、lang、forbest等条件多轨内容挑流-H/--cookies补请求头 / 读 Netscape Cookie 文件请求被拦截--key/--decryption-engine传解密密钥 / 切换 FFMPEG、MP4DECRYPT、SHAKA_PACKAGER加密内容--thread-count覆盖下载线程数默认 10分片多、想提速或限资源--custom-range按时间或分片号只下载部分分片只取点播中间段--sub-format字幕输出 SRT 或 VTT只取字幕--live-record-limit直播录制时长上限定时录制--log-level日志级别DEBUG 最全排错不想每次重敲可存进配置文件程序启动自动读 Linux / macOS 的~/.config/N_m3u8DL-RE/config.conf或 Windows 的%APPDATA%\N_m3u8DL-RE\config.conf语法与命令行一致优先级为命令行 配置文件 内置默认值。参数都认识之后跑自己的真实源才容易卡住下一节给固定的收敛顺序。卡住时按这 5 步排查收敛跑真实源出问题按下面顺序来代价从低到高开详细日志重跑。加--log-level DEBUG --log-file-path /path/to/log.txt在日志里看完整请求记录。看清单、密钥、分片三类请求里哪类先失败问题就在哪一环。重跑N_m3u8DL-RE doctor。看 ffmpeg 和解密工具的状态行出现[missing]或[error]说明是依赖问题而非源的问题。官方也要求先确认软件是最新版旧版问题可能已修复。对照测试源。重跑第三节那两条命令。测试源通、你的源不通说明问题在你的源鉴权或加密配置回去补请求头或核对密钥。换策略或引擎。解密失败把--decryption-engine三个值依次试多 KID 场景确认每个 KID 都配了对应密钥合并结果异常时再考虑--ffmpeg-concat-mode或--binary-merge换合并方式。进源码。解析逻辑在 src/N_m3u8DL-RE.Parser/解密实现在 src/N_m3u8DL-RE/Crypto/完整参数说明以仓库 README.md 为准单个选项的详细帮助用--morehelp OPTION查看。多数卡点都能靠DEBUG 日志定位到失败请求 → 补鉴权或换引擎这个循环收敛真正需要读源码的情况很少。【免费下载链接】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),仅供参考