ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

N_m3u8DL-RE 速览:3 条命令搞定 DASH/HLS/MSS 流媒体下载

N_m3u8DL-RE 速览:3 条命令搞定 DASH/HLS/MSS 流媒体下载 N_m3u8DL-RE 速览3 条命令搞定 DASH/HLS/MSS 流媒体下载【免费下载链接】N_m3u8DL-RECross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文.项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE把浏览器里的 .mpd 链接丢进终端拿回能播放的 mp4就是 N_m3u8DL-RE 干的活。这是一个跨平台的流媒体下载工具通吃 DASH、HLS、MSS 三大协议.mpd / .m3u8 / .ism点播和直播都支持。工具速写它到底能做什么一句话定位输入链接、输出成片文件的 .NET 流媒体下载器解析、下载、解密、合并一条龙。src/ 下的四个工程分别负责协议解析、下载管理和命令行入口。 支持 DASH/HLS/MSS 点播与直播两种形态自动解析清单并选轨 用--key KID:KEY传入解密密钥可选 MP4DECRYPT、FFMPEG、SHAKA_PACKAGER 三种解密引擎 视频/音频/字幕轨道用正则表达式筛选-sv、-sa、-ss配合forbest自动挑最佳轨 直播录制支持时长限制、实时合并、按点播方式整段下载--custom-range按分片序号或时间区间只截取要的那部分 跨平台运行--ui-language可在 en-US / zh-CN / zh-TW 间切换三分钟上手编译项目并跑通第一条 DASH 下载命令编译需要 .NET 10 运行时。Arch Linux 用户可以跳过编译直接用yay -Syu n-m3u8dl-re-bin安装。git clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE cd N_m3u8DL-RE dotnet build src/N_m3u8DL-RE.sln -c Release # 编译产物在 bin 目录下面示例统一简写为 N_m3u8DL-RE src/N_m3u8DL-RE/bin/Release/net10.0/N_m3u8DL-RE https://example.com/Manifest.mpd -sv best -sa best -M formatmp4这一条命令里-sv best选最佳视频轨-sa best选最佳音频轨-M formatmp4表示收尾时把分离的音视频混流进 mp4。跑完工具会解析清单、下载分片、混流出成片临时文件默认自动删除--del-after-done默认 True解析结果还会输出一份 json--write-meta-json默认 True。想直接试完整能力TestStreams.md 里列好的测试流地址可以直接拿来用。核心能力四个高频痛点对应四条命令加密 DASH 流传 --key 解开场景拿到的是 CENC 加密的 .mpd下完分片是一堆放不了的二进制。N_m3u8DL-RE https://example.com/secure.mpd --key KID:KEY -sv best -M formatmp4结果解密后得到可直接播放的文件。默认解密引擎是 MP4DECRYPT--decryption-engine可切换到 FFMPEG 或 SHAKA_PACKAGER有多个 KID 就逐个传--key KID1:KEY1 --key KID2:KEY2密钥不在清单里时可用--key-text-file提供密钥文件按 KID 查找。解密逻辑集中在 src/Crypto/排查问题时可以先看那里。直播录制用 --live-record-limit 掐时长场景会议、比赛直播只想录两个小时的窗口期还要求成片连贯。N_m3u8DL-RE https://live.example.com/live.m3u8 -mt --live-record-limit 02:00:00 --live-real-time-merge -M formatmp4结果录满 2 小时自动停止分片边录边合并不用事后手动处理。如果是完整直播想整段拿走改用--live-perform-as-vod按点播方式下载。字幕与音轨提取--sub-only 只拿 SRT场景一门课只需要字幕做笔记视频本体不必下载。最短写法是-ss all --sub-only --sub-format srt结果是每条字幕轨道各产出一个 .srt 文件且默认走自动修正--auto-subtitle-fix默认 True。只想要英语音轨时-sa langen:forbest一行就够想同时保留多轨字幕可用-ss name中文:forall这种正则圈定。按时间截取--custom-range 精确到分钟场景十小时的课程只需要第 5 到 20 分钟那一段。用--custom-range 05:00-20:00直接给时间区间结果只下载落在区间内的分片省时间也省流量。同样参数还支持分片序号0-10下载前 11 个分片10-从第 10 个开始下到底。进阶玩法什么时候该用它链接有几十条时套一层循环手里有一份链接清单时把单条命令放进循环用--save-name和--save-dir固定命名与输出位置跑完就是一个整整齐齐的本地库。# 逐行下载 urls.txt 里的链接 while read -r url; do N_m3u8DL-RE $url -sv best -sa best -M formatmp4 done urls.txt网络不稳或站点特殊时把重试和请求头调起来分片频繁失败时调大--download-retry-count默认 3按需调整--http-request-timeout默认 100 秒带宽有限就配合-R限速。站点要求登录态或特定 UA 时用-H Cookie: ...直接附加请求头个别网站比如 kakao.com要求把原始链接的参数带到每个分片上--append-url-params就是为这种场景准备的。需要走代理访问时--custom-proxy http://127.0.0.1:8888指定代理地址或者保持默认走系统代理--use-system-proxy默认 True。文件乱了或出问题时留痕与定位多轨同名容易撞车--save-pattern SaveName_Resolution_Codecs生成带分辨率和编码信息的文件名。排查问题用--log-level DEBUG加--log-file-path把日志写进文件只想要解析结果不下载时用--skip-download分片已下好只想换合并方式时用--skip-merge。想给某个私有站点写专门的链接处理逻辑src/Processor/ 里的示例实现可以直接抄结构。避坑速查现象 → 处理现象处理分片下全了文件放不了加密流用--key KID:KEY传密钥仍不行就换--decryption-engine试其他引擎直播录制中途断掉、丢分片别开--live-pipe-muxREADME 明确提示管道模式在不稳网络下易丢数据保持--live-keep-segments存分片以便重试选到了广告分片或低清轨用-sv/-sa的正则收窄选择条件--ad-keyword按 URL 关键字过滤广告分片Windows 终端显示异常或乱码换 cmder 这类现代终端运行或用--force-ansi-console/--no-ansi-color调整输出合并时报找不到 ffmpeg用--ffmpeg-binary-path指定可执行文件全路径密钥不在清单里、在外部用--key-text-file指定密钥文件程序按 KID 查找结尾解析、下载、解密、混流过去要串起好几个工具的事现在一条命令行收掉完整参数清单在 README.md 里都有。现在就去 TestStreams.md 挑一个流地址跑通你的第一条下载命令。【免费下载链接】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),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进