☰
N_m3u8DL-RE 实战:5 条命令跑通 MPD/M3U8 流媒体视频下载
2026/10/15 3:01:06 网站建设 项目流程

N_m3u8DL-RE 实战:5 条命令跑通 MPD/M3U8 流媒体视频下载

【免费下载链接】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 清单里的分片拉齐、合成完整 MP4。从装环境到啃加密,照着走就能跑通。

认识它:分片下载器凭什么"无中生有"

一句话原理

视频网站"只能在线看",是因为内容被切成几秒一段的小分片,再配一份清单文件(MPD / M3U8 / ISM)描述存放位置。N_m3u8DL-RE 做的事很简单:读取清单 → 拿到全部分片地址 → 多线程下载 → 调 FFmpeg 合成完整文件,点播、直播都支持,Windows / macOS / Linux 三平台通用。

仓库里哪几个目录值得看

想深入源码的话,顺着这几条线看最清楚:

  • src/N_m3u8DL-RE.Parser/:解析 MPD / M3U8 / ISM 清单,提取音视频轨道信息
  • src/N_m3u8DL-RE/DownloadManager/:分片下载调度,含直播录制管理器
  • src/N_m3u8DL-RE/Crypto/:AES、ChaCha20 等加解密逻辑
  • src/N_m3u8DL-RE/Util/:合并、字幕、进度等通用能力

装好唯一依赖,再装上它

下载本身零依赖,但合并阶段会调 FFmpeg,先验证一下:

ffmpeg -version

没装的话,Ubuntu/Debian 直接sudo apt install ffmpeg。工具本身三条路线任选其一:

# 路线一:到 Release 页面按系统选预编译包(win-x64 / darwin / linux),解压即用 # 路线二:Arch Linux 及其衍生版,一条命令装好 yay -Syu n-m3u8dl-re-bin # 路线三:源码构建 git clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE cd N_m3u8DL-RE/src/N_m3u8DL-RE && dotnet build -c Release

装完先敲一句N_m3u8DL-RE --version,能输出版本信息就说明一切正常。

首战:一条命令拿下官方测试流

最短能跑通的命令

用法就是一句话:把链接或本地清单文件直接丢给它。

N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd"

这是官方测试流,带多音轨多字幕,非常适合第一次练手。程序会自动解析清单、挑出最佳画质、下载并合并,全程进度一目了然。

顺手加上三个高频参数

N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd" \ --save-dir ./videos \ --save-name "我的收藏" \ --thread-count 8
  • --save-dir:输出目录,不存在会自动创建
  • --save-name:自定义文件名,比默认的一串 ID 好认
  • --thread-count:并发线程数,默认 10,宽带够时可以再往上加
  • -mt:即--concurrent-download,音视频字幕同时拉取,总耗时明显缩短

小技巧:--ui-language zh-CN一键切中文界面;程序也接受本地清单,把.m3u8下载到本地后N_m3u8DL-RE playlist.m3u8一样能跑;常用参数还能写进配置文件,每次少敲一半命令。

调顺网络:提速、限速、重试三件套

这一步不解决"能不能下"的问题,却决定你下得爽不爽。与其等翻车再修,不如先把路铺平。

性能:带宽怎么分

速度上不去就先加线程,--thread-count 16直接顶上去;反过来不想占满带宽影响别人看视频,就用-R限速,单位支持 Mbps / Kbps:

N_m3u8DL-RE "链接" --thread-count 16 -R 15M

稳定性:弱网先兜底

分片下载失败会自动重试(默认 7 次),弱网可以再调高重试次数、放宽超时时间:

N_m3u8DL-RE "链接" --download-retry-count 10 --http-request-timeout 60

走代理就加--custom-proxy指向你的代理地址;默认跟随系统代理,想关掉用--use-system-proxy false。

症状对照表

症状对策
提示找不到 FFmpeg装 FFmpeg,或--ffmpeg-binary-path指定 exe 全路径
老版本 Windows 终端界面错乱换 cmder 之类的终端跑
分片下载频繁失败加--download-retry-count放宽--http-request-timeout
合并后文件不完整关掉--del-after-done保留临时分片,用--check-segments-count(默认开启)核对数量
占满带宽影响别人-R 15M限速

