☰
N_m3u8DL-RE 下载教程:四个模块搞定流媒体下载、录直播与解密
2026/10/15 3:27:26 网站建设 项目流程

N_m3u8DL-RE 下载教程:四个模块搞定流媒体下载、录直播与解密

【免费下载链接】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 三种清单,你把链接丢给它,它取全分片、并行下载、合成一个完整 MP4。本文拆成四个能力模块,每条命令都能直接复制运行。

三分钟装好,跑通第一次完整下载

先说结论:下载本身零依赖,但合并环节要调 FFmpeg,先验证:

ffmpeg -version

没装的话,Ubuntu/Debian 直接sudo apt install ffmpeg;Windows 把 FFmpeg 的 bin 目录加进 PATH,或者之后用--ffmpeg-binary-path指定 exe 全路径。

安装三条路线任选其一:

  • 预编译版:到 Release 页面按系统选压缩包,Windows 选 win-x64、macOS 选 darwin 版本,解压即用,不挑运行时
  • Arch Linux:yay -Syu n-m3u8dl-re-bin(发行版)或yay -Syu n-m3u8dl-re-git(开发版)
  • 源码构建:
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 --version验证版本号。然后开跑第一条命令——这是官方 DASH 测试流,带多音轨多字幕,很适合首战:

N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd"

它干的活:解析清单 → 自动挑最佳画质 → 多线程下载 → FFmpeg 合并,全程进度可见,最后产出一个完整 MP4。想顺藤摸瓜看"内脏"的,清单解析在 src/N_m3u8DL-RE.Parser/,分片调度与直播录制在 src/N_m3u8DL-RE/DownloadManager/,加解密逻辑在 src/N_m3u8DL-RE/Crypto/。

顺手记几个高频参数:

  • --save-dir ./videos:输出目录,不存在会自动创建
  • --save-name "我的收藏":比默认那串 ID 好认的文件名
  • --thread-count 8:并发线程数,默认取本机 CPU 核数
  • --ui-language zh-CN:一键切中文界面;--no-log关闭日志文件
  • 它也吃本地清单:把 m3u8 存到本地后N_m3u8DL-RE ./playlist.m3u8一样能跑

限速、提速、重试怎么配

速度上不去?先看线程数够不够:

N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd" --thread-count 16

不想占满带宽影响别人?加限速-R,支持 M / K 后缀:

N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd" --thread-count 16 -R 15M

弱网老失败?重试次数调高、超时放宽:

N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd" --download-retry-count 10 --http-request-timeout 60

进阶参数集中收口:

  • --download-retry-count:分片失败自动重试,默认 7 次
  • --http-request-timeout:单次请求超时(秒),默认 100
  • --custom-proxy http://127.0.0.1:8888:走代理;程序默认跟随系统代理,加--use-system-proxy false可关掉
  • --task-start-at 20261015030000:到点才开工(格式 yyyyMMddHHmmss),适合凌晨跑大文件
  • 报错别慌,第一反应开 DEBUG 日志:--log-level DEBUG --log-file-path ./download.log,五档为 DEBUG / ERROR / INFO / OFF / WARN

只选你想要的清晰度、语言和编码

一份 DASH 清单里常塞着三四档清晰度、五六条音轨、好几组字幕,全下回来既费盘又费时间。

先说结论:不带筛选参数 → 弹交互选择框勾选;--auto-select→ 自动每种类型选最佳。想精挑,用-sv(视频)/-sa(音频)/-ss(字幕),都是字段=正则写法,冒号拼接多个条件,for=best|worst|all决定取几条:

# 只要 1080p 视频轨 N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd" -sv res=1920x1080:for=best

res按"宽x高"匹配,其余字段同理:lang语言、codecs编码、name轨道名。想反着来,-dv / -da / -ds剔除不要的:

# 英日音轨全部排除,视频照常取最佳 N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd" -sv for=best -da lang="en|ja"

进阶收口:

  • 只要字幕:--sub-only --sub-format VTT,默认输出 SRT
  • -mt:音视频字幕并发拉取,总耗时明显缩短
  • 多轨防重名:--save-pattern "<SaveName>_<Resolution>_<Bandwidth>",得到video_1920x1080_5000000.mp4这类名字,模板还支持<Language>、<Codecs>、<FrameRate>等变量
  • --custom-range 01:00-05:00:只下部分分片(时间区间,或0-100这种分片序号),先验证片源质量再全下
  • 想换混流器收尾:-M format=mkv:muxer=mkvmerge

直播边录边合成,加密流解密

直播流是一场越拉越长的接力赛——分片无限增长、边播边删。默认策略是"先下完再合并",录几小时要干等。开实时合并,录完即得成品:

N_m3u8DL-RE "https://cmafref.akamaized.net/cmaf/live-ull/2006350/akambr/out.mpd" --live-real-time-merge

上面是官方直播测试流,专门用来验证录制流程。配合--live-record-limit 02:00:00设时长上限,到点自动收工。其余选项:

  • --live-perform-as-vod:把正在播的直播当点播一次性拉走
  • --live-pipe-mux:管道直喂 FFmpeg 实时混流,延迟最低,但弱网易丢数据
  • --live-fix-vtt-by-audio:读音频起始时间修正 VTT 字幕时间轴
  • 分片默认保留,想省盘加--live-keep-segments false

加密流怎么解?先判断有没有加密:HLS 清单找#EXT-X-KEY,DASH 找ContentProtection。加密流一般要KID:KEY形式的密钥,用--key传入(所有分片共用一把 KEY 时可省略 KID 直接给密钥值):

N_m3u8DL-RE "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p_ClearKey.mpd" --key 9eb4050de44b4802932e27d75083e266:166634c675823c235a4a9446fad52e4d

进阶收口:

  • 密钥多就写进文本文件,--key-text-file让程序按 KID 自动查找
  • --decryption-engine切解密引擎:默认 MP4DECRYPT,可换 FFMPEG 或 SHAKA_PACKAGER;工具不在 PATH 里用--decryption-binary-path指定全路径
  • HLS 场景已知加密方法、密钥、IV 时可直接硬指定,省掉猜测:--custom-hls-method AES_128 --custom-hls-key <16字节hex> --custom-hls-iv <16字节hex>
  • 一句提醒:只对你有合法权限的内容做解密,这个工具的定位是学习与技术研究

测试流不够用?仓库自带的 TestStreams.md 列了二十多条 DASH / HLS / ISM 官方示例,多音轨、多 Period、加密、直播都有,按需取用。

故障对照表:症状 → 原因 → 解法

症状原因解法
启动即提示找不到 FFmpegFFmpeg 不在 PATH安装 FFmpeg,或--ffmpeg-binary-path指定 exe 全路径
老 Windows 终端界面错乱系统终端不支持 ANSI 渲染换 cmder 之类终端运行,或加--no-ansi-color
合并后文件不完整且无法复查--del-after-done默认开启,临时分片已删用--del-after-done false保留分片;分片数量核对(--check-segments-count)默认就是开的
弱网分片反复失败默认重试 7 次 / 超时 100 秒不够--download-retry-count 10 --http-request-timeout 60
解密阶段报找不到解密工具mp4decrypt 或 shaka-packager 不在 PATH安装对应工具,或--decryption-binary-path指定全路径

回到深夜十一点那条网课链接——现在它也能安安静静躺在你的下载目录里,变成一个完整的 MP4。下次再有人甩来"只能在线看",你知道该敲哪条命令了。🎬

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

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

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

立即咨询