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
凌晨一点,你在网页网络面板里翻到的唯一线索是一条临时的 m3u8 链接——播放器里打不开,手动存下一堆 .ts 文件也拼不成视频。N_m3u8DL-RE 是一个跨平台的流媒体下载工具:把 MPD/M3U8/ISM 链接丢给它,它负责解析、多线程下分片、解密和合并,输出的是能直接播放的文件。点播、直播都支持。
它解决了什么问题
| 不用工具时的痛点 | 用 N_m3u8DL-RE 之后 |
|---|---|
| 手动抓分片、逐个下载再自己拼接 | 自动解析播放列表,多线程下载分片,自动合并成完整文件 |
| m3u8/mpd 只是"目录",本身不可播放 | 输出可播放的媒体文件,分离的音视频还能混流成一个文件 |
| 多码率、多语言轨道要人工挑 | 按正则筛选分辨率/语言/编码,for=best自动挑最佳 |
| 直播内容结束后无法回看 | 持续录制直播流,边录边实时合并,可设时长上限 |
| AES/SAMPLE-AES/CHACHA20 加密流存不下来 | 自动识别常见加密并解密,CHACHA20 内置实现,也可指定密钥与解密引擎 |
五分钟跑通第一个任务
环境一句话:装好 .NET 10 运行时,合并/混流环节依赖 ffmpeg(不在 PATH 里就用--ffmpeg-binary-path指定全路径)。输入既可以是链接,也可以是本地播放列表文件。
N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd" --save-name "first"这条用的是仓库 TestStreams.md 里的多音轨多字幕测试流,MPD/M3U8/ISM 的解析逻辑都在 src/N_m3u8DL-RE.Parser/ 中。
预期结果,三句话:程序拉取 MPD 后列出各轨道,默认选每类最佳的轨道;分片默认按 CPU 线程数并发下载,单个分片失败自动重试 3 次;完成后当前目录得到可播放的媒体文件,外加一份解析信息的 JSON(--write-meta-json默认开启),全程无需其他参数。
三个高频场景
如何挑出指定清晰度和语言的轨道
目标:从多码率 HLS 源里只拿 1080p 视频 + 最佳音轨,合并成一个文件。
N_m3u8DL-RE "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/master.m3u8" \ -sv "res=1080*" -sa best \ -M format=mkv --save-name "bipbop"关键参数:-sv按正则筛视频轨,res=1080*只匹配 1080p;-sa best取最佳音轨;-M format=mkv让程序在全部下载完后把音视频混流进一个 MKV(format=mp4同理)。字幕用-ss同样选法,如-ss best。
一个易错点:没写-M时输出是两个分开的文件(视频一个、音频一个)。这是分离音视频源的正常行为,不是失败。
如何定时录制直播流
目标:录 1.5 小时直播,录完自动停,且录制途中文件就能播放。
N_m3u8DL-RE "直播URL" --live-real-time-merge --live-record-limit "01:30:00" --live-wait-time 30关键参数:--live-real-time-merge开启录制中的实时合并;--live-record-limit是总录制时长,格式 HH:mm:ss;--live-wait-time手动设置直播列表刷新间隔(秒)。
一个易错点:--live-record-limit是"从现在起录多久",不是"几点停"。另外网络不稳时别开--live-pipe-mux,官方文档明确提示它容易在管道内丢直播数据。
如何解密下载加密流
目标:拿到密钥的加密流,下载出来直接能播。
N_m3u8DL-RE "https://azclwds01.akamaized.net/4e8f6858-5d05-4e28-83ab-48c7a2b259e1/XVuosg_tab_hd.ism/Manifest" \ --key "e5114f87b3e54b9faca331e6e6d646a6:55c5d9f1cedfd018b75623f2565a1d29" \ --save-name "decrypted"关键参数:--key格式为KID:KEY,多个 KID 对应同一 KEY 时直接写--key KEY即可;密钥很多时用--key-text-file指向密钥文件;解密默认调用 MP4DECRYPT 引擎,可用--decryption-engine换成 FFMPEG 或 SHAKA_PACKAGER。CHACHA20/SAMPLE-AES 由程序内置解密,实现见 src/N_m3u8DL-RE/Crypto/。
一个易错点:下载完成但播放花屏/黑屏 → 密钥不完整或 KID 对不上 → 核对KID:KEY的配对关系,注意密钥里不要混入空格和换行。
参数速查
| 参数 | 作用 | 何时用 |
|---|---|---|
--thread-count | 下载线程数,默认等于 CPU 线程数 | 大文件、网速够但下载慢 |
--download-retry-count | 每个分片的重试次数,默认 3 | 网络波动频繁 |
-mt | 并发下载已选的视频/音频/字幕 | 多轨源想整体提速 |
-R | 限速,单位 Mbps/Kbps,如15M100K | 不想占满带宽 |
-sv/-sa/-ss | 正则筛选视频/音频/字幕轨 | 挑清晰度、语言、字幕 |
-M | 下载完成后混流(format=mkv或mp4) | 源是分离音视频,要单个成品文件 |
--sub-only | 只选取字幕轨道 | 只要字幕 |
--key | 解密密钥,支持KID:KEY | 加密流 |
--decryption-engine | FFMPEG / MP4DECRYPT / SHAKA_PACKAGER | 默认解密引擎不可用时 |
--live-real-time-merge | 录制直播时实时合并 | 边录边存 |
--live-record-limit | 录制时长上限 HH:mm:ss | 定时录制 |
--custom-range | 只下载部分分片,如05:00-20:00 | 只想截长视频的一段 |
完整参数以--help输出为准,单个参数细节可用--morehelp <参数名>查看,README.md 里也有全文档。
避坑清单
- 分片大量 403/被拒 → 源站校验请求头 → 追加
-H "Cookie: ..."和-H "User-Agent: ...",-H可重复使用。 - 合并阶段报错、找不到 ffmpeg → 合并调用 ffmpeg 可执行文件但不在 PATH → 把 ffmpeg 加入 PATH,或用
--ffmpeg-binary-path指定全路径。 - 多轨源输出一堆零散文件 → 分离音视频未混流 → 加
-M format=mkv(或 mp4)。 - 低版本 Windows 系统自带终端跑不了 → 终端不支持程序输出的控制台格式 → 换 cmder 等第三方终端运行。
- 直播录制卡顿或中断 → 直播列表刷新慢/网络抖动 → 调大
--live-wait-time,并在网络不稳时避免--live-pipe-mux。
收尾
N_m3u8DL-RE 覆盖 MPD/M3U8/ISM 三大主流格式,从链接到可播放文件一条命令就能跑完。参数拿不准时,--morehelp和仓库 README.md 是现成的答案。从 TestStreams.md 里挑一条流先跑一次——第一次下载成功的 5 分钟,比读十篇教程都管用。
【免费下载链接】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),仅供参考