N_m3u8DL-RE 是一款跨平台 m3u8/mpd 视频下载工具,支持 DASH/HLS/MSS 点播和直播录制。内置智能轨道选择、DRM 加密解密、ffmpeg 混流,全程命令行操作,Windows/macOS/Linux 全平台支持,GPL-3.0 开源免费。

🎤 引言

想下载一个 m3u8 视频,但找不到好用的工具?或者想录制爱奇艺、优酷的直播,但市面上收费软件一搜一大把?

N_m3u8DL-RE 这个开源项目可能就是你要的答案。它是 N_m3u8DL 系列的续作,GitHub 上 8.2k stars、833 forks,支持 DASH/HLS/MSS 三大协议,点播直播通吃,命令行操作,对技术用户来说比 GUI 软件更灵活。MIT 协议开源,Windows/macOS/Linux 全平台可用。

之前系列 N_m3u8DL 用的人不少,但 RE 版本在架构上做了重新设计,功能更全。这篇来好好聊聊它能干啥、怎么用、有啥坑。


⭐ 核心功能

N_m3u8DL-RE 最大的特点是协议覆盖全、功能选项细。一个工具解决 m3u8 下载、mpd 下载、直播录制三个需求,不用找三个不同软件。

🌐 三协议支持

  • HLS:最常见的 m3u8 播放列表格式,B站、油管、土豆优酷都在用
  • DASH/MPD:Netflix、爱奇艺等长视频平台爱用的自适应流媒体格式
  • MSS:微软系内容偶尔会用到的小众协议

一个命令行覆盖三种格式,不用再为不同平台找不同工具。

📡 直播录制

这是 N_m3u8DL-RE 和普通下载工具拉开差距的核心功能。

  • 直播流边录边混:开启 --live-real-time-merge,录制过程中用 ffmpeg 实时把 TS 分片混流成完整文件,录完直接出成品,不用等
  • 直播录制时长限制--live-record-limit 05:00:00 设置最长录制时间,到点自动停
  • 定时录制:配合 --task-start-at,可以预约某个时间点开始录
  • 直播转点播:开了 --live-perform-as-vod,会把直播流当普通点播下载,中途卡了会自动重试

实际场景:刷到某平台深夜直播节目怕错过,挂机录一晚上,--live-record-limit 防止磁盘被塞满。

🎛 轨道选择与过滤

视频站通常会提供多种码率、多种语言、多种字幕的轨道,N_m3u8DL-RE 支持精细化选择:

# 自动选最佳轨道(最常用)
N_m3u8DL-RE "https://example.com/video.m3u8" --auto-select

# 只选视频,选 4K+HEVC
N_m3u8DL-RE "https://example.com/video.m3u8" -sv res="3840*":codecs="hvc1":for=best

# 选最佳英语音轨
N_m3u8DL-RE "https://example.com/video.m3u8" -sa lang=en:for=best

# 选所有中文字幕
N_m3u8DL-RE "https://example.com/video.m3u8" -ss name="中文":for=all

选完后还支持 --mux-import 引入外部字幕文件,混流时直接烧进去。

🔐 DRM 解密

HLS 和 DASH 经常遇到 AES-128、SAMPLE-AES 等加密,RE 版本内置了解密引擎:

# 指定解密密钥
N_m3u8DL-RE "https://example.com/video.m3u8" --key KID1:KEY1 --key KID2:KEY2

# 密钥文件批量解密
N_m3u8DL-RE "https://example.com/video.m3u8" --key-text-file keys.txt

支持的解密程序:mp4decrypt(默认)、shaka-packagerffmpeg,可按需切换。

🛠 ffmpeg 混流

下载分片后要合并成完整视频,RE 版本内置调用 ffmpeg 的能力:

# 下载完成后自动混流为 mkv
-M format=mkv

# 使用 mkvmerge 混流(需要安装 MKVToolNix)
-M format=mkv:muxer=mkvmerge

# 混流时引入外部字幕
-M format=mkv --mux-import path=zh-Hans.srt:lang=chi

混流完成后默认自动删除临时分片文件(--del-after-done),磁盘空间干净。

⚡ 并发下载与限速

# 并发下载视频、音频、字幕三路同时跑
N_m3u8DL-RE "https://example.com/video.m3u8" -mt

# 限速 15Mbps
N_m3u8DL-RE "https://example.com/video.m3u8" -R 15M

# 设置下载线程数(默认=CPU线程数)
N_m3u8DL-RE "https://example.com/video.m3u8" --thread-count 16

