
N_m3u8DL-RE搞定 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-REN_m3u8DL-RE 是一款跨平台的流媒体下载工具基于 .NET 开发专门下载 MPDDASH、M3U8HLS、ISMMSS三类流。当你要保存一段正在直播的 HLS 流或者想把一份多码率的 DASH 视频挑出 1080p 音画合一存下来时把链接丢给命令行它就能完成解析、下载、合并、混流整个流程。本文带你从安装到高级用法走一遍。项目速览项目说明开发语言C#.NET 10LicenseMIT支持格式MPD / M3U8 / ISM点播 直播跨平台Windows / Linux / macOS核心依赖Spectre.Console终端 UI、ffmpeg/mkvmerge/mp4decrypt混流与解密它本质是一个命令行程序N_m3u8DL-RE input [options]输入是流链接或本地清单文件其余全部靠参数控制。三步完成首次下载1. 安装程序。Windows/macOS 用户从项目发布页下载对应平台可执行文件并放入 PATHArch 系 Linux 可以直接用 AUR 包# 安装发布版AUR非作者维护的源 yay -Syu n-m3u8dl-re-bin2. 跑一条最简单的命令。下面这条会用自动选轨策略下载一段测试 HLS 流不传任何轨道参数时程序会选择最佳轨道N_m3u8DL-RE http://playertest.longtailvideo.com/adaptive/oceans_aes/oceans_aes.m3u8 --auto-select3. 确认结果。下载完成后程序按分片命名规则落盘到输出目录并自动合并最终得到一个可播放的完整文件同时会在目录里生成一份解析结果的 meta json 文件方便你查看各轨道信息可用--write-meta-json控制。核心能力拆解正则表达式挑轨道-sv / -sa / -ss面对一份有多码率视频、多语言音轨、多字幕的清单你最关心的是选哪条。-svselect-video、-saselect-audio、-ssselect-subtitle都用正则表达式匹配轨道配合for指定取最佳、最差还是全部# 视频选 3840 宽度的 HEVC 最佳档音频取最佳日语或英语两条字幕全要 N_m3u8DL-RE https://example.com/course.mpd \ -sv res3840*:codecshvc1:forbest \ -sa langja|en:forbest2 \ -ss forall跑完后你会得到精确指定的视频、音轨和字幕文件没有多余的码率。解密加密内容--key不少付费或 DRM 内容是 CENC/AES 加密的普通下载器拿到的只是密文。--key参数格式为KID:KEY程序会调用 mp4decrypt默认、shaka-packager 或 ffmpeg 执行解密可用--decryption-engine切换后端# KID 与 KEY 都用十六进制表示若多条流 KEY 相同可只写 --key KEY N_m3u8DL-RE https://example.com/encrypted.mpd \ --key 9eb4050de44b4802932e27d75083e266:166634c675823c235a4a9446fad52e4d解密逻辑的入口在 src/N_m3u8DL-RE/Crypto/ 目录内置了 AES 与 ChaCha20 的实现HLS 的 AES-128、CENC、CHACHA20 等加密方式都能处理。直播录制--live-real-time-merge直播和点播最大的区别是分片持续刷新、没有结束点。开启--live-real-time-merge后程序一边录制一边合并不会等播完# 录制直播流实时合并输出限时录 2 小时 N_m3u8DL-RE https://live.example.com/stream.m3u8 \ --live-real-time-merge \ --live-record-limit 02:00:00 \ --save-name 技术大会录制录制时长到了自动停止并合并收尾--live-keep-segments默认保留原始分片方便断点排查。混流分离的音视频-MDASH 下载下来的视频和音轨通常是分开的文件。-M--mux-after-done在所有任务完成后把它们合成单个容器format指定容器、muxer指定用 ffmpeg 还是 mkvmerge# 下载后把音轨混入 mkv 容器 N_m3u8DL-RE https://example.com/movie.mpd -M formatmkv常用参数速查参数作用默认值--thread-count下载线程数本机 CPU 线程数--download-retry-count分片下载失败重试次数3--http-request-timeoutHTTP 请求超时秒100--save-dir/--save-name输出目录 / 文件名当前目录 / 自动--save-pattern命名模板支持SaveNameResolutionBandwidth等变量无--binary-merge用二进制方式合并分片False--use-system-proxy是否走系统代理True--log-level日志级别 DEBUG/WARN/INFO/ERROR/OFFINFO想看完整列表随时执行N_m3u8DL-RE --help某个参数细节不够还能用--morehelp 参数名单独展开。实战场景场景一只截取课程里的某一段。结合--custom-range按分片区间或时间区间下载不必把整集下完# 只下载第 5 分钟到第 20 分钟的内容 N_m3u8DL-RE https://edu.com/lesson.mpd --custom-range 05:00-20:00场景二多语言媒体库归档。下载所有音轨和字幕并用命名模板避免文件互相覆盖# 全轨下载文件名带语言和声道数 N_m3u8DL-RE https://movie.service/film.mpd \ -sa all -ss all \ --save-pattern SaveName_MediaType_Language_Channelsch \ --save-name 经典电影进阶技巧大带宽环境下拉满线程并放宽超时。高速网络下默认线程数可能不够同时把超时和重试调大减少长分片任务中断N_m3u8DL-RE https://example.com/big.mpd --thread-count 32 --http-request-timeout 180 --download-retry-count 5限速与断点思路。-R 15M可以限制带宽支持 Mbps/Kbps 写法下载大文件失败时先用--skip-download跳过已完成的解析流程再用--custom-range 10-从指定分片续传剩余部分。终端显示异常时关闭 ANSI 颜色。老版本 Windows 终端或部分 CI 环境下表格错位加--no-ansi-color即可反过来某些环境不识别终端能力时可用--force-ansi-console强制启用。源码导读想深入看实现建议从这几个目录入手src/N_m3u8DL-RE.Parser/协议解析核心Extractor/下分别是 HLSExtractor、DASHExtractor2、MSSExtractor 三个解析器MPD/M3U8/ISM 清单在这里被还原成统一的轨道模型src/N_m3u8DL-RE/DownloadManager/下载调度层点播与直播录制走不同的管理器src/N_m3u8DL-RE/CommandLine/参数定义与复杂参数如-sv的 key:value 串的解析逻辑src/N_m3u8DL-RE.Tests/Resources/附带的 MPD 测试清单可以直接拿来做本地解析实验最后N_m3u8DL-RE 把解析—下载—解密—合并—混流串成了一条完整的命令行流水线参数虽多但都有--morehelp兜底上手门槛并不高。现在打开终端找一条 MPD 或 M3U8 链接跑一下上面的第一条命令。排障建议先确认你在用最新版Release 版本可在项目 Actions 自动构建中拿最新包再看日志文件定位问题混流和解密依赖 ffmpeg、mp4decrypt 等外部程序用--ffmpeg-binary-path、--decryption-binary-path指定路径可以避免找不到可执行文件。【免费下载链接】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),仅供参考