
N_m3u8DL-RE 流媒体下载实战M3U8、MPD 一键转 MP4 的完整命令手册【免费下载链接】N_m3u8DL-RECross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文.项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE浏览器里能播的视频粘到终端跑下载器回来的却是一串 403 和一个打不开的文件。N_m3u8DL-RE 就是干这个活的跨平台的 DASH/HLS/MSS 下载工具点播、直播通吃最终产物是你能直接播放的 MP4 或 MKV。搞懂 N_m3u8DL-RE 的四步流水线先读目录页再抓分片它干的事就四步解析目录文件、多线程拉分片、合并、混流。M3U8 是 HLS 的目录页MPD 是 DASH 的目录页真正的画面藏在一个个分片里。所以第一次跑它你看到的不是进度条而是一张解析结果表格——每个视频、音频、字幕轨道的分辨率、带宽、编码、加密方式选哪条、怎么下全在这一步定下来。这几个参数默认值先记牢参数作用什么时候需要调--thread-count下载线程数默认等于本机 CPU 线程数分片多但跑不满带宽时加--download-retry-count单个分片失败的重试次数默认 3弱网环境--http-request-timeoutHTTP 请求超时秒默认 100慢速源站频繁超时-mt选中的音视频字幕并发下载默认关分片少、多轨道时-R限速如-R 10M想省带宽--tmp-dir临时分片目录磁盘紧张或排障--del-after-done完成后删临时文件默认开排障时关掉上手从安装到第一条成功下载Linux 上装好并验证版本最省事的路径是源码编译产物是个单文件可执行git clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE cd N_m3u8DL-RE dotnet build src/N_m3u8DL-RE.sln -c Release sudo cp src/N_m3u8DL-RE/bin/Release/net6.0/N_m3u8DL-RE /usr/local/bin/ N_m3u8DL-RE --version跑完你该看到一行带日期号的版本号。Windows 直接下载 Release 里的 exe 丢进 PATH 即可老版本 Windows 自带终端可能跑不动换个 cmder 就行。拿测试流跑第一次下载仓库自带一批测试流列表在 TestStreams.md。第一条就挺好N_m3u8DL-RE https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd \ -sv best -sa best -M formatmp4 \ --save-dir ./downloads --save-name first_test-sv best选最佳视频、-sa best选最佳音轨-M formatmp4是收尾混流的关键没有它你只会得到一堆分开的 m4s。跑完终端会先打出轨道表格再出现进度条./downloads里得到一个 mp4 和一份解析出的 meta json。把音轨、字幕挑到最合适选轨参数都是正则写不熟正则的人建议先只用best和all两个词N_m3u8DL-RE $MPD_URL \ -sv res3840*:forbest \ -sa langzh:forbest \ -ss name中文:forall \ --sub-format VTTres3840*匹配所有 4K 视频langzh匹配中文音轨forbest2则是最佳的前 2 条。--sub-format只接受 SRT 和 VTT 两个值默认 SRT。实战加密流和直播录制给加密流指定密钥带 CENC/AES-128 加密的流浏览器会自己走密钥交换命令行得你手动喂。最关键的就是--keyN_m3u8DL-RE $ENCRYPTED_URL \ --key 9eb4050de44b4802932e27d75083e266:166634c675823c235a4a9446fad52e4d \ --decryption-engine MP4DECRYPT \ --save-name cenc_test只有一把 KEY 且所有轨道共用时直接--key KEY即可多音轨各用各的 KEY 就每行一对KID:KEY。引擎默认 mp4decrypt换成 FFMPEG 或 SHAKA_PACKAGER 常能救活个别格式挑刺的流。把直播录成 MP4直播流和点播流的目录页不一样它没有总时长每次刷新只露出最新的十几个分片。所以要靠--live-record-limit告诉程序录多久就停N_m3u8DL-RE $LIVE_M3U8_URL \ --live-record-limit 2:00:00 \ --live-real-time-merge \ --live-wait-time 5 \ -M formatmp4 \ --save-name live_record--live-real-time-merge实时合并分片边录边长成一个 ts--live-wait-time 5是列表刷新间隔断线后也按这个节奏重连。录满 2 小时自动收尾混流。网络不稳时关掉--live-pipe-mux这类管道方案README 里明确写了管道读数据容易丢直播数据。效率一次只跑到 2MB/s 的排查过程按顺序排除三个瓶颈假设你只看到 2MB/s按这个顺序查基本能定位到元凶# 1. 看默认线程数是否吃满带宽默认CPU线程数这里手动拉高 N_m3u8DL-RE $URL --thread-count 16 -sv best # 2. 分片少时多线程也没用改并发拉轨道 N_m3u8DL-RE $URL -mt -sv best -sa best -ss best # 3. 限个速自测跑满 10M 说明网络没问题瓶颈在源站 N_m3u8DL-RE $URL -R 10M -sv best第 3 步是关键判断限速 10M 能跑满说明你的链路没问题慢在源站限速或单连接限制此时加线程收益递减不如换个时间再下。排障让现场能复现403先用 curl 验请求头先别怪工具用 curl 复刻一次请求curl -I $M3U8_URL \ -H User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) \ -H Referer: https://example.com/watch \ -H Cookie: sessionidabc123curl 通了、程序 403就把这几组头原样用-H喂给 N_m3u8DL-REcurl 也 403那是 Cookie 过期或 IP 被限跟工具无关。解密失败先保住现场文件下完了但播放器报花屏或损坏多半是密钥没对上。排查时把现场留住N_m3u8DL-RE $ENCRYPTED_URL \ --key KID:KEY \ --decryption-engine FFMPEG \ --del-after-done false \ --tmp-dir ./debug_tmp \ --log-level DEBUGKID 和 KEY 都是 32 位十六进制少一位都是错的多 KEY 场景要把每对KID:KEY列齐。临时文件保留下来后拿其中一段 m4s 单独喂给 mp4decrypt 验证比反复重下快得多。延伸批量下载和时间轴截取用 bash 循环批量下 m3u8核心就是 for 循环加退出码判断其余按需加URLS( https://example.com/a.m3u8 https://example.com/b.m3u8 https://example.com/c.m3u8 ) for u in ${URLS[]}; do name$(basename $u .m3u8) N_m3u8DL-RE $u --save-name $name \ --save-dir ./downloads -M formatmp4 -sv best -sa best \ || echo failed: $name download_errors.txt done|| echo那行是全部逻辑的兜底成功的进./downloads失败的记进download_errors.txt。只想要视频中间 15 分钟别下完整集再剪——目录页上每个分片都有序号和时间程序可以直接按时间轴切着下# 只下载第 5 分钟到第 20 分钟的内容 N_m3u8DL-RE $MPD_URL --custom-range 05:00-20:00 -sv best也支持纯序号写法--custom-range -99是前 100 个分片10-是第 10 个之后全部。拿到一个能复现的最小命令之后剩下的事都简单了临时目录指到固定位置、--log-level DEBUG把日志拉满、留着--write-meta-json默认生成的 json 对照轨道和密钥信息。下次再遇到 403 或花屏先回答一个问题——同样的命令在干净环境里还复现吗复现不了就是环境的事复现得了才是流的事。【免费下载链接】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),仅供参考