🔧 丰富的自定义选项

  • --save-pattern:自定义输出文件名模板,支持 <Resolution><Bandwidth><Codecs> 等变量,避免下载多个轨道时文件名冲突
  • --custom-range:只下载某个时间范围,比如只想拿某视频的 5-20 分钟片段
  • --write-meta-json:输出下载元信息 JSON,方便二次处理或记录归档
  • --use-system-proxy / --custom-proxy:代理支持,爬虫友好
  • --ui-language:内置中英双语界面

📥 安装使用

Windows(最简单)

直接去 Releases 页面下载最新版的 .exe 文件,Windows 自带终端(Win11 或 Win10 新版)可以直接运行,不用装 .NET 环境。

⚠️ 如果是较老的 Windows 版本终端不支持,可以下个 cmder 当终端用。

macOS / Linux(需要 .NET)

先装 .NET 运行时,然后:

# 下载最新 release
curl -sL https://github.com/nilaoda/N_m3u8DL-RE/releases/latest/download/N_m3u8DL-RE-linux-x64.tar.gz | tar xz

# 运行
chmod +x N_m3u8DL-RE
./N_m3u8DL-RE "https://example.com/video.m3u8"

Arch Linux(官方 AUR 支持)

# 发行版
yay -Syu n-m3u8dl-re-bin

# 开发版
yay -Syu n-m3u8dl-re-git

快速上手

# 基本下载(自动选最佳轨道+混流)
N_m3u8DL-RE "https://example.com/video.m3u8" --auto-select

# 指定输出目录和文件名
N_m3u8DL-RE "https://example.com/video.m3u8" --save-dir ~/Videos --save-name my_video

# 下载直播(边录边混流)
N_m3u8DL-RE "https://example.com/live.m3u8" --live-perform-as-vod --live-real-time-merge

# 带 cookie 下载(绕过登录限制)
N_m3u8DL-RE "https://example.com/vip.m3u8" -H "Cookie: yourcookie"

# 只下字幕
N_m3u8DL-RE "https://example.com/video.m3u8" --sub-only --sub-format VTT

🎯 适用场景

  • 下载网课/技术视频:很多平台用 m3u8 切片存放,离线观看或转格式方便整理
  • 录直播存档:深夜直播、演唱会、游戏赛事,设定时长限制后挂机自动录
  • 提取特定片段:用 --custom-range 05:00-20:00 只下载某个时间段,不用下完整视频
  • 多轨视频整理:自动选最佳视频+音轨+字幕,一次搞定
  • 技术向用户:CI/CD 里集成自动化下载,配合 ffmpeg 做成工作流

🔍 对比/替代方案

工具协议支持直播录制DRM平台价格
N_m3u8DL-REHLS/DASH/MSSWin/Mac/Linux免费开源
yt-dlpHLS/DASH❌(点播)部分Win/Mac/Linux免费开源
StreamFabHLS/DASH仅 Win$49.9+
VideoDownloader ProHLS 为主部分浏览器扩展$20+

yt-dlp 更偏向 YouTube 等主流平台,N_m3u8DL-RE 更偏底层协议层面,对小众平台兼容性反而更好;StreamFab 这类商业软件功能全但要钱,RE 版本 MIT 协议白嫖还要啥自行车。


⚠️ 注意事项

  • 命令行有门槛:纯终端操作,没有 GUI,新手要花时间熟悉参数。可以用 --morehelp 查看每个选项的详细说明
  • 需要 ffmpeg:混流功能依赖本机 ffmpeg,没装的话需要下载并用 --ffmpeg-binary-path 指定路径
  • 低版 Windows 终端不兼容:老系统自带终端可能报 ANSI 错误,换 cmder 或 Windows Terminal 解决
  • 直播录制受网络影响:长时间录直播建议配合 --live-record-limit,防止断网导致录了一半
  • 131 个 Open Issues:活跃项目但仍有少量 bug,遇到问题先去 Issues 搜一下,很可能有现成解法

✅ 总结

N_m3u8DL-RE 属于那种"一学就会、越用越香"的工具。上手门槛是命令行,但一旦摸透了常用的几个参数(--auto-select-M format=mkv--live-real-time-merge),比任何 GUI 工具都高效。

优点

  • 三协议通吃,HLS/DASH/MSS 一个工具全覆盖
  • 直播录制 + 实时混流,长时间挂机无忧
  • 轨道选择灵活,精细化下载
  • MIT 开源,跨平台 Win/Mac/Linux
  • Arch Linux 官方 AUR 支持

缺点

  • 纯命令行,GUI 用户劝退
  • ffmpeg 需要单独安装配置
  • 文档是英文为主(但参数注释有中文)

适合谁:有命令行基础的技术用户、下载需求多样的折腾党、想白嫖直播录制工具的性价比选手。
不适合谁:完全不会终端的小白、追求一键下载的普通用户。

GitHub:https://github.com/nilaoda/N_m3u8DL-RE,有中文 README,Issues 里问题反馈也挺活跃。