news 2026/9/19 17:57:48

N_m3u8DL-RE 流媒体下载:4 条命令搞定 m3u8 下载、加密解密与直播录制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
N_m3u8DL-RE 流媒体下载:4 条命令搞定 m3u8 下载、加密解密与直播录制

N_m3u8DL-RE 流媒体下载:4 条命令搞定 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 是一个跨平台的流媒体下载工具,支持 DASH(.mpd)、HLS(.m3u8)、MSS(.ism)三种协议,覆盖点播和直播。本文用几个真实任务串起它的核心用法:拉一条测试流、给加密分片喂密钥、把直播落成文件、批量挑轨,最后附参数速查与排错表。

先跑通一条 m3u8 下载命令

未安装的话参考仓库 README.md 中的发行版获取方式(Arch 可直接yay -Syu n-m3u8dl-re-bin)。

下面这条命令会从 Akamai 的公开测试流下载一个 AES-128 加密的 m3u8(M3U8 播放列表(告诉播放器"按顺序拿哪些小文件"的文本文件)):

N_m3u8DL-RE "http://playertest.longtailvideo.com/adaptive/oceans_aes/oceans_aes.m3u8" \ --thread-count 12 \ # 12 个并发线程,默认是 CPU 核心数 --save-dir ./downloads # 输出目录,默认当前目录

执行后它会先打印解析出的流列表(视频/音频/字幕轨道),没有额外选项时进入交互式选择框,用方向键勾选后开始下载,完成后自动把分片合并成单个文件。想要跳过交互、直接选最佳轨道,可加--auto-select

带着登录态抓加密分片

有些流不加密,有些则带着 DRM 之外的普通加密(AES-128 / CENC 等),此时程序需要你提供解密密钥。密钥可以从浏览器抓包或站点接口里拿到,格式为KID:KEY

N_m3u8DL-RE "视频URL" \ -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)" \ -H "Referer: https://原始站点.com" \ # 防盗链通常校验这两个头 -H "Cookie: session=xxx" \ # 登录态 --key "9eb4050de44b4802932e27d75083e266:166634c675823c235a4a9446fad52e4d" \ --decryption-engine MP4DECRYPT

--key可以重复出现来覆盖多个 KID;如果密钥较多,写成每行一个KID:KEY的文本文件,用--key-text-file my_keys.txt传入。--decryption-engine决定用哪个外部程序做解密:默认MP4DECRYPT(mp4decrypt,兼容性最好),也可换成FFMPEGSHAKA_PACKAGER。注意:DASH 加密流走 mp4decrypt 前需要本机装有该工具;若站点把 KID 藏在 MPD 里,程序会尝试自动提取,失败时再手动指定。

如果密钥相同但站点没给 KID,直接--key KEY一行搞定。

把正在播的直播落成文件

直播流没有"总时长",程序会自动进入录制模式并提示。要让它稳定地一直录到你想停为止,需要控制刷新间隔、限制时长,并决定是逐片落盘还是实时合并:

N_m3u8DL-RE "直播URL" \ --live-wait-time 30 \ # 列表每 30 秒刷新一次 --live-record-limit "1:30:00" \ # 录满 1.5 小时自动停止 --live-real-time-merge \ # 边录边合并,磁盘占用低 --save-name "直播录制"

--live-wait-time别设太小,20~30 秒是兼顾延迟和请求量的常见取值;--live-record-limit不传就会一直录,适合配合--task-start-at 20260918200000这类定时启动参数。想要边录边混进 TS 容器,加--live-pipe-mux(会自动开启实时合并),它通过管道调 ffmpeg,网络不稳时容易丢数据,弱网环境建议不开。录满后若提示分片数量校验失败,先检查是否中途断流,再考虑--check-segments-count的取舍。

批量挑轨:一整季视频只留 4K + 中文字幕

批量任务里最常用的是正则选轨,避免交互打断脚本:

for url in "${URLS[@]}"; do N_m3u8DL-RE "$url" \ -sv res="3840*":for=best \ # 正则匹配 4K 视频,取最佳一条 -sa lang="zh|en":for=best \ # 中英文音轨各取最佳 -ss name="中文":for=all \ # 所有含"中文"的字幕 -mt \ # 音视频字幕并发下载 -M format=mp4 \ # 完成后混流为 mp4 --save-pattern "<SaveName>_<Resolution>" done

-sv/-sa/-ss用正则匹配轨道属性,for=best取最优一条、for=all全取、for=best2取前两条;-mt让多条轨道并行下载而不是逐条排队。--save-pattern<Resolution>等变量区分同名文件,批量跑时防止覆盖。只想要字幕不想要媒体,把上面换成--sub-only --sub-format SRT即可,输出为独立 SRT 文件。

常用参数速查

