返回顶部
m

m3u8-downloaderm3u8下载器

Download encrypted m3u8/HLS videos using parallel downloads. Use when given an m3u8 URL to download a video, especially encrypted HLS streams with AES-128.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
738
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

m3u8-downloader

M3U8 视频下载器

支持并行分段下载和自动解密的HLS/m3u8视频下载工具。

前置依赖

  • - aria2c(安装:brew install aria2)
  • ffmpeg(安装:brew install ffmpeg)

完整工作流程(从网页到MP4)

步骤1:从网页提取m3u8地址

如果提供的是网页URL(而非直接m3u8链接),使用浏览器自动化查找流地址:

javascript
// 在浏览器控制台或通过浏览器工具执行
(() => {
// 检查HLS.js播放器实例
if (window.hls && window.hls.url) return window.hls.url;
if (window.player && window.player.hls && window.player.hls.url) return window.player.hls.url;

// 在window对象中搜索m3u8地址
const allVars = Object.keys(window).filter(k => {
try {
return window[k] && typeof window[k] === object &&
window[k].url && window[k].url.includes(m3u8);
} catch(e) { return false; }
});
return allVars.length > 0 ? allVars.map(k => window[k].url) : 未找到;
})()

使用 profile=openclaw(隔离浏览器)以避免浏览器历史记录。

步骤2:处理主播放列表(多码率)

主播放列表列出的是不同质量的变体,而非分段:

bash
curl -s https://example.com/playlist.m3u8

输出示例:


#EXT-X-STREAM-INF:BANDWIDTH=8247061,RESOLUTION=1920x1080


1080p/video.m3u8


#EXT-X-STREAM-INF:BANDWIDTH=4738061,RESOLUTION=1280x720


720p/video.m3u8

选择最高质量(例如1080p)并获取对应的子播放列表:

bash
BASE_URL=https://example.com
curl -s ${BASE_URL}/1080p/video.m3u8

步骤3:提取分段地址

分段可能使用非标准扩展名(例如 .jpeg 而非 .ts):

bash
mkdir -p /tmp/videodownload && cd /tmp/videodownload

BASE_URL=https://example.com/1080p
curl -s ${BASE_URL}/video.m3u8 | grep -E ^[^#] | while read seg; do
echo ${BASE_URL}/${seg}
done > urls.txt

统计分段数量

wc -l urls.txt

步骤4:使用aria2c并行下载

bash
aria2c -i urls.txt -j 16 -x 16 -s 16 --file-allocation=none -c true \
--console-log-level=warn --summary-interval=30

  • - -j 16:16个并发下载
  • -x 16:每个文件16个连接
  • -c true:继续部分下载

步骤5:使用ffmpeg合并

bash

获取分段数量


NUM_SEGMENTS=$(wc -l < urls.txt)

生成文件列表(根据需要调整文件名模式)

for i in $(seq 0 $((NUM_SEGMENTS-1))); do echo file video${i}.jpeg # 或 video${i}.ts done > filelist.txt

合并(复制流,不重新编码)

ffmpeg -y -f concat -safe 0 -i filelist.txt -c copy ~/Downloads/output.mp4

步骤6:清理

bash
rm -rf /tmp/video_download

快速脚本使用

bash
~/clawd/skills/m3u8-downloader/scripts/download.sh https://example.com/video.m3u8 输出文件名

注意:该脚本可能无法处理所有边界情况(主播放列表、非标准扩展名)。对于复杂流,请使用上述手动流程。

处理加密流(AES-128)

在播放列表中查找 #EXT-X-KEY:METHOD=AES-128,URI=enc.key:

bash
curl -s https://example.com/path/enc.key -o enc.key
ffmpeg -allowedextensions ALL -i localplaylist.m3u8 -c copy output.mp4

输出

最终视频保存为 ~/Downloads/<输出文件名>.mp4

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 m3u8-downloader-1776420069 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 m3u8-downloader-1776420069 技能

通过命令行安装

skillhub install m3u8-downloader-1776420069

下载

⬇ 下载 m3u8-downloader v1.0.0(免费)

文件大小: 3.95 KB | 发布时间: 2026-4-17 18:53

v1.0.0 最新 2026-4-17 18:53
Initial publish

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部