vectcut-skill/skill/SKILL.md
--- name: vectcut-api description: VectCutAPI is a powerful cloud-based video editing API tool that provides programmatic control over CapCut/JianYing (剪映) for professional video editing. Use this skill when users need to: (1) Create video draft projects programmatically, (2) Add video/audio/image materials with precise control, (3) Add text, subtitles, and captions, (4) Apply effects, transitions, and animations, (5) Add keyframe animations, (6) Process videos in batch, (7) Generate AI-powered
npx skillsauth add sun-guannan/vectcutapi vectcut-skill/skillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
VectCutAPI 是一款强大的云端视频剪辑 API 工具,通过编程方式控制剪映/CapCut 进行专业视频编辑。它填补了 AI 生成素材与专业视频编辑之间的空白,提供精确的编辑控制能力。
# 安装依赖
pip install -r requirements.txt # HTTP API 基础依赖
pip install -r requirements-mcp.txt # MCP 协议支持 (可选)
# 配置文件
cp config.json.example config.json
# 启动服务
python capcut_server.py # HTTP API 服务器 (端口: 9001)
python mcp_server.py # MCP 协议服务器
1. 创建草稿 (create_draft)
- 设置分辨率: 1080x1920 (竖屏) / 1920x1080 (横屏) / 1080x1080 (方形)
- 获取 draft_id
2. 添加素材轨道
- add_video: 添加视频轨道
- add_audio: 添加音频轨道
- add_image: 添加图片素材
3. 添加文字元素
- add_text: 添加标题、说明文字
- add_subtitle: 导入 SRT 字幕文件
4. 应用特效
- add_effect: 添加视频特效
- add_sticker: 添加贴纸素材
- add_video_keyframe: 添加关键帧动画
5. 保存草稿
- save_draft: 生成可导入剪映的草稿文件
AI 文案生成
↓
TTS 文字转语音 → audio_url
↓
图生视频 → video_url
↓
VectCutAPI 组合草稿
↓
导出或二次编辑
使用 auto_video_editor.py 处理 Excel 表格驱动的批量视频制作。
| 接口 | 方法 | 功能 |
|------|------|------|
| /create_draft | POST | 创建新草稿项目 |
| /save_draft | POST | 保存草稿并生成 URL |
| /query_draft_status | POST | 查询草稿状态 |
| /query_script | POST | 查询草稿脚本内容 |
| /generate_draft_url | POST | 生成草稿预览 URL |
| 接口 | 方法 | 功能 |
|------|------|------|
| /add_video | POST | 添加视频轨道 |
| /add_audio | POST | 添加音频轨道 |
| /add_image | POST | 添加图片素材 |
| /add_text | POST | 添加文字元素 |
| /add_subtitle | POST | 添加 SRT 字幕 |
| /add_sticker | POST | 添加贴纸 |
| /add_effect | POST | 添加视频特效 |
| /add_video_keyframe | POST | 添加关键帧动画 |
| 接口 | 功能 |
|------|------|
| /get_intro_animation_types | 获取入场动画类型 |
| /get_outro_animation_types | 获取出场动画类型 |
| /get_transition_types | 获取转场效果类型 |
| /get_mask_types | 获取蒙版类型列表 |
| /get_audio_effect_types | 获取音频特效类型 |
| /get_font_types | 获取字体类型列表 |
| /get_video_scene_effect_types | 获取场景特效类型 |
import requests
# 1. 创建草稿
response = requests.post("http://localhost:9001/create_draft", json={
"width": 1080,
"height": 1920
})
draft_id = response.json()["output"]["draft_id"]
# 2. 添加背景视频
requests.post("http://localhost:9001/add_video", json={
"draft_id": draft_id,
"video_url": "https://example.com/background.mp4",
"start": 0,
"end": 10,
"volume": 0.6
})
# 3. 添加标题文字
requests.post("http://localhost:9001/add_text", json={
"draft_id": draft_id,
"text": "欢迎使用 VectCutAPI",
"start": 1,
"end": 5,
"font_size": 56,
"font_color": "#FFD700",
"shadow_enabled": True,
"background_color": "#000000"
})
# 4. 保存草稿
response = requests.post("http://localhost:9001/save_draft", json={
"draft_id": draft_id
})
draft_url = response.json()["output"]["draft_url"]
print(f"草稿已保存: {draft_url}")
requests.post("http://localhost:9001/add_video", json={
"draft_id": draft_id,
"video_url": "https://example.com/video2.mp4",
"transition": "fade_in", # 转场类型
"transition_duration": 0.5, # 转场时长(秒)
"target_start": 10 # 在时间轴 10 秒处开始
})
requests.post("http://localhost:9001/add_video_keyframe", json={
"draft_id": draft_id,
"track_name": "video_main",
"property_types": ["scale_x", "scale_y", "alpha"],
"times": [0, 2, 4], # 关键帧时间点
"values": ["1.0", "1.2", "0.8"] # 对应属性值
})
requests.post("http://localhost:9001/add_subtitle", json={
"draft_id": draft_id,
"srt_url": "https://example.com/subtitles.srt",
"font_size": 32,
"font_color": "#FFFFFF",
"background_alpha": 0.7
})
VectCutAPI 支持 MCP (Model Context Protocol) 协议,可直接由 AI Agent 调用。
| 工具名称 | 功能描述 |
|---------|----------|
| create_draft | 创建新的视频草稿项目 |
| add_video | 添加视频到草稿 |
| add_audio | 添加音频到草稿 |
| add_image | 添加图片素材 |
| add_text | 添加文字元素 |
| add_subtitle | 添加字幕文件 |
| add_effect | 添加视觉特效 |
| add_sticker | 添加贴纸元素 |
| add_video_keyframe | 添加关键帧动画 |
| get_video_duration | 获取视频时长 |
| save_draft | 保存草稿项目 |
创建 mcp_config.json:
{
"mcpServers": {
"vectcut-api": {
"command": "python",
"args": ["mcp_server.py"],
"cwd": "H:/ComfyUI/web/VectCutAPI",
"env": {
"PYTHONPATH": "H:/ComfyUI/web/VectCutAPI",
"DEBUG": "0"
}
}
}
}
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| draft_id | string | 必需 | 草稿 ID |
| video_url | string | 必需 | 视频 URL |
| start | float | 0 | 视频开始时间(秒) |
| end | float | 0 | 视频结束时间(秒) |
| target_start | float | 0 | 在时间轴上的开始时间 |
| speed | float | 1.0 | 播放速度 |
| volume | float | 1.0 | 音量 (0-1) |
| scale_x/scale_y | float | 1.0 | 缩放比例 |
| transform_x/transform_y | float | 0 | 位置偏移 |
| transition | string | - | 转场类型 |
| transition_duration | float | 0.5 | 转场时长(秒) |
| mask_type | string | - | 蒙版类型 |
| background_blur | int | - | 背景模糊级别(1-4) |
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| text | string | 必需 | 文字内容 |
| start | float | 必需 | 开始时间 |
| end | float | 必需 | 结束时间 |
| font | string | "思源黑体" | 字体名称 |
| font_size | int | 32 | 字体大小 |
| font_color | string | "#FFFFFF" | 字体颜色 (HEX) |
| stroke_enabled | bool | False | 是否启用描边 |
| stroke_color | string | "#FFFFFF" | 描边颜色 |
| stroke_width | float | 2.0 | 描边宽度 |
| shadow_enabled | bool | False | 是否启用阴影 |
| shadow_color | string | "#000000" | 阴影颜色 |
| background_color | string | - | 背景颜色 |
| background_alpha | float | 1.0 | 背景透明度 |
| text_styles | array | - | 多样式文字 (见下方) |
"text_styles": [
{"start": 0, "end": 2, "font_color": "#FF6B6B"},
{"start": 2, "end": 4, "font_color": "#4ECDC4"},
{"start": 4, "end": 6, "font_color": "#45B7D1"}
]
{
"is_capcut_env": true,
"draft_domain": "https://www.capcutapi.top",
"port": 9001,
"preview_router": "/draft/downloader",
"is_upload_draft": false,
"oss_config": {
"bucket_name": "your-bucket",
"access_key_id": "your-key-id",
"access_key_secret": "your-secret",
"endpoint": "https://your-endpoint.aliyuncs.com"
}
}
使用 auto_video_editor.py 进行 Excel 驱动的批量处理:
python auto_video_editor.py input.xlsx
Excel 表格格式: | 视频标题 | 二段文案 | 开头素材 | 结尾素材 | 封面素材 | |---------|---------|---------|---------|---------| | 产品介绍 | ... | video1.mp4 | video2.mp4 | image.png |
项目包含多个预配置的 n8n 工作流:
text-to-video-with-animation.json - 文字转视频工作流auto-video-mixing.json - 自动视频混剪form-upload-processing.json - 表单上传处理可执行脚本,用于 VectCutAPI 操作。
参考文档和指南。
示例代码和模板。
调用 save_draft 后会在当前目录生成 dfd_ 开头的文件夹,将其复制到剪映/CapCut 草稿目录即可。
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.