N_m3u8DL-RE 流媒体下载教程:从一条命令到加密解密与直播录制
【免费下载链接】N_m3u8DL-RECross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文.项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE
MPD、M3U8 这类链接右键另存为只会得到一堆乱码文本。N_m3u8DL-RE 是一个跨平台流媒体下载工具,一条命令处理 DASH、HLS、MSS 链接:自动选轨、加密分片自动解密、下完自动合并成完整视频。读完后你能自己构建并跑通第一条下载命令,还能录一场直播。
开始前的速览
| 项目 | 说明 |
|---|---|
| 定位 | 跨平台 DASH/HLS/MSS 流媒体下载器,点播、直播都支持 |
| 支持的协议与格式 | MPD、M3U8、ISM;AES、ChaCha20 等加密分片 |
| 适用平台 | Windows / Linux / macOS |
| 许可证 | MIT |
上手路径:安装并跑通第一次下载
Windows 上到 Releases 页面下载 zip 包,解压即用,无需安装。
Linux/macOS 需要先克隆源码,再用 dotnet 构建:
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 可执行文件,后面命令都直接用它运行;如果可执行文件不在当前目录,把路径替换成实际位置即可。构建报错时先确认 dotnet SDK 已安装。
第一条命令只放一个链接,其余全用默认值,程序自动选最高画质:
./N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd"✅ 终端先打印解析出的音轨、字幕列表,再开始下载,完成后合并好的成片出现在当前目录。这条官方测试流带多音轨多字幕,一次跑通就能看清它的全部能力。想只预览它挑了哪些轨不下文件,加--skip-download,只解析不下载。
密钥从哪来
你在浏览器 F12 里抓到了 KID 和 KEY,想把这门加密课存下来。密钥一般在许可证请求的响应体里,KID 是 32 位十六进制的 Key ID。把两者按KID:KEY格式贴进--key:
./N_m3u8DL-RE "https://azclwds01.akamaized.net/4e8f6858-5d05-4e28-83ab-48c7a2b259e1/XVuosg_tab_hd.ism/Manifest" \ --key "e5114f87b3e54b9faca331e6e6d646a6:55c5d9f1cedfd018b75623f2565a1d29" \ -M format=mp4 --save-name "demo"分片边下边解,最终得到demo.mp4。这条测试流约 90 秒,几十秒内下完。解密会调用 mp4decrypt 完成,密钥填错时错误就出在这一步,源码见解密逻辑。
直播怎么录
你只想留某场直播的前两个小时,录完还要能直接播。加--live-record-limit限时,--live-real-time-merge边录边合并:
./N_m3u8DL-RE "https://cmafref.akamaized.net/cmaf/live-ull/2006350/akambr/out.mpd" \ --live-real-time-merge --live-record-limit "2:00:00" --save-dir "./record"录满两小时自动停止,实时合并成完整 MKV 存到./record,不用等播完再处理。不限时就去掉--live-record-limit,它会一直录到你按 Ctrl+C 停止。
多音轨多字幕怎么选
一条流里既有多种语言音频又有多种字幕,你只想要最高画质加英文配音。-sv/-sa/-ss是三个正则参数各挑各的,-M负责下完混流:
./N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd" \ -sv best -sa "lang=en:for=best" -ss all -M format=mp4-sv best挑最佳视频,-sa lang=en:for=best挑最佳英文音轨,-ss all保留全部字幕。成片输出到当前目录,文件名自动带上语言标记,几条音频不会互相覆盖。想留多语言音轨就把for=best改成for=all。
最常用的参数速查
| 参数 | 作用 | 示例值 | 什么时候需要它 |
|---|---|---|---|
--save-dir | 指定输出目录 | ./downloads | 不想让文件堆在当前目录 |
--save-name | 指定成片名 | course | 给批量任务统一命名 |
-M | 下完把音视频混成一个文件 | format=mp4 | 拿到的是分离的视频和音轨 |
--key | 传入解密密钥 | KID:KEY | 视频是加密的 |
-sv | 按条件挑视频轨 | res="1920*":for=best | 只想要某一档画质 |
--thread-count | 下载线程数 | 16 | 默认线程跑不满带宽 |
-H | 附加请求头,可多次使用 | "Referer: https://..." | 链接有防盗链校验 |
-R | 限速 | 15M | 不想占满带宽 |
出错了先看这五条
⚠️ 对照下面五类先自查;遇到"解析失败"类报错,DASH、HLS、MSS 各有一个解析器,可按协议去解析源码里对应文件查。
- 403 拒绝访问→ 缺浏览器侧的请求头 → 加
-H "Referer: 来源页"和-H "Cookie: 登录态"补上 - 解密失败→
KID:KEY之间少了冒号或 KEY 不完整 → 核对 F12 抓包原文,KEY 必须是 32 位十六进制 - 找不到 ffmpeg→ 混流依赖本机 ffmpeg 但不在 PATH → 装好后用
--ffmpeg-binary-path指到可执行文件 - 下载速度被网站掐住→ 单连接限速 → 加
--thread-count 16起多线程 - 成片不完整→ 中途断网丢了分片 → 用
--custom-range 10-只补第 10 个分片之后的内容
N_m3u8DL-RE 把"解析、选轨、解密、合并"四步压进一条命令。先拿上面的公开测试流跑一遍,再换成你自己的链接验证。请只下载你拥有合法权限的内容,版权责任由使用者自行承担。
【免费下载链接】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),仅供参考