N_m3u8DL-RE:一条命令跑通的 m3u8 视频下载器,3 大流格式免费支持
2026/9/19 15:34:32 网站建设 项目流程

N_m3u8DL-RE:一条命令跑通的 m3u8 视频下载器,3 大流格式免费支持

【免费下载链接】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 三大格式,既能下载点播内容,也能录制直播。MIT 协议、免费开源。只要能在浏览器里复制出播放地址,就能开始 m3u8 视频下载。

快速了解:4 项开箱即用的核心能力

核心能力一张表说清:

  • 跨平台:Windows、macOS、Linux 全兼容,换系统不用换工具
  • 三大格式:MPD(DASH)、M3U8(HLS)、ISM(MSS)的流都认识
  • 点播+直播录制:点播下完整视频;直播能边播边录,还能限定录多久
  • 解密与多音轨:AES-128、CENC 等加密流可解密,音轨、字幕挑着下

完整参数清单见 README。

原理速览:为什么网页上的视频看得见却存不下

先说结论:网页根本不会把完整视频文件发给你。网站把视频切成几百个小分片,再附一份记录顺序的"清单"——M3U8 是 HLS 的清单,MPD 对应 DASH,ISM 对应 MSS。

📦 打个比方,这像快递分箱:每个分片是一个小包裹,清单就是发货单。网页只负责把包裹实时拼成画面放给你看,从不让你把整批货抱走。N_m3u8DL-RE 干的就是快递代收的活:读清单、按顺序下齐所有包裹、再拼回一个完整视频文件。读清单的活儿由 Extractor 目录 下的三类解析器完成。

搞懂了原理,下面上手。

上手三步:三分钟跑通第一条下载命令

从装好到第一次下载成功,总共三步。

第 1 步,把程序弄到机器上。Windows 用户到 Release 页下载N_m3u8DL-RE-win-x64.zip,解压即用、零安装;Arch Linux 用户走包管理器:

yay -Syu n-m3u8dl-re-bin

想尝鲜开发版,也可以从源码自己构建(需 .NET SDK):

git clone https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE.git cd N_m3u8DL-RE/src/N_m3u8DL-RE && dotnet build -c Release

第 2 步,把地址丢给它就能下:

N_m3u8DL-RE "https://example.com/video.m3u8"

第 3 步,加上三个最常用的参数:--save-dir定存放目录,--save-name定文件名,--thread-count定并行线程数:

N_m3u8DL-RE "https://example.com/video.m3u8" \ --save-dir "./videos" --save-name "公开课01" --thread-count 8

线程数不用猜:CPU 核心数乘 1.5~2 就是实用值,8 核机器写 12~16,再往上开遇到网络波动反而更慢。

先把基础跑通,再看进阶。

进阶:归档、直播录制、解密三组参数组合

下面三组参数组合,是我用下来最顺手的,每组配一条完整命令和几条避坑提示。

组合一,自动命名归档。让文件名自动带上画质和码率,归档时不用逐个点开看:

N_m3u8DL-RE "https://example.com/drama.mpd" \ --save-pattern "<SaveName>_<Resolution>_<Bandwidth>" \ --binary-merge
  • <Resolution><Bandwidth>是内置变量,尖括号和大小写照抄
  • --binary-merge用纯二进制拼接分片,CPU 占用更低,弱机器适合开
  • 只要视频中的一段,加--custom-range 05:00-20:00就只取第 5 到第 20 分钟的内容

组合二,直播限时长录制。一条命令边看边录、到点自动停:

N_m3u8DL-RE "直播地址" \ --live-real-time-merge \ --live-record-limit 02:00:00
  • --live-record-limit按 HH:mm:ss 写,录两小时就填 02:00:00
  • --live-pipe-mux走管道交给 ffmpeg 实时混流,网络不稳时别开,管道丢数据画面会缺帧
  • 直播录制的调度逻辑在 HTTPLiveRecordManager.cs 里,排障时可以顺藤摸瓜

组合三,加密流解密。AES-128、CENC 等加密视频直接下是乱码,要传密钥:

N_m3u8DL-RE "加密视频地址" \ --key "KID:KEY" \ --decryption-engine FFMPEG
  • --key两种传法:分片共用同一把密钥时直接--key KEY,否则按 KID:KEY 写
  • 默认解密引擎是 mp4decrypt,也可用 FFMPEG 或 SHAKA_PACKAGER;工具不在系统路径就用--decryption-binary-path指定全路径
  • 解密失败先查日志里的密钥报错,多半是密钥或 KID 不匹配,别急着换工具

先说会用,再说怎么排错。

排错自查:下载不成功先查这 3 处

🔧 下载翻车,八成是这三种:

症状常见原因解决思路
提示缺少 .NET Runtime系统没装 .NET 运行时Ubuntu/Debian 执行sudo apt install dotnet-runtime;Windows 到微软官网装对应版本
合并时报 ffmpeg 错误没装 ffmpeg 或找不到路径ffmpeg -version确认已装,再用--ffmpeg-binary-path指定全路径
分片反复失败网络波动或站点限速--download-retry-count调大(默认 3),配合--custom-proxy换个代理

三处都排不掉就开详细日志,让程序自己说卡在哪:

N_m3u8DL-RE "视频地址" --log-level DEBUG --log-file-path "./download.log"

另一个终端跑tail -f download.log就能实时盯进度。想先试试工具行为,TestStreams.md 里有一批官方测试流可以直接拿来练手。

常见问题:下载前最常被问的 4 件事

Q:只能下 M3U8?不是。MPD、M3U8、ISM 三种都认,点播和直播场景都能跑。

Q:下到一半断网了,进度会丢吗?基本不会。分片各自独立下载,挂掉一个不影响其余;把--download-retry-count调大(默认 3),不稳网络下成功率明显更高。

Q:线程数到底怎么选?CPU 核心数乘 1.5~2,写进--thread-count就行。开太多线程挤占网络,速度反而上不去。

Q:多音轨和字幕能一次下全吗?能。-sa-ss用正则挑音轨和字幕,或者--auto-select直接让程序选各类型最佳。

地址在手,成片在硬盘——有想存的播放地址的话,现在就到终端敲一条试试,三分钟的事。

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

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

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

立即咨询