N_m3u8DL-RE:三条命令,把 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 是一个跨平台(Windows / macOS / Linux)的 m3u8 视频下载工具,同时支持 MPD、M3U8、ISM 三种流媒体格式。它把清单文件解析、分片下载、合并与解密整合在一条命令里,覆盖点播下载与直播录制两类核心场景。最常用的用法是把播放地址加上一组保存参数,就能直接得到可离线播放的完整视频文件。
三十秒跑通第一条下载命令
安装按系统各取一行:Windows 从 Release 下载N_m3u8DL-RE-win-x64.zip,解压后直接运行 exe,免安装;Arch Linux 系用yay -Syu n-m3u8dl-re-bin一条命令装好;想尝新特性则从源码构建(需 .NET SDK):
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 "https://example.com/video.m3u8" \ --save-dir "./videos" \ --save-name "公开课-第01讲" \ --thread-count 8--save-dir决定文件存到哪,--save-name给文件起个看得懂的名字,--thread-count控制并发线程数,建议设为 CPU 核心数的 1.5~2 倍以换取更快的下载速度。
按你的目标选一条路
保存点播内容
适合要把在线课程、剧集、公开课归档到本地片库的用户。用--save-pattern让文件名自动带上画质信息,方便事后检索:
N_m3u8DL-RE "https://example.com/drama.mpd" \ --save-pattern "<SaveName>_<Resolution>_<Bandwidth>" \ --save-name "我的剧集" \ --binary-merge跑完你会得到形如我的剧集_1920x1080_5000kbps.mp4的文件,分辨率和码率直接写在名字里。--binary-merge会减少混流时的 CPU 占用,对低配设备更友好。
录制直播
适合会议、赛事、演唱会等"错过就没了"的直播回看。实时合并分片并设录制时长上限:
N_m3u8DL-RE "直播地址" \ --live-real-time-merge \ --live-record-limit 02:00:00跑完你会得到一份与直播同步产出的成片,--live-record-limit到达即自动收尾。网络稳定时可以追加--live-pipe-mux走管道直通 ffmpeg 实时混流;但网络不稳时不要开这个选项,管道丢数据会让画面缺帧。
处理加密流
适合视频用了 AES-128 或 CENC 加密、直接下载只会得到乱码的场景。传入密钥并指定解密引擎:
N_m3u8DL-RE "加密视频地址" \ --key "KID:KEY" \ --decryption-engine FFMPEG \ --decryption-binary-path "/path/to/ffmpeg"跑完你会得到解密后可正常播放的完整文件。--key按KID:KEY传;若所有分片共用一把钥匙,直接传--key KEY即可。引擎默认是 mp4decrypt,也可切到 FFMPEG 或 SHAKA_PACKAGER,配合--decryption-binary-path指向工具绝对路径。
上限与边界
工具的能力边界比宣传里看着宽,以下几点值得先记住:
- 多音轨、多字幕都能一次拿下,用
--select-audio/--select-subtitle挑要保留的流,回家慢慢选。 --custom-range支持区间下载,例如--custom-range 05:00-20:00只取第 5 到第 20 分钟的内容,适合提取精华片段而非全量下载。- 线程数不是越大越好,
--thread-count超过 CPU 核心数 2 倍后收益递减,反而可能触发网站限速。 - ⚠️反直觉的坑:
--live-pipe-mux在弱网下比不更容易翻车。它把分片直接灌进 ffmpeg 管道,一旦网络抖动丢数据,成片就会缺帧;弱网环境宁可退回默认合并方式。 --binary-merge只省 CPU、不省时间,它换的是低配设备的占用,不是速度。
侧注:项目采用 MIT 协议,完全免费开源;请仅在拥有合法权限的前提下下载内容。
出问题时先看这几处
故障排查按顺序过一遍,多数问题能在前两项定位:
- 症状:提示缺少 .NET Runtime→ 原因:系统没装运行库。处理:Ubuntu/Debian 执行
sudo apt install dotnet-runtime,Windows 到微软官网装对应版本。 - 症状:合并阶段报 ffmpeg 相关错误→ 原因:环境里没有 ffmpeg 或程序找不到它的绝对路径。处理:先用
ffmpeg -version确认已安装,再用--ffmpeg-binary-path显式指向程序。 - 症状:分片反复下载失败→ 原因:网络波动或网站限速。处理:调大
--download-retry-count,必要时用--custom-proxy走代理。 - 症状:不确定卡在哪一步→ 原因:默认日志信息不足。处理:用下面命令打开详细日志,另开终端
tail -f download.log实时盯进度:
N_m3u8DL-RE "视频地址" \ --log-level DEBUG \ --log-file-path "./download.log"解密失败时别急着换引擎,先看日志里报的是密钥不对还是 KID 匹配不上,多数是输入格式问题。
想再深一层
源码建议按"解析 → 调度 → 加解密"三段读,每段一句话说明职责:
- 解析器:src/N_m3u8DL-RE.Parser/Extractor/ 负责读 MPD、M3U8、ISM 三类清单,把它们翻译成可下载的分片列表。
- 下载调度:src/N_m3u8DL-RE/DownloadManager/ 负责点播与直播两条流程的线程编排、合并与实时混流。
- 加密与工具:src/N_m3u8DL-RE/Crypto/ 内置 AES 与 ChaCha20 实现,配合 Util 目录里的合并、字幕、过滤等实用类。
读完后在仓库根目录跑一次dotnet test,测试工程在 src/N_m3u8DL-RE.Tests/,可快速验证改动前后的行为是否符合预期。
【免费下载链接】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),仅供参考