排错兜底永远是这句,把日志打到文件里慢慢翻:

N_m3u8DL-RE "链接" --log-level DEBUG --log-file-path ./download.log

--log-level支持 DEBUG / ERROR / INFO / OFF / WARN 五档。

会挑轨道:正则精挑细选,只下我想要的

不少 DASH 清单塞着三四档清晰度、五六条音轨、好几组字幕,全下回来既占硬盘又费时间。

默认行为与懒人模式

不带筛选参数时,程序会弹交互选择框让你勾选;懒得选就--auto-select,自动把每种类型的最佳轨道选齐。

用正则精挑细选

-sv/-sa/-ss三个选择参数都支持字段=正则的写法,多个条件用冒号拼接,for=best|worst|all决定取几条:

# 只选 1080p 且 HEVC 编码的最佳视频轨 N_m3u8DL-RE "链接" -sv res="1920*":codecs=hvc1:for=best # 最佳英语音轨 N_m3u8DL-RE "链接" -sa lang=en:for=best

想要反着来,用-dv/-da/-ds剔除不要的轨道,比如-da lang="en|ja"就是把英日音轨全部排除。

字幕、试看、命名防冲突

# 只要字幕,默认输出 SRT,可切 VTT N_m3u8DL-RE "链接" --sub-only --sub-format VTT # 先试看一段:只下第 5 分钟到 20 分钟的内容 N_m3u8DL-RE "链接" --custom-range 05:00-20:00

--save-pattern按变量拼文件名,比如<SaveName>_<Resolution>_<Bandwidth>会得到类似video_1920x1080_5000000.mp4的文件,还支持<Language>、<Codecs>、<FrameRate>等变量自由组合。

啃硬骨头:直播录制与加密流解密

直播怎么录:实时合并别等录完再合

直播分片边播边删,默认"先下完再合并"录几小时会拖很久。开--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 02:00:00

上面是官方直播测试流,配--live-record-limit设录制时长上限,到点自动收工。其余选项:--live-perform-as-vod把正在播的直播当点播一次性拉;--live-pipe-mux管道直喂 FFmpeg 低延迟混流,⚠️ 弱网慎开,容易丢数据。

加密流密钥怎么传

先判断有没有加密:HLS 清单里找#EXT-X-KEY,DASH 找ContentProtection。加密流通常用--key传KID:KEY形式的密钥:

N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p_ClearKey.mpd" \ --key 9eb4050de44b4802932e27d75083e266:166634c675823c235a4a9446fad52e4d

多分片共用同一 KEY 时可简写--key 密钥值;密钥多了就写进文本文件,用--key-text-file让程序按 KID 自动查找。解密引擎用--decryption-engine切换,默认 MP4DECRYPT,可选FFMPEG | SHAKA_PACKAGER。

HLS 场景如果已经知道加密方法、密钥和 IV,可以硬指定,省去猜测流程:

N_m3u8DL-RE "链接" \ --custom-hls-method AES_128 \ --custom-hls-key 000102030405060708090a0b0c0d0e0f \ --custom-hls-iv 000102030405060708090a0b0c0d0e0f

提醒一句:请只对你有合法权限的内容做解密,这个工具定位于学习与技术研究。

收尾:自查表与两个"香"参数

阶段验证动作状态
环境就绪N_m3u8DL-RE --version与ffmpeg -version均可用☐
首战告捷用官方测试流跑通,得到完整 MP4☐
输出规范--save-dir / --save-name / --thread-count用顺手☐
会挑轨道-sv / -sa / -ss配合-mt组合熟练☐
能录直播--live-real-time-merge+--live-record-limit验证过☐
能解加密--key KID:KEY跑通 ClearKey 示例☐
会排故障出问题第一时间开--log-level DEBUG☐

最后送两个"知道的人都说香"的隐藏参数:--task-start-at 20260815230000定时开工(格式 yyyyMMddHHmmss),适合凌晨跑大文件;-M format=mkv:muxer=mkvmerge指定混流方式,配合--mux-import path=zh-Hans.srt:lang=chi还能把外部字幕塞进成品。

工具再强大,不如亲手跑通一次。挑一条测试流把第一个视频下载下来,"只能在线看"这句话基本可以从你的字典里删掉了 🎬

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询