N_m3u8DL-RE 流媒体下载器5 条命令搞定加密解密与直播录制【免费下载链接】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、ISM 链接丢给它自动解析轨道、多线程拉取分片、合并成可播放文件加密流还能直接解密密钥下载。适合想留存自己有权播放的音视频的用户。功能快照10 秒看懂它能干什么项目说明协议格式MPDDASH、M3U8HLS、ISMMSS点播与直播均支持核心能力多线程并发下载、KID:KEY 加密解密、直播实时合并录制、正则轨道筛选、文件名模板、限速与重试附带命令concat/merge/mux手动合并混流doctor体检环境运行平台Windows / Linux / macOS免费开源MIT License硬依赖合并与混流依赖 ffmpeg五分钟备齐环境下载二进制 确认 ffmpeg装它只有两件事拿到可执行文件确认 ffmpeg 就位。从项目 Release 页下载对应系统的二进制包可执行文件加入 PATH 即可Windows 上双击 exe 也能跑但命令行体验更好。Arch Linux 及其衍生发行版走 AUR# 稳定版开发版把包名换成 n-m3u8dl-re-git yay -Syu n-m3u8dl-re-bin最容易漏的一步是 ffmpeg合并、混流、混流混字幕全靠它PATH 里没有就等着报错。装完单独确认一次ffmpeg -version然后验证工具本身# 查看版本号 N_m3u8DL-RE --version # 体检工具版本与系统环境含 ffmpeg、mp4decrypt 是否就位 N_m3u8DL-RE doctor两条命令都有正常输出环境就算备好了。老版本 Windows 自带终端可能跑不了本程序遇到显示异常换 cmder 或 WSL 再试。第一条下载命令用官方测试流跑通拿 测试流清单 里第一条清晰 DASH 流多音轨多字幕验证全链路# 官方测试流清单TestStreams.md中的 v7-Clear 多音轨流 N_m3u8DL-RE https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd \ --save-dir ./downloads \ --auto-select # 每类轨道自动挑最高码率并全量下载跑完进./downloads看产物mp4 视频、音频和字幕文件各轨道一份--write-meta-json默认开启还会留一份解析信息 json方便后续脚本化。到这里就算跑通了。任务一大文件提速下载分片多的内容串行下载太慢。核心就两个参数# --thread-count 下载线程数默认本机 CPU 核数 N_m3u8DL-RE https://example.com/video.m3u8 \ --save-name 我的视频 \ --save-dir ./downloads \ --thread-count 8 \ -mt--thread-count并发拉分片的线程数默认等于本机 CPU 核数显式指定适合固定跑批。-mt即--concurrent-download多条已选轨道并行下载不用等一条下完再下下一条。带宽紧张时加-R 10M限速单位支持 Mbps / Kbps防止下载把带宽占满。坑位提醒线程数不是越大越好超过分片数或带宽承载没有意义8 到 16 对多数场景够用。任务二加密流的密钥怎么配流是 AES / CENC 加密的密钥一般抓包或从 DRM 响应里拿。--key的标准写法是KID:KEYKID 是密钥 IDKEY 是 16 字节密钥本体两者均支持 HEX 或 Base64# KID 在前、KEY 在后KID/KEY 均支持 16 字节 HEX 或 Base64 N_m3u8DL-RE https://azclwds01.akamaized.net/4e8f6858-5d05-4e28-83ab-48c7a2b259e1/XVuosg_tab_hd.ism/Manifest \ --key e5114f87b3e54b9faca331e6e6d646a6:55c5d9f1cedfd018b75623f2565a1d29 \ --save-name 解密后的视频所有轨道共用同一把 KEY 时可省略 KID直接--key KEY。密钥多到手软用--key-text-file keys.txt一次给全程序按 KID 自动匹配。--decryption-engine切换解密引擎可选MP4DECRYPT默认、FFMPEG、SHAKA_PACKAGER工具不在 PATH 里时再用--decryption-binary-path指认具体路径。解密实现可以看 Crypto 模块 里的 AES 与 ChaCha20 代码。坑位提醒KID 与 KEY 写反、或密钥对不上该 KID是下载成功但放不了的头号原因核对时认准 KID 在前。任务三录满两小时自动停的直播录制想把直播落成一个连续文件而不是几百个分片碎片靠实时合并# --live-record-limit 录满 02:00:00 自动停止 N_m3u8DL-RE https://example.com/live.m3u8 \ --live-real-time-merge \ --live-wait-time 30 \ --live-record-limit 02:00:00 \ --live-take-count 16 \ --save-name 直播录制--live-real-time-merge边下边合并进程结束即得完整文件。--live-wait-time 30列表刷新间隔 30 秒调小跟得紧但请求更频繁。--live-record-limit时长上限格式HH:mm:ss到点自动停。--live-take-count 16开播瞬间回溯抓取的前 16 个分片默认值调小可少录开头。默认--live-keep-segments为开实时合并的同时保留分片作备份不需要可显式关闭。进阶选项--live-pipe-mux让 ffmpeg 走管道实时混流到 TS 文件、磁盘占用更低但弱网别开——管道内数据由 ffmpeg 读取网络抖动时容易丢直播数据官方文档也专门标注了这一点。任务四用正则精挑轨道-sv/-sa/-ss接受keyREGEX的链式写法末尾用for指定挑选策略# 链式写法keyREGEX:for策略 N_m3u8DL-RE https://example.com/video.m3u8 \ -sv best \ -sv res^3840x:codecshvc1:forbest \ -sa langen:forbest \ -ss allres、codecs、lang、name、frame、channel、bwMin/bwMax等都参与匹配for可选best、worst、all也支持best2这类每种基础语言取最佳 N 条。想反向剔除轨道用对应的-dv/-da/-ds。一个选择参数都没传时程序会进交互式选流界面方向键加回车勾选即可。选完流仍拿不准加--skip-download只解析不下载先把轨道清单看清楚。拿不准某个选项的完整参数时--morehelp select-video会打印该选项的全部可用键值。任务五让文件名自带元数据同时下多档分辨率时靠--save-pattern给文件名加变量避免互相覆盖# --save-pattern 输出文件名模板变量区分大小写 N_m3u8DL-RE https://example.com/video.m3u8 \ --save-name video \ --save-pattern SaveName_Resolution_Language可用变量包括SaveName、Resolution、Codecs、Language、Bandwidth、MediaType、Channels、FrameRate、VideoRange、GroupId、Name、Id缺失的信息替换为空字符串。长文件名会自动截断并追加短哈希防重名完整模板变量说明用--morehelp save-pattern查。⚠️ 出了问题怎么办按报错对号入座启动就报 ffmpeg not found 怎么办原因是合并与混流强依赖 ffmpeg但 PATH 里没有它。系统级安装brew install ffmpeg或对应包管理器或临时指认路径--ffmpeg-binary-path /path/to/ffmpeg解密时报 mp4decrypt not found 怎么办默认解密引擎是 MP4DECRYPT需要 MP4Box 套件里的 mp4decrypt机器上没装就会报这个错。最简单的办法是换引擎ffmpeg 你反正已经有了--decryption-engine FFMPEG下载成功但文件放不了、有花屏怎么办多半是--key的 KID 和 KEY 顺序写反或密钥对不上这个 KID。核对 KID 在前、KEY 在后且各为 16 字节合法编码多密钥场景确认每个 KID 都有对应--key或直接--key-text-file一次给全。直播录制中断、分片大量失败怎么办通常是列表刷新间隔偏长或网络抖动。把刷新间隔调短、重试次数默认 7 次提高、HTTP 超时默认 100 秒放宽--live-wait-time 10 \ --download-retry-count 10 \ --http-request-timeout 120老版本 Windows 终端跑不了怎么办程序在老版本 Windows 自带终端里可能不兼容换 cmder 之类的新终端或直接用 WSL 跑 Linux 构建版。高频参数速查表与源码导读参数作用--save-dir/--save-name输出目录 / 保存文件名--thread-count下载线程数默认本机 CPU 核数-mt已选轨道并发下载--auto-select自动选择各类型最佳轨道-sv/-sa/-ss按正则选视频 / 音频 / 字幕-dv/-da/-ds按正则剔除轨道--key解密密钥KID:KEY格式--key-text-file密钥文件按 KID 自动匹配--decryption-engine解密引擎MP4DECRYPT/FFMPEG/SHAKA_PACKAGER--live-real-time-merge直播边下边实时合并--live-record-limit直播录制时长上限HH:mm:ss--live-wait-time直播列表刷新间隔秒--live-take-count首次回溯抓取分片数默认 16--live-keep-segments实时合并时保留分片默认开--live-pipe-mux管道 ffmpeg 实时混流到 TS弱网勿开--custom-range点播按分片序号或时间只下部分--save-pattern输出文件名模板-H追加请求头如 Cookie / User-Agent--download-retry-count分片失败重试次数默认 7--http-request-timeoutHTTP 超时秒数默认 100-R限速如10M/100K--custom-proxy指定代理地址--tmp-dir临时分片目录--del-after-done完成后清理临时文件默认开--log-file-path/--log-level日志路径 / 日志级别--task-start-at到点yyyyMMddHHmmss才开始任务--append-url-params分片 URL 继承主链接查询参数--skip-download只解析不下载doctor工具命令体检版本与系统环境想深入看实现从这几处入手README.md完整参数帮助与各 More Help 细节TestStreams.md官方测试流清单含加密与直播样例协议解析入口HLSExtractor.cs、DASHExtractor2.cs、MSSExtractor.cs对应三种格式下载与录制调度SimpleLiveRecordManager2.cs是直播录制主体解密工具AES 与 ChaCha20 实现【免费下载链接】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),仅供参考