AI 视频导演与自动化剪辑专家。能够理解视频素材内容、视频创作指令,自主规划脚本结构,并通过调用 VectCut API 实现创建剪映草稿、编排素材(B-roll/转场/特效)、生成 AI 配音与字幕,实现端到端的视频创作流程。
Install with the open skills CLI (global, non-interactive — available in every Claude Code session):
npx skills add LeoYeAI/openclaw-master-skills --skill "vectcut-skill" -g -a claude-code -yOr manually — clone and copy the skill directory (SKILL.md + companion files):
git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills /tmp/openclaw-master-skills && cp -r /tmp/openclaw-master-skills/skills/vectcut ~/.claude/skills/vectcut-skillThis skill is a directory: SKILL.md is the entry point; the files below ship with it.
---
name: "vectcut-skill"
description: "AI 视频导演与自动化剪辑专家。能够理解视频素材内容、视频创作指令,自主规划脚本结构,并通过调用 VectCut API 实现创建剪映草稿、编排素材(B-roll/转场/特效)、生成 AI 配音与字幕,实现端到端的视频创作流程。"
homepage: "https://www.vectcut.com/"
metadata:
openclaw:
emoji: "🎬"
requires:
env: ["VECTCUT_API_KEY"]
primaryEnv: "VECTCUT_API_KEY"
dependency:
---
# VectCut Skill(自主规划型 AI 视频架构师)
本技能赋予 AI 像专业剪辑师一样**“思考与执行”**的能力。它不仅能调用 API,还能通过分析用户意图和素材内容,自主规划视频的节奏、视觉风格和逻辑结构,最终产出可直接在剪映 中二次编辑的专业草稿。
## 核心智能行为
* **素材感知**:分析用户提供的视频/图片/音频 URL,理解画面内容与剪辑指令;优先调用现有服务 `get_duration`、`get_resolution`、`video_detail`、`asr_basic`、`asr_nlp`、`asr_llm` 完成时长获取、分辨率判断、画面理解与语音内容解析。`video_detail` 可提取细粒度语义(画面主体关系、人物朝向、物体位置、声音音调与风格等)。
* **ASR 按需策略**:默认优先级 `asr_llm > asr_nlp > asr_basic`,优先使用更高能力接口,仅在明确只需基础识别或时延敏感场景下降级。
- `asr_basic`:速度最快,返回完整文案、句级时间、字级时间;中文/英文效果好,支持粤语、上海话、闽南语、四川/陕西方言;更适合横屏字幕或素材初步理解。
- `asr_nlp`:速度中等,在 basic 基础上增加语义分句(每句不超过 12 字),更适合竖屏字幕。
- `asr_llm`:速度最慢,在 nlp 基础上增加 AI 关键词提取,优先用于竖屏与短视频字幕。
- 三个 ASR 接口均支持传入 `content`(正确文案)以显著提升匹配准确率与处理速度。
- 三种回包结构不同,必须按端点解析:`asr_basic -> result.raw.result.utterances`;`asr_nlp -> segments`;`asr_llm -> segments(含 keywords/en)`。
* **脚本规划**:根据主题(如“成语故事”、“产品评测”)自动拆解分镜,确定各片段时长。
* **草稿生命周期管理**:先创建并维护草稿,再进入编排流程;优先调用 `create_draft` 初始化草稿,按需使用 `modify_draft` 修改草稿名/封面,任务异常或清理阶段使用 `remove_draft` 删除草稿。
* **反思自查**:在关键步骤后调用 `query_script` 回看当前草稿结构,核对轨道、素材与时间段是否符合预期;若不一致,先定位问题再执行修正操作。
* **视觉编排**:基于已创建草稿自主选择并添加转场(Transitions)、特效(Effects)、滤镜(Filters)和文本(Text)。
* **AI 资源补全**:当素材不足时,主动调用 `generate_image`、`generate_speech` 或 `generate_ai_video` 生成 B-roll 填充;其中 `generate_image` 支持 `nano_banana_2`、`nano_banana_pro`、`jimeng-4.5` 等聚合模型,`generate_speech` 通过 `text + provider + model + voice_id` 合成配音,可配合 `volume`、`target_start`、`effect_type/effect_params` 控制入轨位置与音色效果。
* **文本编排生命周期**:通过 `add_text` 创建文本素材,使用 `modify_text` 调整文案与样式,使用 `remove_text` 清理无效文本;文本动画、字体与局部样式优先从枚举中选取,保证可用性与一致性。
* **图片编排生命周期**:通过 `add_image` 添加图片素材,使用 `modify_image` 调整图片源、时间段、位置与动画,使用 `remove_image` 清理无效图片;动画与蒙版类型优先从枚举中选取,保证编排稳定性。
* **视频编排生命周期**:通过 `add_video` 添加视频素材,使用 `modify_video` 调整素材源、裁切区间、位置与速度,使用 `remove_video` 清理无效视频;转场在片段首尾紧邻时生效,且需加在前一个元素上。
* **AI 视频生成能力**:通过 `generate_ai_video` 调用聚合视频模型生成异步任务,再通过 `aivideo/task_status` 查询进度与视频结果;支持文生视频、图生视频与部分模型的首尾帧模式。
* **数字人能力**:通过 `digital_human/create` 发起音频驱动数字人任务,再通过 `digital_human/task_status` 查询生成状态与结果。
* **关键帧编排能力**:通过 `add_video_keyframe` 为文字、图片、视频设置位置、大小、透明度、旋转等关键帧,支持单点与批量关键帧写入。
* **云渲染与结果核验**:通过 `generate_video` 发起云渲染,再用 `task_status` 轮询任务状态。云渲染用于两类目标:创作中渲染中间结果核对预期;流程结束渲染最终成片并输出可直接播放的视频链接。
* **音画同步**:如果需要,可以利用 `get_duration` 计算素材时长,精确对齐视频轨道与音频轨道。
* **音视频预处理工具**:在编排前可优先使用基础处理端点清洗素材。`extract_audio` 可从视频中提取音频(`POST /process/extract_audio`,入参 `video_url`);`split_video` 可按时间段切分视频或音频(`POST /process/split_video`,入参 `video_url`、`start`、`end`)。适用于替换现有视频 B-roll、素材混剪、先切段再入草稿等场景。
## 环境变量配置
所有调用均依赖于远程服务,需在环境中配置:
```bash
export VECTCUT_API_KEY="<your_token>"
```
快捷规则与请求模板见:
- `rules/`:决策规则与调用顺序
- `scripts/`:curl 请求模板与执行脚本
- `examples/`:curl 端到端示例
- `prompts/`:请求路由与命令生成提示词
- `references/`:端点参数与字段契约
- `references/references.md`:References 总索引(端点文档、回包解读、样例入口)
## 执行路由
按“能力域”路由。每个能力域复用同一条五层调用链:
1. 规则层(rules)
- 全局:`rules/rules.md`
- 领域:`rules/<domain>_rules.md`
2. 参数层(references)
- 总索引:`references/references.md`
- 端点总览:`references/endpoint_params.md`
- 端点:`references/endpoints/<domain>.md`
- 枚举:`references/enums/*.json`
3. 提示层(prompts)
- 路由与请求体生成:`prompts/<domain>_ops.md`
4. 执行层(scripts)
- 通过 curl 发起 API 请求:`scripts/<domain>_ops.sh`
5. 验证层(examples)
- 基于 curl 的最小闭环验证:`examples/<domain>_ops_demo.sh`
### 当前已落地能力域:filter
- 规则:`rules/filter_rules.md`
- 参数:`references/endpoints/filter.md`
- 提示:`prompts/filter_ops.md`
### 当前已落地能力域:effect
- 规则:`rules/effect_rules.md`
- 参数:`references/endpoints/effect.md`
- 提示:`prompts/effect_ops.md`
### 当前已落地能力域:material
- 规则:`rules/material_rules.md`
- 参数:`references/endpoints/material.md`
- 提示:`prompts/material_ops.md`
### 当前已落地能力域:draft
- 规则:`rules/draft_rules.md`
- 参数:`references/endpoints/draft.md`
- 提示:`prompts/draft_ops.md`
### 当前已落地能力域:asr
- 规则:`rules/asr_rules.md`
- 参数:`references/endpoints/asr.md`
- 提示:`prompts/asr_ops.md`
### 当前已落地能力域:process
- 规则:`rules/process_rules.md`
- 参数:`references/endpoints/process.md`
- 提示:`prompts/process_ops.md`
### 当前已落地能力域:generate_video
- 规则:`rules/generate_video_rules.md`
- 参数:`references/endpoints/generate_video.md`
- 提示:`prompts/generate_video_ops.md`
### 当前已落地能力域:generate_speech
- 规则:`rules/generate_speech_rules.md`
- 参数:`references/endpoints/generate_speech.md`
- 提示:`prompts/generate_speech_ops.md`
- 端点:`POST /cut_jianying/generate_speech`
- 关键入参:`text`、`provider`、`model`、`voice_id`、`volume`、`target_start`、`effect_type`、`effect_params`
- 关键出参:`audio_url`、`draft_id`、`draft_url`、`material_id`
### 当前已落地能力域:generate_ai_image
- 规则:`rules/generate_ai_image_rules.md`
- 参数:`references/endpoints/generate_ai_image.md`
- 提示:`prompts/generate_ai_image_ops.md`
- 端点:`POST /cut_jianying/generate_image`
- 关键入参:`prompt`、`model`、`reference_image`、`size`、`draft_id`
- 关键出参:`output.image_url`、`output.draft_id`、`output.draft_url`
### 当前已落地能力域:generate_ai_video
- 规则:`rules/generate_ai_video_rules.md`
- 参数:`references/endpoints/generate_ai_video.md`
- 提示:`prompts/generate_ai_video_ops.md`
- 端点:`POST /cut_jianying/generate_ai_video`、`GET /cut_jianying/aivideo/task_status`
- 关键入参:
- generate:`prompt`、`model`、`resolution`
- status:`task_id`
- 关键出参:
- generate:`task_id`
- status:`status`、`progress`、`video_url`、`draft_id`、`draft_url`
### 当前已落地能力域:digital_human
- 规则:`rules/digital_human_rules.md`
- 参数:`references/endpoints/digital_human.md`
- 提示:`prompts/digital_human_ops.md`
- 端点:`POST /cut_jianying/digital_human/create`、`GET /cut_jianying/digital_human/task_status`
- 关键入参:
- create:`audio_url`、`video_url`
- status:`task_id`
- 关键出参:
- create:`task_id` 或 `id`
- status:`status`、`progress`、`video_url`
### 当前已落地能力域:video
- 规则:`rules/video_rules.md`
- 参数:`references/endpoints/video.md`
- 提示:`prompts/video_ops.md`
- 端点:`POST /cut_jianying/add_video`、`POST /cut_jianying/modify_video`、`POST /cut_jianying/remove_video`
- 关键入参:
- add:`video_url`
- modify/remove:`draft_id`、`material_id`
- 关键出参:`output.draft_id`、`output.draft_url`、`output.material_id`(add/modify)
### 当前已落地能力域:image
- 规则:`rules/image_rules.md`
- 参数:`references/endpoints/image.md`
- 提示:`prompts/image_ops.md`
- 端点:`POST /cut_jianying/add_image`、`POST /cut_jianying/modify_image`、`POST /cut_jianying/remove_image`
- 关键入参:
- add:`image_url`
- modify/remove:`draft_id`、`material_id`
- 关键出参:`output.draft_id`、`output.draft_url`、`output.material_id`(add/modify)
### 当前已落地能力域:text
- 规则:`rules/text_rules.md`
- 参数:`references/endpoints/text.md`
- 提示:`prompts/text_ops.md`
- 端点:`POST /cut_jianying/add_text`、`POST /cut_jianying/modify_text`、`POST /cut_jianying/remove_text`
- 关键入参:
- add:`text`、`start`、`end`
- modify:`draft_id`、`material_id`、`text`、`start`、`end`
- remove:`draft_id`、`material_id`
- 关键出参:
- add:`output.material_id`
- modify/remove:`output.draft_id`、`output.draft_url`
### 当前已落地能力域:keyframe
- 规则:`rules/keyframe_rules.md`
- 参数:`references/endpoints/keyframe.md`
- 提示:`prompts/keyframe_ops.md`
- 端点:`POST /cut_jianying/add_video_keyframe`
- 关键入参:`draft_id`、`track_name`、`property_types`、`times`、`values`
- 关键出参:`output.added_keyframes_count`、`output.draft_id`、`output.draft_url`
### 新增能力域时的约定
- 域命名统一使用小写下划线:`text` / `audio` / `subtitle` / `effect` / `keyframe` / `digital_human`。
- 根文件只维护“能力域索引”,端点细节只写在对应 `<domain>.md`。
- 任意域新增端点时,只改该域文件,不改其他域。
## 交互约定(输出格式)
当你使用本技能完成“创建/编辑/渲染”类任务时,输出优先包含这些字段,便于后续继续编辑或查询:
- `draft_id`:草稿 ID
- `draft_url`:可打开的剪映/CapCut 草稿 URL,应封装为 markdown 超链接格式:`[草稿名称](draft_url)`
- `material_id`: 添加进草稿后的素材(图片、视频、音频、字幕、滤镜、贴纸、特效)的ID,方便后面继续操作
## 常用能力(可组合)
### 1) 创建草稿
调用:`POST /create_draft`
示例(1080x1920 竖屏):
```bash
curl -X POST http://open.vectcut.com/cut_jianying/create_draft \
-H "Authorization: Bearer $VECTCUT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"width":1080,"height":1920,"name":"demo"}'
```
### 2) 添加素材与时间线编排
你可以按需组合以下操作(都为 `POST` JSON):
- `/add_video`:添加视频(支持裁切、速度、变换、蒙版、混合、转场等)
- `/modify_video`:修改视频(基于 `material_id` 更新视频源、裁切区间、位置与速度)
- `/remove_video`:删除视频(基于 `material_id` 删除视频素材)
- `/add_image`:添加图片(支持入/出场动画、转场、蒙版、混合等)
- `/modify_image`:修改图片(基于 `material_id` 更新图片源、时长、位置、动画与样式)
- `/remove_image`:删除图片(基于 `material_id` 删除图片素材)
- `/add_audio`:添加音频(支持音量、变速、淡入淡出、音效等)
- `/add_text`:添加文字(支持字体、描边、阴影、背景、动画、多样式范围等)
- `/modify_text`:修改文字(基于 `material_id` 更新文案、时间段与样式)
- `/remove_text`:删除文字(基于 `material_id` 删除文本素材)
- `/add_sticker`:添加贴纸
- `/add_effect`:添加特效(scene/character)
- `/add_filter`:添加滤镜
- `/add_video_keyframe`:添加关键帧(支持位置、大小、透明度、旋转等属性)
- `/get_video_scene_effect_types`:获取场景特效(用于 effect_category=scene)
- `/get_video_character_effect_types`:获取人物特效(用于 effect_category=character)
- `/get_filter_types`:添加滤镜
### 3) 高级能力(AI 与搜索)
- `/generate_image`:AI 图片生成并添加到草稿(支持文生图/图生图,聚合模型:nano_banana_2、nano_banana_pro、jimeng-4.5)
- `/generate_ai_video`:AI 视频生成(支持文生视频/图生视频/部分模型首尾帧,异步任务)
- `/aivideo/task_status`:查询 AI 视频生成任务状态与视频结果
- `/digital_human/create`:创建数字人口播任务(音频 + 视频输入)
- `/digital_human/task_status`:查询数字人任务状态与结果
- `/generate_speech`:TTS 语音合成并添加到草稿
- `/llm/tts/fish/clone_voice`:克隆音色并返回 `voice_id`(可用于后续 `generate_speech`)
- `/llm/tts/voice_assets`:查询已克隆音色资产(支持 `provider=minimax|fish|NULL`)
- `/remove_bg`:智能抠像(移除背景)并生成合成预设
- `/search_sticker`:搜索在线贴纸素材
### 4) 获取可用枚举(动画/转场/特效/滤镜/字体)
用于让 AI 在可用范围内选型:
- `GET /get_transition_types`
- `GET /get_mask_types`
- `GET /get_intro_animation_types`、`/get_outro_animation_types`、`/get_combo_animation_types`
- `GET /get_text_intro_types`、`/get_text_outro_types`、`/get_text_loop_anim_types`
- `GET /get_video_scene_effect_types`、`/get_video_character_effect_types`
- `GET /get_filter_types`
- `GET /get_font_types`
- `GET /get_audio_effect_types`
示例(以转场枚举为例):
```bash
curl -X GET "http://open.vectcut.com/cut_jianying/get_transition_types" \
-H "Authorization: Bearer $VECTCUT_API_KEY"
```
### 4) 云渲染(中间核验 + 最终交付)
- `POST /generate_video`:对草稿 `draft_id` 发起云渲染(返回 `task_id`)。
- `POST /task_status`:轮询 `task_id` 获取渲染进度与结果。
- 创作过程中:可按关键里程碑发起渲染,核对当前画面、节奏、字幕与预期是否一致。
- 任务结束时:必须轮询到完成态,并把结果中的可播放视频链接作为最终输出返回。
### 5. 典型场景示例
#### 场景 A:成语故事/绘本视频制作(文生图 + 配音 + 自动对齐)
当用户需要制作“亡羊补牢”这样的故事视频时,建议按以下逻辑编排:
1. **分镜拆解**:将故事拆分为 N 个片段(图片 Prompt + 旁白文本)。
2. **生成循环**(对每个片段):
* 调用 `generate_image` 生成插图,获得 `image_url`。
* 调用 `generate_speech` 生成配音,获得 `audio_url`。
* **关键点**:调用 `get_duration(url=audio_url)` 获取配音时长 `duration`。
* 调用 `add_image`,将 `image_url` 加入草稿,并设置 `duration` 等于配音时长,确保音画同步。
* (如果 `generate_speech` 未自动添加)调用 `add_audio` 添加配音。
参考 Prompt 模板:`assets/prompts/story_creation_zh.md`
#### 场景 B:素材混剪
1) 创建草稿 → 2) add_video/add_audio/add_text → 3) generate_video 发起云渲染 → 4) task_status 轮询直到可取播放链接
```bash
curl -X POST http://open.vectcut.com/cut_jianying/create_draft \
-H "Authorization: Bearer $VECTCUT_API_KEY" \
-d '{"name":"my short"}'
```
假设返回 `draft_id=xxx` 后:
```bash
curl -X POST http://open.vectcut.com/cut_jianying/add_video \
-H "Authorization: Bearer $VECTCUT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"draft_id":"xxx","video_url":"https://example.com/a.mp4","start":0,"end":10,"target_start":0}'
```
发起渲染:
```bash
curl -X POST http://open.vectcut.com/cut_jianying/generate_video \
-H "Authorization: Bearer $VECTCUT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"draft_id":"xxx","resolution":"1080P","framerate":"30"}'
```
轮询:
```bash
curl -X POST http://open.vectcut.com/cut_jianying/task_status \
-H "Authorization: Bearer $VECTCUT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"task_id":"TASK_ID"}'
```
## 使用提示(让 AI 更“会剪”)
- 让用户提供素材 URL、期望时长、画面比例(9:16/16:9/1:1)、字幕风格、BGM 风格
- 需要更细粒度理解时,调用 `video_detail` 理解(关系/朝向/位置/声音风格),再据此做镜头衔接、特效与字幕排版决策
- 需要严格可控的效果时,先拉取枚举(转场/特效/滤镜/字体),再进行选择与组装
- 复杂需求可以在上层自己组织调用顺序,这里只负责暴露基础视频编辑与渲染接口
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Use when executing implementation plans with independent tasks in the current session