用 m3u8 下载工具 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 是一款跨平台的 m3u8 下载工具,同时支持 HLS(.m3u8)、DASH(.mpd)和微软 ISM 三类清单,点播与直播都能处理。你把一条链接交给它,选轨、下分片、解密、合并全部自己完成,最终产出的是单个可直接播放的视频文件,而不是一堆散落的分片。
跑通一次 m3u8 下载
Windows 和 macOS 用户到 release 页面下载对应平台的压缩包,解压后就能用;Arch Linux 一条命令装好:
yay -Syu n-m3u8dl-re-bin接下来打开浏览器的网络面板,找到以 .m3u8 结尾的那条请求,复制完整 URL,在终端执行:
N_m3u8DL-RE "https://example.com/video.m3u8"终端会列出视频、音频、字幕的轨道列表,勾选想要的轨道回车就开始下载。默认 10 个线程下载分片,带宽有余量就调大--thread-count;想省流量则加-R 100K做限速。
如果只想快速跑通,记住这一条命令:
N_m3u8DL-RE "https://example.com/video.m3u8"
把点播视频存成 mp4
下载下来的成片默认按源流格式输出,想固定容器格式或换字幕格式时,加上对应参数:
N_m3u8DL-RE "https://example.com/video.m3u8" -M format=mp4| 参数 | 作用 |
|---|---|
-M format=mp4 | 指定成片容器,mkv、ts 同样可用 |
--sub-format vtt | 字幕默认 srt,换成 vtt 输出 |
--skip-merge | 保留原始分片不合并,之后可重新处理 |
跑完后到输出目录(当前目录,或用--save-dir指定)找到对应格式的成片,用播放器打开确认画面和声音正常,就说明合并成功了。
让直播录够 30 分钟自动停
直播流想录一段时间就收手,不用盯着终端手动掐断:
N_m3u8DL-RE "https://example.com/live.m3u8" --live-record-limit 00:30:00| 参数 | 作用 |
|---|---|
--live-record-limit 00:30:00 | 录满指定时长后自动停止 |
--no-log | 关闭日志输出,保持终端干净 |
时长到达后程序自动退出,录制文件留在输出目录里,直接播放核对一下录制内容是否完整即可。
拿着密钥解开加密流
流是加密的,而你已经拿到 KID 和 KEY 时,把密钥交给程序就能直接下:
N_m3u8DL-RE "https://example.com/encrypted.m3u8" --key <KID>:<KEY>| 参数 | 作用 |
|---|---|
--key KID:KEY | 提供解密用的密钥 |
--decryption-engine | 切换解密引擎,MP4 CENC 解密默认 mp4decrypt,可改 ffmpeg 或 shaka-packager |
HLS 的 AES、ChaCha20 加密由程序内置实现直接处理;解密成功后拿到的就是可正常播放的成片,用播放器验证即可。
想改行为或加功能,看这些目录
解析相关的问题去 src/N_m3u8DL-RE.Parser/,它判断输入类型并把 HLS/DASH/MSS/IPTV 清单转成统一的轨道列表。下载与录制的逻辑在 src/N_m3u8DL-RE/DownloadManager/,多轨并发、分片重试、直播去重都在这里。加密实现在 src/N_m3u8DL-RE/Crypto/,内置 AES 与 ChaCha20 两套代码。
N_m3u8DL-RE 适用于点播离线收藏、直播按时长固定录制、加密流已有密钥这三种场景;点播任务的硬依赖只有 ffmpeg,启动前检查不到会直接报错。项目以 MIT 协议开源,源码获取方式:
git clone https://gitcode.com/GitHub_Trending/nm3/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
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考