N_m3u8DL-RE 流媒体下载器:M3U8/MPD/ISM 一条命令转成可播放的 MP4
【免费下载链接】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 是跨平台流媒体下载器,覆盖 MPD、M3U8(HLS)、ISM(MSS)三类流,解决三类常见问题:分片下载后无法合成单文件、多档清晰度无从挑选、加密分片打不开。点播与直播(DASH / HLS)均可录制,下载完成后可按 AES / CENC 规则自动解密,并混流为 mp4 或 mkv,产物开箱即播。
环境准备:编译发布 N_m3u8DL-RE 并验证版本
程序基于 .NET 编写,本地编译需要 .NET 10 SDK。克隆源码后执行 publish,产物落在 bin 的 publish 目录;随后跑一条版本命令确认编译成功。
# 克隆源码并发布,可执行文件位于 bin/Release/net10.0/publish git clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE cd N_m3u8DL-RE dotnet publish src/N_m3u8DL-RE/N_m3u8DL-RE.csproj -c Release# 输出含版本号与构建日期(形如 N_m3u8DL-RE 0.6.0 20261012)即编译成功 src/N_m3u8DL-RE/bin/Release/net10.0/publish/N_m3u8DL-RE --version下文示例中的N_m3u8DL-RE均指该可执行文件,重命名后放入 PATH 即可直接调用。想先用公开测试流熟悉参数,可参考仓库内 TestStreams.md 的示例链接。
🎬 点播存片:把 M3U8/MPD 链接合成一个可播放文件
如果目标是把 m3u8 或 mpd 点播链接保存成随时能打开播放的 mp4:
N_m3u8DL-RE "https://example.com/video.m3u8" \ --save-name "我的视频" \ --save-dir "./downloads" \ -M format=mp4预期产物:./downloads/我的视频.mp4,分片已自动混流为单文件,可直接播放。
提示:
-M format=mp4换成-M format=mkv即输出 MKV 容器。
多轨流挑选:-sv 选最高画质,-sa 留最佳英文音轨
如果 master 流带多档分辨率与多条音轨,只想保留最高画质加一条英文音轨,用正则表达式过滤:
N_m3u8DL-RE "https://example.com/master.m3u8" \ -sv best \ -sa lang=en:for=best \ --save-name "高清版" \ -M format=mp4产物为一条分辨率最高、配英文音轨的 mp4,其余档位不会下载。
提示:
-sv res="1920*"按分辨率正则匹配,-sa all保留全部音轨;更多匹配维度(编码、码率、角色)见 README.md 的 morehelp 说明。
📼 直播边播边录:实时合并并到点自动停止
如果目标是把正在播出的直播存下来,且不希望在播完后才处理分片:
N_m3u8DL-RE "https://example.com/live.m3u8" \ --live-real-time-merge \ --live-record-limit 00:30:00 \ --save-name "直播录制"执行成功后会在输出目录生成边录边合并的直播文件,录满 30 分钟自动停止。
注意:网络不稳时不要加
--live-pipe-mux,管道经 ffmpeg 转发容易丢帧;需要固定列表刷新间隔时用--live-wait-time。
🔓 加密流解密:KID:KEY 密钥解开 CENC/AES
如果分片带 CENC / AES 加密,直接下载后无法播放,把密钥交给--key并指定解密引擎:
N_m3u8DL-RE "https://example.com/encrypted.m3u8" \ --key "0123456789abcdef0123456789abcdef:89abcdef0123456789abcdef01234567" \ --decryption-engine MP4DECRYPT \ --save-name "解密视频" \ -M format=mp4产物为解密后的 mp4,可正常播放。
提示:密钥写法为
KID:KEY,KID 在前;多条密钥就重复写多个--key;解密卡住时可用--decryption-engine FFMPEG换引擎。
调参提速:线程数、重试次数、分片区间与限速
日常下载影响最大的四个参数:
--thread-count 16:提速主力,推荐区间 8~32,默认跟随本机 CPU 线程数,多数机器不需要调整--download-retry-count 8:默认 3,取值 3~20 均可,网络不稳时调大,并配合--http-request-timeout 60--custom-range 05:00-20:00:源站分片很多但只想要其中一段时,只取第 5~20 分钟,不必下载整条文件-R 15M:限速到 15Mbps,避免下载占满带宽
完整参数列表见 README.md 的命令行章节。
注意:老版本 Windows 自带终端跑不起来属于系统终端限制,换 cmder 等终端再试;其余平台行为一致。
报错自查清单:从解析失败到 ffmpeg 缺失
提示无法解析 URL,或返回的是 HTML 而非 m3u8/mpd:多为请求头缺失。先用 curl 确认响应是清单文件,再检查 Referer / Cookie 是否齐全,最后用
-H补齐请求头重试:N_m3u8DL-RE "https://example.com/video.m3u8" -H "Referer: https://example.com" -H "User-Agent: Mozilla/5.0"分片下完但文件打不开、花屏:确认该流确实加密;
--key中 KID 在前、KEY 在后,顺序写反解不开;仍失败则--decryption-engine FFMPEG换引擎重试。下载中途频繁中断、报超时:网络抖动的典型表现,
--download-retry-count 8加大重试,--thread-count 4降线程,必要时经--custom-proxy http://127.0.0.1:7890代理出站。分片齐全,-M 混流时找不到 ffmpeg:mp4/mkv 混流依赖 ffmpeg,确认已安装且在 PATH 中;或
--ffmpeg-binary-path /usr/local/bin/ffmpeg指向全路径;也可以先去掉-M只下分片,之后再自行合并。
速查
- 点播成片:
-M format=mp4(或 mkv) - 选流:
-sv best、-sa lang=en:for=best、-sv res="1920*"、-sa all - 直播录制:
--live-real-time-merge --live-record-limit 00:30:00 - 解密:
--key KID:KEY,引擎--decryption-engine FFMPEG|MP4DECRYPT - 调优:
--thread-count 16(8~32)、--download-retry-count 8(3~20)、-R 15M、--custom-range 05:00-20:00 - 依赖:混流需 ffmpeg 在 PATH 或经
--ffmpeg-binary-path指定;老版 Windows 终端用 cmder
【免费下载链接】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),仅供参考