/byted-kickart-video-analyzer
视频解析SKILL:提供视频解析、视频分析、视频反解、视频分镜提取、视频元数据提取等功能。适用于需要对本地或网络视频文件进行内容解析、分镜提取和元数据分析的场景,支持MP4、MOV等主流视频格式。当用户提及'视频解析、视频分析、视频反解、视频分镜、视频元数据提取、本地视频分析'或表达等价意图时触发
$ npx -y skills add bytedance/agentkit-samples --skill byted-kickart-video-analyzer --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/byted-kickart-video-analyzer
Context preview
The summary Claude sees to decide when to auto-load this skill.
视频解析SKILL:提供视频解析、视频分析、视频反解、视频分镜提取、视频元数据提取等功能。适用于需要对本地或网络视频文件进行内容解析、分镜提取和元数据分析的场景,支持MP4、MOV等主流视频格式。当用户提及'视频解析、视频分析、视频反解、视频分镜、视频元数据提取、本地视频分析'或表达等价意图时触发
SKILL.md
byted-kickart-video-analyzer.SKILL.mdname: "byted-kickart-video-analyzer"
description: "视频解析SKILL:提供视频解析、视频分析、视频反解、视频分镜提取、视频元数据提取等功能。适用于需要对本地或网络视频文件进行内容解析、分镜提取和元数据分析的场景,支持MP4、MOV等主流视频格式。当用户提及'视频解析、视频分析、视频反解、视频分镜、视频元数据提取、本地视频分析'或表达等价意图时触发"
version: "1.0.8"
视频解析SKILL
📋 工具说明
核心功能
提供视频解析、视频分析、视频反解、视频分镜提取、视频元数据提取等功能,解析本地或网络视频文件,提取视频元数据(时长、分辨率)、视频分镜信息和内容分析。
可用命令
| 命令 | 功能 | 说明 | |------|------|------| | `python3.12 ./scripts/plan.py` | 套餐查询 | 查询用户当前的 Ark Claw 套餐 | | `python3.12 ./scripts/upload.py --file <视频路径>` | 视频上传 | 上传本地或网络视频文件获取媒资ID | | `python3.12 ./scripts/analyze.py --media-id <媒资ID> --output <输出文件>` | 视频解析 | 解析视频,提取分镜和元数据 |
📥 视频获取方式
支持以下两种方式获取视频: 1. **本地文件**:直接提供本地视频文件的绝对路径 2. **网络视频**:先使用下载工具(如curl、wget或浏览器)将视频保存到本地,再提供本地路径进行反解
---
🚨 强制前置校验流程(必须按顺序执行,任意不通过直接终止流程)
所有用户请求必须先完成以下3步校验,不得跳过:
1. 火山鉴权校验
- 执行环境变量检查命令:
echo "ACCESS_KEY_ID: $ACCESS_KEY_ID" && echo "SECRET_ACCESS_KEY: $SECRET_ACCESS_KEY"
- 判断鉴权结果:
- **鉴权通过**:`ACCESS_KEY_ID` 和 `SECRET_ACCESS_KEY` 均为非空值 → 鉴权通过
- **鉴权不通过**:执行以下引导方案
❌ 鉴权未配置时的引导方案
1. 引导用户直接在聊天中发送ACCESS_KEY_ID/SECRET_ACCESS_KEY内容: > 请你提供火山账号AK&SK,用于检查火山创作Agent是否已开通套餐和有可用的创点! 2. 收到用户发送的ACCESS_KEY_ID/SECRET_ACCESS_KEY后,执行配置命令:
export ACCESS_KEY_ID=用户提供的ACCESS_KEY_ID值
export SECRET_ACCESS_KEY=用户提供的SECRET_ACCESS_KEY值
3. 配置完成后告知用户: > 已完成AK&SK临时配置,当前配置仅在本次会话生效,不会持久化存储,请放心使用。 4. 后续所有相关脚本执行时,均会自动通过`export`指定这两个环境变量,确保鉴权正常,无需用户重复配置
2. 套餐有效性校验
- **步骤1:Python版本校验**
python3.12 --version || (echo "❌ Python 3.12+ 未安装,请先安装Python 3.12" && exit 1)
- **步骤2:依赖包安装校验**
python3.12 -m pip install -r ./scripts/requirements.txt
- **步骤3:执行套餐查询命令**
python3.12 -m ./scripts/plan.py
- **步骤4:结果处理逻辑**
- ✅ **套餐有效**:返回结果中的 `message` 字段为有效截止时间(北京时间),校验通过
- ❌ **套餐已过期**:`message` 小于等于当前时间,引导用户开通套餐,终止流程
- ❌ **接口调用错误**:参考「错误处理规范」匹配错误码,向用户明确告知错误原因和解决方案,并且终止流程
3. 技能版本校验
- **步骤1:执行版本检查命令**
python3.12 -m ./scripts/upgrade.py
- **步骤2:解析返回结果**
返回格式示例:
{"code":"0","message":"success","data":"{\"install_command\":\"\",\"latest_version\":\"1.0.0\",\"latest_version_number\":100000000,\"update_message\":\"\"}"}- `latest_version`:最新版本号(如 "1.0.0")
- `install_command`:新版本安装指令
- **步骤3:版本对比逻辑**
- ✅ **当前版本 >= 最新版本**:版本校验通过,继续后续流程
- ⚠️ **当前版本 < 最新版本**:执行以下更新询问流程
1. 询问用户是否更新到最新版本: > 检测到技能有新版本 {latest_version},是否更新?(是/否) 2. 用户确认更新(是):执行 `install_command` 安装新版本 3. 用户不更新(否):跳过更新,继续后续流程
---
🛠️ 视频解析执行流程
完整流程概览
用户请求 → 强制前置校验 → 用户输入收集 → 视频上传 → 视频解析 → 结果返回
前置准备
1. 确保输出目录存在:`mkdir -p /tmp/openclaw/byted-kickart-video-analyzer/output` 2. 生成唯一输出文件名:`video_analysis_result_<timestamp>_<random>.json`
执行步骤
1. **步骤0:强制前置校验**(必须按顺序执行,任意不通过直接终止流程)
- 执行「🚨 强制前置校验流程」中的所有校验步骤
- ✅ 火山鉴权校验通过
- ✅ 套餐有效性校验通过
- ✅ 技能版本校验通过
- 只有全部校验通过后,才能进入下一步
2. **步骤1:视频上传引导**
- 询问用户:「请先提供要解析的视频:可以发我视频tos链接,或上传 MP4/MOV 文件(≤60s、≤50MB、≥480p)」
- 支持两种上传方式:
- **本地文件**:直接提供本地视频文件的绝对路径(如 `/Users/user/video.mp4`)
- **公网URL**:提供可直接访问的视频链接(如 `https://example.com/video.mp4`)
3. **步骤2:视频预处理**
- 若用户提供的是公网URL,先下载到本地:
mkdir -p /tmp/openclaw/byted-kickart-video-analyzer/input
curl -L -o /tmp/openclaw/byted-kickart-video-analyzer/input/downloaded_video.mp4 "<视频URL>"- 检查文件是否存在:`ls -la /tmp/openclaw/byted-kickart-video-analyzer/input/downloaded_video.mp4`
- 检查文件类型是否为有效视频(仅支持MP4/MOV格式):
file /tmp/openclaw/byted-kickart-video-analyzer/input/downloaded_video.mp4 | grep -qE "ISO Media|MPEG v4|QuickTime" && echo "valid" || echo "invalid"
- 若文件不存在或类型无效,**终止流程并提示用户**:
> 文件不可用,请检查路径是否正确,或确认文件为有效视频格式(仅支持 MP4/MOV)
4. **步骤3:上传视频获取媒资信息**
- 执行 `python3.12 ./scripts/upload.py --file <视频路径>` 命令
- 返回字段说明:
| 字段 | 类型 | 说明 | |------|------|------| | `id` | string | 媒资ID(唯一标识) | | `url` | string | 视频访问URL | | `duration` | number | 视频时长(秒) |
5. **步骤4:解析媒资信息**
- 从上传输出中提取 `id` 作为媒资ID
- 提取 `duration` 用于视频分析
6. **步骤5:执行视频解析**
- 执行以下命令:
python3.12 ./scripts/analyze.py \
--media-id <媒资ID> \
--output /tmp/openclaw/byted-kickart-video-analyzer/output/video_analysis_result_<timestamp>_<random>.json- **重要**:
- `--media-id` 参数值为媒资ID(通过上传脚本获取)
- `--output` 参数值为**结果JSON文件的绝对路径**;脚本会同时输出两个文件:
- 格式化后的JSON文件:`<output>.json`(原始格式,用于SKILL消息模板渲染)
- seedance格式JSON文件:`<output>_seedance.json`(符合seedance格式,用于视频生成)
7. **步骤6:解析结果**
- **读取结果文件**:脚本会同时生成两个文件,均需读取并持久化
- **持久化存储**:将解析结果和两个输出文件路径(原始格式 + Seedance格式)持久化到会话上下文,供后续流程使用
8. **步骤7:询问输出格式**
- **询问用户**:「解析完成!请选择输出格式:
- 原始格式:适合查看详细解析结果
- Seedance格式:适合用于视频生成
请回复「原始格式」或「Seedance格式」」
- **等待用户回复**:根据用户选择决定后续输出方式
9. **步骤8:结果输出**
- **原始格式**:读取 `<output>.json` 文件内容,使用「原始格式消息模板」输出
- **Seedance格式**:读取 `<output>_seedance.json` 文件内容,使用「Seedance格式消息模板」输出
7.1 输出文件说明
脚本执行后会同时生成两个JSON文件:
| 文件类型 | 文件路径 | 用途 | |---------|---------|------| | 原始格式 | `<output>.json` | 用于SKILL消息模板渲染,提供完整的视频解析信息,适合查看详细解析结果 | | Seedance格式 | `<output>_seedance.json` | 符合Seedance视频生成接口格式,适合用于视频生成 |
7.2 原始格式文件结构(用于消息模板渲染)
**字段提取路径(供Agent使用):**
| 模板变量 | JSON路径 | 说明 | |---------|---------|------| | `{video_duration}` | `$.video_info.video_duration` | 视频时长(秒) | | `{product_title}` | `$.product_info.product_title` | 商品名称 | | `{product_description}` | `$.product_info.product_description` | 商品描述 | | `{shot_table_rows}` | `$.video_info.shot_breakdown` | 分镜表格数据 |
**分镜数据提取规则:**
遍历 `$.video_info.shot_breakdown` 数组,每行分镜数据提取: | 字段 | JSON路径 | 说明 | |------|---------|------| | `{shot_number}` | `[i].shot_number` | 分镜编号 | | `{start_time}` | `[i].start_time` | 开始时间 | | `{end_time}` | `[i].end_time` | 结束时间 | | `{camera_language}` | `[i].camera_language` | 镜头语言 | | `{main_subject}` | `[i].main_subject` | 镜头主体 | | `{marketing_intent}` | `[i].marketing_intent` | 营销意图 | | `{on_camera_speech}` | `[i].on_camera_speech` | 口播 | | `{voiceover_text}`
Read more
name: "byted-kickart-video-analyzer" description: "视频解析SKILL:提供视频解析、视频分析、视频反解、视频分镜提取、视频元数据提取等功能。适用于需要对本地或网络视频文件进行内容解析、分镜提取和元数据分析的场景,支持MP4、MOV等主流视频格式。当用户提及'视频解析、视频分析、视频反解、视频分镜、视频元数据提取、本地视频分析'或表达等价意图时触发" version: "1.0.8"
视频解析SKILL
📋 工具说明
核心功能
提供视频解析、视频分析、视频反解、视频分镜提取、视频元数据提取等功能,解析本地或网络视频文件,提取视频元数据(时长、分辨率)、视频分镜信息和内容分析。
可用命令
| 命令 | 功能 | 说明 | |------|------|------| | `python3.12 ./scripts/plan.py` | 套餐查询 | 查询用户当前的 Ark Claw 套餐 | | `python3.12 ./scripts/upload.py --file <视频路径>` | 视频上传 | 上传本地或网络视频文件获取媒资ID | | `python3.12 ./scripts/analyze.py --media-id <媒资ID> --output <输出文件>` | 视频解析 | 解析视频,提取分镜和元数据 |
📥 视频获取方式
支持以下两种方式获取视频: 1. **本地文件**:直接提供本地视频文件的绝对路径 2. **网络视频**:先使用下载工具(如curl、wget或浏览器)将视频保存到本地,再提供本地路径进行反解
---
🚨 强制前置校验流程(必须按顺序执行,任意不通过直接终止流程)
所有用户请求必须先完成以下3步校验,不得跳过:
1. 火山鉴权校验
- 执行环境变量检查命令:
echo "ACCESS_KEY_ID: $ACCESS_KEY_ID" && echo "SECRET_ACCESS_KEY: $SECRET_ACCESS_KEY"
- 判断鉴权结果:
- **鉴权通过**:`ACCESS_KEY_ID` 和 `SECRET_ACCESS_KEY` 均为非空值 → 鉴权通过
- **鉴权不通过**:执行以下引导方案
❌ 鉴权未配置时的引导方案
1. 引导用户直接在聊天中发送ACCESS_KEY_ID/SECRET_ACCESS_KEY内容: > 请你提供火山账号AK&SK,用于检查火山创作Agent是否已开通套餐和有可用的创点! 2. 收到用户发送的ACCESS_KEY_ID/SECRET_ACCESS_KEY后,执行配置命令:
export ACCESS_KEY_ID=用户提供的ACCESS_KEY_ID值 export SECRET_ACCESS_KEY=用户提供的SECRET_ACCESS_KEY值
3. 配置完成后告知用户: > 已完成AK&SK临时配置,当前配置仅在本次会话生效,不会持久化存储,请放心使用。 4. 后续所有相关脚本执行时,均会自动通过`export`指定这两个环境变量,确保鉴权正常,无需用户重复配置
2. 套餐有效性校验
- **步骤1:Python版本校验**
python3.12 --version || (echo "❌ Python 3.12+ 未安装,请先安装Python 3.12" && exit 1)
- **步骤2:依赖包安装校验**
python3.12 -m pip install -r ./scripts/requirements.txt
- **步骤3:执行套餐查询命令**
python3.12 -m ./scripts/plan.py
- **步骤4:结果处理逻辑**
- ✅ **套餐有效**:返回结果中的 `message` 字段为有效截止时间(北京时间),校验通过
- ❌ **套餐已过期**:`message` 小于等于当前时间,引导用户开通套餐,终止流程
- ❌ **接口调用错误**:参考「错误处理规范」匹配错误码,向用户明确告知错误原因和解决方案,并且终止流程
3. 技能版本校验
- **步骤1:执行版本检查命令**
python3.12 -m ./scripts/upgrade.py
- **步骤2:解析返回结果**
返回格式示例:
{"code":"0","message":"success","data":"{\"install_command\":\"\",\"latest_version\":\"1.0.0\",\"latest_version_number\":100000000,\"update_message\":\"\"}"}- `latest_version`:最新版本号(如 "1.0.0")
- `install_command`:新版本安装指令
- **步骤3:版本对比逻辑**
- ✅ **当前版本 >= 最新版本**:版本校验通过,继续后续流程
- ⚠️ **当前版本 < 最新版本**:执行以下更新询问流程
1. 询问用户是否更新到最新版本: > 检测到技能有新版本 {latest_version},是否更新?(是/否) 2. 用户确认更新(是):执行 `install_command` 安装新版本 3. 用户不更新(否):跳过更新,继续后续流程
---
🛠️ 视频解析执行流程
完整流程概览
用户请求 → 强制前置校验 → 用户输入收集 → 视频上传 → 视频解析 → 结果返回
前置准备
1. 确保输出目录存在:`mkdir -p /tmp/openclaw/byted-kickart-video-analyzer/output` 2. 生成唯一输出文件名:`video_analysis_result_<timestamp>_<random>.json`
执行步骤
1. **步骤0:强制前置校验**(必须按顺序执行,任意不通过直接终止流程)
- 执行「🚨 强制前置校验流程」中的所有校验步骤
- ✅ 火山鉴权校验通过
- ✅ 套餐有效性校验通过
- ✅ 技能版本校验通过
- 只有全部校验通过后,才能进入下一步
2. **步骤1:视频上传引导**
- 询问用户:「请先提供要解析的视频:可以发我视频tos链接,或上传 MP4/MOV 文件(≤60s、≤50MB、≥480p)」
- 支持两种上传方式:
- **本地文件**:直接提供本地视频文件的绝对路径(如 `/Users/user/video.mp4`)
- **公网URL**:提供可直接访问的视频链接(如 `https://example.com/video.mp4`)
3. **步骤2:视频预处理**
- 若用户提供的是公网URL,先下载到本地:
mkdir -p /tmp/openclaw/byted-kickart-video-analyzer/input
curl -L -o /tmp/openclaw/byted-kickart-video-analyzer/input/downloaded_video.mp4 "<视频URL>"- 检查文件是否存在:`ls -la /tmp/openclaw/byted-kickart-video-analyzer/input/downloaded_video.mp4`
- 检查文件类型是否为有效视频(仅支持MP4/MOV格式):
file /tmp/openclaw/byted-kickart-video-analyzer/input/downloaded_video.mp4 | grep -qE "ISO Media|MPEG v4|QuickTime" && echo "valid" || echo "invalid"
- 若文件不存在或类型无效,**终止流程并提示用户**:
> 文件不可用,请检查路径是否正确,或确认文件为有效视频格式(仅支持 MP4/MOV)
4. **步骤3:上传视频获取媒资信息**
- 执行 `python3.12 ./scripts/upload.py --file <视频路径>` 命令
- 返回字段说明:
| 字段 | 类型 | 说明 | |------|------|------| | `id` | string | 媒资ID(唯一标识) | | `url` | string | 视频访问URL | | `duration` | number | 视频时长(秒) |
5. **步骤4:解析媒资信息**
- 从上传输出中提取 `id` 作为媒资ID
- 提取 `duration` 用于视频分析
6. **步骤5:执行视频解析**
- 执行以下命令:
python3.12 ./scripts/analyze.py \
--media-id <媒资ID> \
--output /tmp/openclaw/byted-kickart-video-analyzer/output/video_analysis_result_<timestamp>_<random>.json- **重要**:
- `--media-id` 参数值为媒资ID(通过上传脚本获取)
- `--output` 参数值为**结果JSON文件的绝对路径**;脚本会同时输出两个文件:
- 格式化后的JSON文件:`<output>.json`(原始格式,用于SKILL消息模板渲染)
- seedance格式JSON文件:`<output>_seedance.json`(符合seedance格式,用于视频生成)
7. **步骤6:解析结果**
- **读取结果文件**:脚本会同时生成两个文件,均需读取并持久化
- **持久化存储**:将解析结果和两个输出文件路径(原始格式 + Seedance格式)持久化到会话上下文,供后续流程使用
8. **步骤7:询问输出格式**
- **询问用户**:「解析完成!请选择输出格式:
- 原始格式:适合查看详细解析结果
- Seedance格式:适合用于视频生成
请回复「原始格式」或「Seedance格式」」
- **等待用户回复**:根据用户选择决定后续输出方式
9. **步骤8:结果输出**
- **原始格式**:读取 `<output>.json` 文件内容,使用「原始格式消息模板」输出
- **Seedance格式**:读取 `<output>_seedance.json` 文件内容,使用「Seedance格式消息模板」输出
7.1 输出文件说明
脚本执行后会同时生成两个JSON文件:
| 文件类型 | 文件路径 | 用途 | |---------|---------|------| | 原始格式 | `<output>.json` | 用于SKILL消息模板渲染,提供完整的视频解析信息,适合查看详细解析结果 | | Seedance格式 | `<output>_seedance.json` | 符合Seedance视频生成接口格式,适合用于视频生成 |
7.2 原始格式文件结构(用于消息模板渲染)
**字段提取路径(供Agent使用):**
| 模板变量 | JSON路径 | 说明 | |---------|---------|------| | `{video_duration}` | `$.video_info.video_duration` | 视频时长(秒) | | `{product_title}` | `$.product_info.product_title` | 商品名称 | | `{product_description}` | `$.product_info.product_description` | 商品描述 | | `{shot_table_rows}` | `$.video_info.shot_breakdown` | 分镜表格数据 |
**分镜数据提取规则:**
遍历 `$.video_info.shot_breakdown` 数组,每行分镜数据提取: | 字段 | JSON路径 | 说明 | |------|---------|------| | `{shot_number}` | `[i].shot_number` | 分镜编号 | | `{start_time}` | `[i].start_time` | 开始时间 | | `{end_time}` | `[i].end_time` | 结束时间 | | `{camera_language}` | `[i].camera_language` | 镜头语言 | | `{main_subject}` | `[i].main_subject` | 镜头主体 | | `{marketing_intent}` | `[i].marketing_intent` | 营销意图 | | `{on_camera_speech}` | `[i].on_camera_speech` | 口播 | | `{voiceover_text}`
欢迎来到 AgentKit 代码工坊(Samples)仓库! AgentKit 是火山引擎推出的企业级 AI Agent 开发平台,为开发者提供完整的 Agent 构建、部署和运维解决方案。平台通过标准化的开发工具链和云原生基础设施,显著降低复杂智能体应用的开发部署门槛。 本代码库包含了一系列示例和教程,帮助您理解、实现和集成 AgentKit 的各项功能到您的应用中。
Other skills on agentkit-samples.
- /code-optimization
Optimize code performance through iterative improvements (max 2 rounds). Benchmark execution time and memory usage, compare against baseline implementations, and generate detailed optimization reports. Supports C++, Python, Java, Rust, and other languages.
Open skill - /image-video-gen
根据文字描述生成视频,一个生成图片和视频的工作流技能。依赖 skills: byted-web-search, image-generate, video-generate。注意:此 workflow 没有执行脚本,只是一个描述性的文档。
Open skill - /skills-management
Manage AgentKit skills, SkillHub/skillhub, skill centers, and skill spaces. Use this skill whenever the user has a management intent for AgentKit skills, skill中心, skill 空间, skill space, or skill hub, including listing, inspecting, downloading, fetching, uploading, publishing,
Open skill - /tos-file-access
Upload files or directories to TOS-compatible object storage for Volcano Engine or BytePlus and download files from URLs. Use this skill when (1) Upload Agent-generated files or directories for sharing, (2) Download files from URLs before Agent processing.
Open skill - /veadk-go-skills
根据用户的功能需求,完成与 VeADK-Go 相关的功能; 包括:直接根据需求生成 Agent;将Enio Agent转换为VeADK-Go Agent。
Open skill - /veadk-skills
根据用户的功能需求,完成与 VeADK 相关的功能。
Open skill

