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),仅供参考