sun-guannan

vectcut-api

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 videos, (8) Integrate with n8n workflows, (9) Build MCP video editing agents. The API supports HTTP REST and MCP protocols, works with both CapCut (international) and JianYing (China), and provides web preview without downloading.

sun-guannan 1,957 422 Updated 4mo ago

Resources

2
GitHub

Install

npx skillscat add sun-guannan/vectcutapi/vectcut-api

Install via the SkillsCat registry.

SKILL.md

VectCutAPI 视频剪辑 API

概述

VectCutAPI 是一款强大的云端视频剪辑 API 工具,通过编程方式控制剪映/CapCut 进行专业视频编辑。它填补了 AI 生成素材与专业视频编辑之间的空白,提供精确的编辑控制能力。

核心优势

  1. 双协议支持 - HTTP REST API 和 MCP 协议
  2. 实时预览 - 网页预览无需下载
  3. 可二次编辑 - 导入剪映/CapCut 精修
  4. 云端处理 - 全云端操作生成视频

系统要求

  • Python 3.10+
  • 剪映 或 CapCut 国际版
  • FFmpeg (可选,用于某些视频处理)

快速启动

# 安装依赖
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 视频生成工作流

AI 文案生成
    ↓
TTS 文字转语音 → audio_url
    ↓
图生视频 → video_url
    ↓
VectCutAPI 组合草稿
    ↓
导出或二次编辑

批量视频处理

使用 auto_video_editor.py 处理 Excel 表格驱动的批量视频制作。

API 接口

核心操作

接口 方法 功能
/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)

接口 功能
/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"]  # 对应属性值
})

添加 SRT 字幕

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
})

MCP 协议集成

VectCutAPI 支持 MCP (Model Context Protocol) 协议,可直接由 AI Agent 调用。

MCP 工具列表

工具名称 功能描述
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 客户端配置

创建 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"
      }
    }
  }
}

参数说明

视频参数 (add_video)

参数 类型 默认值 说明
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)

文字参数 (add_text)

参数 类型 默认值 说明
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)

"text_styles": [
    {"start": 0, "end": 2, "font_color": "#FF6B6B"},
    {"start": 2, "end": 4, "font_color": "#4ECDC4"},
    {"start": 4, "end": 6, "font_color": "#45B7D1"}
]

配置文件

config.json 结构

{
  "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 工作流集成

项目包含多个预配置的 n8n 工作流:

  • text-to-video-with-animation.json - 文字转视频工作流
  • auto-video-mixing.json - 自动视频混剪
  • form-upload-processing.json - 表单上传处理

资源

scripts/

可执行脚本,用于 VectCutAPI 操作。

  • vectcut_client.py - Python 客户端封装库

references/

参考文档和指南。

  • api_reference.md - 完整 API 接口参考
  • workflows.md - 工作流示例和最佳实践
  • animation_types.md - 动画类型参考
  • transition_types.md - 转场效果类型参考

assets/examples/

示例代码和模板。

  • basic_video.py - 基础视频制作示例
  • text_animation.py - 文字动画示例
  • subtitle_import.py - 字幕导入示例
  • batch_processing.py - 批量处理示例

常见问题

草稿文件位置

调用 save_draft 后会在当前目录生成 dfd_ 开头的文件夹,将其复制到剪映/CapCut 草稿目录即可。

支持的视频格式

  • MP4 (推荐)
  • MOV
  • AVI
  • MKV

支持的图片格式

  • PNG (推荐,支持透明)
  • JPG/JPEG
  • WebP

支持的音频格式

  • MP3 (推荐)
  • AAC
  • WAV
  • M4A

项目信息