参数作用示例值
--save-dir输出目录./downloads
--save-name保存文件名episode-01
--tmp-dir临时分片目录./temp
--thread-count下载线程数,默认 CPU 核心数12
-H, --header追加请求头,可多次-H "Cookie: xxx"
--key解密密钥KID:KEY,可多次9eb4…:1666…
--key-text-file从文件批量读密钥keys.txt
--decryption-engine解密外部程序MP4DECRYPT
-sv/-sa/-ss正则选视频/音频/字幕res="3840*":for=best
-mt多轨道并发下载布尔开关
-M完成后混流format=mp4
--auto-select自动选最佳轨道,跳过交互布尔开关
--custom-range只下载部分分片05:00-20:00
-R, --max-speed限速15M
--live-wait-time直播列表刷新间隔(秒)30

组合建议:-H+--key常一起出现;-sv搭配-M format=mp4--live-real-time-merge搭配--live-record-limit

排错速查

现象:请求全部返回 403 / 播放列表为空。常见原因:站点校验 Referer、Cookie 或 User-Agent,缺头直接被拒。 修复:

N_m3u8DL-RE "URL" -H "Referer: https://原始站点.com" -H "Cookie: session=xxx"

现象:启动即报 ffmpeg 找不到。常见原因:程序启动前必须能定位到 ffmpeg 可执行文件,不在 PATH 里就会直接失败。 修复:

N_m3u8DL-RE "URL" --ffmpeg-binary-path /usr/local/bin/ffmpeg

现象:下载完成但解密失败或文件无法播放。常见原因:KID 与 KEY 不匹配,或加密方式未正确识别(CENC 与 AES-128 走不同路径)。 修复:

N_m3u8DL-RE "URL" --key "KID:KEY" --decryption-engine FFMPEG # 仍失败时尝试 --custom-hls-method CENC 显式指定加密方式

现象:直播录制中途卡住、分片数校验失败。常见原因:断流后未重新拿到新分片,或录制时长跨了列表滚出窗口。 修复:

N_m3u8DL-RE "URL" --live-wait-time 30 --download-retry-count 5

用环境变量固化录制参数

每次敲同样的参数容易漏,把低频变动的项放进 shell 环境即可,Config/EnvConfigKey.cs 里列了全部支持项:

# ~/.bashrc 或 ~/.zshrc export RE_LIVE_PIPE_OPTIONS="-c:v copy -c:a aac -b:a 192k" # 定制管道混流的 ffmpeg 参数 export RE_LIVE_PIPE_TMP_DIR=/var/tmp/re_pipe # 非 Windows 下管道文件目录 export RE_KEEP_IMAGE_SEGMENTS=1 # 图形字幕调试时保留 m4s 分片

live-pipe-mux场景下,RE_LIVE_PIPE_OPTIONS会原样拼进 ffmpeg 命令行,改这里就不用每次在命令里写混流参数。


到这里,下载、解密、录制三条主线的操作都已覆盖。想更进一步,可以去看 TestStreams.md 里那批带注释的公开测试流,逐个验证不同加密方式的--key组合;录制党则可以研究--task-start-at+ cron 做整点定时录制。

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 17:57:25

原生Canvas实现动态相册:粒子效果与视差动画实战

前阵子给个人主页加了一个相册模块&#xff0c;第一反应肯定是直接用CSS动画轮播&#xff0c;试了一圈发现自己心里过不去——图片切换、缩放、粒子背景这些效果用CSS做起来&#xff0c;要么卡在兼容性上&#xff0c;要么写出的代码连自己都不想维护。后来索性自己用canvas写了…

作者头像 李华
网站建设 2026/9/19 17:56:58

Linux与Windows核心差异全解析:从内核、权限到实战避坑指南

1. 从一次真实的“翻车”经历说起&#xff1a;为什么我要认真聊聊Linux和Windows几年前我帮一个朋友的公司做内部工具迁移&#xff0c;他们原本有一套跑在Windows Server上的数据处理脚本&#xff0c;因为授权费用和稳定性问题想换到Linux上。我当时心想&#xff0c;不就是把Py…

作者头像 李华
网站建设 2026/9/19 17:56:51

Qoder | AI IDE编程工具

链接&#xff1a;https://pan.quark.cn/s/622a344a1a7d传统编程工具只是帮你 “写代码”&#xff0c;Qoder 则像一个 “读过你全部代码、记得你全部习惯、能跨系统替你干活” 的资深同事。

作者头像 李华
网站建设 2026/9/19 17:54:04

邮箱验证不只看正则:RFC 5322格式校验与MX/SMTP实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/19 17:53:04

将 HTML 静态站点迁移到 Gatsby:从零到生产部署的完整实战指南

将 HTML 静态站点迁移到 Gatsby&#xff1a;从零到生产部署的完整实战指南 【免费下载链接】gatsby React-based framework with performance, scalability, and security built in. 项目地址: https://gitcode.com/gh_mirrors/ga/gatsby 导读 本文基于 Gatsby 官方文档…

作者头像 李华