【开源剪映小助手】API 接口文档

简介: CapCut Mate 是基于 FastAPI 构建的剪映自动化 API,提供草稿管理、媒体添加、特效/字幕/贴纸应用、时间线计算及云端渲染等 RESTful 接口,遵循 OpenAPI 规范,支持中英文双语文档与完整错误处理。(239字)

API 接口文档

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构概览
  5. 详细组件分析
  6. 双语文档
  7. 依赖关系分析
  8. 性能考虑
  9. 故障排除指南
  10. 小结

简介

CapCut Mate 提供 RESTful API,用于自动化剪映草稿管理与视频生成。API 基于 FastAPI 构建,遵循 OpenAPI 规范,支持草稿创建、媒体添加、特效与贴纸应用、字幕处理、时间线计算、素材信息生成以及云端渲染导出等功能。

项目结构

  • 应用入口与路由挂载
    • 应用入口文件负责创建 FastAPI 实例、注册路由与中间件,并启动服务
    • 路由统一挂载在 /openapi/capcut-mate/v1 前缀下,便于版本化管理
  • 路由与控制器
    • v1 路由模块集中定义各业务接口,每个接口对应一个请求/响应模型与服务层调用
  • 数据模型与校验
    • 使用 Pydantic 模型定义请求参数与响应结构,内置字段级校验与默认值
  • 文档与示例
    • OpenAPI YAML 提供接口定义、参数说明与示例,便于集成与测试
    • 部分接口另有中文说明文档,便于对照阅读
graph TB
A["应用入口<br/>main.py"] --> B["路由注册<br/>/openapi/capcut-mate/v1/*"]
B --> C["v1 路由模块<br/>src/router/v1.py"]
C --> D["请求模型<br/>src/schemas/*.py"]
C --> E["服务层调用<br/>service.*"]
E --> F["剪映控制<br/>JianyingController"]
G["中文文档<br/>docs/*.zh.md"] --> C
H["英文文档<br/>docs/*.md"] --> C

核心组件

  • 应用入口与中间件
    • 中间件顺序:PrepareMiddleware → ResponseMiddleware,确保请求预处理与统一响应格式
    • 路由前缀:/openapi/capcut-mate/v1,标签:capcut-mate
  • 路由模块
    • v1 路由模块包含草稿管理、媒体处理、编辑效果、视频生成、工具类接口等
  • 数据模型
    • 请求/响应模型基于 Pydantic,内置类型、范围与默认值校验,减少重复校验逻辑
  • 文档与示例
    • OpenAPI YAML 提供接口定义、参数说明、示例与响应结构,便于客户端集成
    • 中文文档版本,提供详细的中文接口说明与使用示例

架构概览

API 采用三层架构:

  • 表现层:FastAPI 路由与请求/响应模型
  • 业务层:服务层封装具体业务逻辑,如草稿创建、媒体添加、渲染导出等
  • 控制层:与剪映交互,执行窗口激活、素材导入与渲染操作
graph TB
subgraph "表现层"
R["FastAPI 路由<br/>src/router/v1.py"]
M["请求/响应模型<br/>src/schemas/*.py"]
D["文档与 OpenAPI"]
end
subgraph "业务层"
S["服务层<br/>service.*"]
end
subgraph "控制层"
J["剪映控制器<br/>JianyingController"]
end
R --> M
R --> S
S --> J
D --> R

详细组件分析

草稿管理

创建草稿 (CREATE_DRAFT)

  • 方法与路径:POST /openapi/capcut-mate/v1/create_draft
  • 认证:无需认证
  • 请求参数:
    • width: 整数,最小值 1,示例:1920
    • height: 整数,最小值 1,示例:1080
  • 响应参数:
    • draft_url: 字符串,草稿访问 URL
    • tip_url: 字符串,帮助文档 URL
  • 示例请求与响应:见 OpenAPI YAML 中的 create_draft 示例

保存草稿 (SAVE_DRAFT)

  • 方法与路径:POST /openapi/capcut-mate/v1/save_draft
  • 请求参数:
    • draft_url: 字符串,草稿 URL
  • 响应参数:
    • draft_url: 字符串,草稿 URL
    • message: 字符串,操作结果消息

获取草稿文件列表 (GET_DRAFT)

  • 方法与路径:GET /openapi/capcut-mate/v1/get_draft
  • 查询参数:
    • draft_id: 字符串,长度 20-32,示例:202511262111301f5fceff
  • 响应参数:
    • files: 字符串数组,文件路径列表

媒体处理

批量添加视频 (ADD_VIDEOS)

  • 方法与路径:POST /openapi/capcut-mate/v1/add_videos
  • 请求参数:
    • draft_url: 字符串,草稿 URL
    • video_infos: 字符串,JSON 数组,包含视频 URL、尺寸、时间线与转场等
    • alpha: 浮点数,范围 [0,1]
    • scale_x/scale_y: 浮点数,建议范围 [0.1,5.0]
    • transform_x/transform_y: 整数,像素偏移
  • 响应参数:
    • draft_url: 字符串
    • track_id: 字符串
    • video_ids: 字符串数组
    • segment_ids: 字符串数组

批量添加音频 (ADD_AUDIOS)

  • 方法与路径:POST /openapi/capcut-mate/v1/add_audios
  • 请求参数:
    • draft_url: 字符串
    • audio_infos: 字符串,JSON 数组,包含音频 URL、时长与时间线
  • 响应参数:
    • draft_url: 字符串
    • track_id: 字符串
    • audio_ids: 字符串数组

批量添加图片 (ADD_IMAGES)

  • 方法与路径:POST /openapi/capcut-mate/v1/add_images
  • 请求参数:
    • draft_url: 字符串
    • image_infos: 字符串,JSON 数组,包含图片 URL、尺寸、透明度与动画
    • alpha/scale_x/scale_y: 浮点数
    • transform_x/transform_y: 整数
  • 响应参数:
    • draft_url: 字符串
    • track_id: 字符串
    • image_ids: 字符串数组
    • segment_ids: 字符串数组
    • segment_infos: 片段信息数组(含 id/start/end)

编辑效果

添加贴纸 (ADD_STICKER)

  • 方法与路径:POST /openapi/capcut-mate/v1/add_sticker
  • 请求参数:
    • draft_url: 字符串
    • sticker_id: 字符串,贴纸 ID
    • start/end: 整数,微秒时间戳
    • scale: 浮点数,建议范围 [0.1,5.0]
    • transform_x/transform_y: 整数,像素偏移
  • 响应参数:
    • draft_url: 字符串
    • sticker_id: 字符串
    • track_id: 字符串
    • segment_id: 字符串
    • duration: 整数,微秒

添加特效 (ADD_EFFECTS)

  • 方法与路径:POST /openapi/capcut-mate/v1/add_effects
  • 请求参数:
    • draft_url: 字符串
    • effect_infos: 字符串,JSON 数组,包含特效标题与时间线
  • 响应参数:
    • draft_url: 字符串
    • track_id: 字符串
    • effect_ids: 字符串数组
    • segment_ids: 字符串数组

添加字幕 (ADD_CAPTIONS)

  • 方法与路径:POST /openapi/capcut-mate/v1/add_captions
  • 请求参数:
    • draft_url: 字符串
    • captions: 字符串,JSON 数组,包含字幕文本与时间线
    • text_color/alignment/alpha/font_size 等样式参数
    • transform_x/transform_y/scale_x/scale_y 等变换参数
    • style_text/underline/italic/bold/has_shadow 等开关
    • shadow_info: 阴影参数对象(当 has_shadow=true 时生效)
  • 响应参数:
    • draft_url: 字符串
    • track_id: 字符串
    • text_ids: 字符串数组
    • segment_ids: 字符串数组
    • segment_infos: 片段信息数组

视频生成

生成视频 (GEN_VIDEO)

  • 方法与路径:POST /openapi/capcut-mate/v1/gen_video
  • 请求参数:
    • draft_url: 字符串,草稿 URL
    • apiKey: 可选字符串,合法 UUID 格式
  • 响应参数:
    • message: 字符串,响应消息

查询视频生成任务状态 (GEN_VIDEO_STATUS)

  • 方法与路径:POST /openapi/capcut-mate/v1/gen_video_status
  • 请求参数:
    • draft_url: 字符串,草稿 URL
  • 响应参数:
    • 任务状态信息(具体字段由服务层返回)

工具与素材

快速创建素材轨道 (EASY_CREATE_MATERIAL)

  • 方法与路径:POST /openapi/capcut-mate/v1/easy_create_material
  • 请求参数:
    • draft_url: 字符串
    • audio_url/text/img_url/video_url: 字符串
    • text_color/font_size/text_transform_y: 样式参数
  • 响应参数:
    • draft_url: 字符串
    • message: 字符串,操作结果消息

获取音频时长 (GET_AUDIO_DURATION)

  • 方法与路径:POST /openapi/capcut-mate/v1/get_audio_duration
  • 请求参数:
    • mp3_url: 字符串,音频 URL
  • 响应参数:
    • duration: 整数,音频时长(微秒)
    • message: 字符串,操作结果消息

获取文字动画 (GET_TEXT_ANIMATIONS)

  • 方法与路径:POST /openapi/capcut-mate/v1/get_text_animations
  • 请求参数:
    • mode/type: 整数,动画模式与类型
  • 响应参数:
    • effects: 动画效果数组(包含名称、时长、图标等)

获取图片动画 (GET_IMAGE_ANIMATIONS)

  • 方法与路径:POST /openapi/capcut-mate/v1/get_image_animations
  • 请求参数:
    • mode/type: 整数,动画模式与类型
  • 响应参数:
    • effects: 动画效果数组(包含名称、时长、图标等)

搜索贴纸 (SEARCH_STICKER)

  • 方法与路径:POST /openapi/capcut-mate/v1/search_sticker
  • 请求参数:
    • keyword: 字符串,关键词
  • 响应参数:
    • data: 贴纸数据数组,包含贴纸信息、ID 与标题
    • message: 字符串,操作结果消息

提取链接 (GET_URL)

  • 方法与路径:POST /openapi/capcut-mate/v1/get_url
  • 请求参数:
    • output: 字符串,提取内容
  • 响应参数:
    • output: 字符串,提取结果
  • 响应格式更简洁,专注于 output 字段的说明

字符串列表转对象 (STR_LIST_TO_OBJS)

  • 方法与路径:POST /openapi/capcut-mate/v1/str_list_to_objs
  • 请求参数:
    • infos: 字符串数组
  • 响应参数:
    • infos: 对象数组,每个对象包含 output 字段

对象列表转字符串 (OBJS_TO_STR_LIST)

  • 方法与路径:POST /openapi/capcut-mate/v1/objs_to_str_list
  • 请求参数:
    • outputs: 对象数组,每个对象包含 output 字段
  • 响应参数:
    • infos: 字符串数组
  • 响应格式更简洁,专注于 infos 字段的说明

时间线与素材信息生成

  • 时间线计算
    • 方法与路径:POST /openapi/capcut-mate/v1/timelines
    • 请求参数:
      • duration/num/start/type: 整数,时长、份数、起始与分配策略
    • 响应参数:
      • timelines/all_timelines: 时间线数组
  • 音频时间线
    • 方法与路径:POST /openapi/capcut-mate/v1/audio_timelines
    • 请求参数:
      • links: 字符串数组,音频 URL 列表
    • 响应参数:
      • timelines/all_timelines: 时间线数组
  • 音频/图片/字幕/视频信息生成
    • 方法与路径:
      • /openapi/capcut-mate/v1/audio_infos
      • /openapi/capcut-mate/v1/imgs_infos
      • /openapi/capcut-mate/v1/caption_infos
      • /openapi/capcut-mate/v1/video_infos
    • 请求参数:
      • mp3_urls/imgs/texts/video_urls: 列表
      • timelines: 时间线数组
      • 其他样式与动画参数(如 font_size、mask、transition 等)
    • 响应参数:
      • infos: JSON 字符串,包含生成的媒体信息

参数验证规则与数据类型

  • 类型与范围
    • 整数:如 width/height、start/end、font_size 等,需满足最小值或范围要求
    • 浮点数:如 alpha、scale_x/scale_y、volume 等,需满足范围限制
    • 字符串:如 draft_url、sticker_id、keyword 等,需符合长度与格式要求
  • 可选参数
    • 多数样式与动画参数为可选,未提供时使用默认值
  • 校验器
    • apiKey 使用 UUID 校验器,非法格式将触发错误

错误处理与状态码

  • 标准响应
    • 成功:HTTP 200,包含 code/message/draft_url 等字段(部分接口省略 code/message)
  • 校验错误
    • 参数不符合类型或范围时,FastAPI 将返回 422 Unprocessable Entity
  • API 密钥错误
    • apiKey 非合法 UUID 格式时,将返回校验错误
  • 业务错误
    • 由服务层抛出的异常将通过统一响应中间件转换为标准格式

调用示例与最佳实践

  • 调用示例
    • 所有接口的请求与响应示例可在 OpenAPI YAML 中查看,涵盖草稿创建、媒体添加、特效与贴纸应用、字幕处理、时间线计算与素材信息生成等场景
    • 部分接口另有中文说明页,可对照阅读
  • 最佳实践
    • 使用草稿 URL 作为跨接口的上下文标识,避免重复创建草稿
    • 批量添加媒体时,合理设置透明度与缩放比例,确保画面协调
    • 使用时间线工具生成均匀或随机分割的时间段,提升素材组织效率
    • 为字幕与特效设置合理的开始/结束时间,避免重叠冲突
    • 使用统一响应中间件处理异常,便于前端统一处理错误

双语文档

  • 仓库中许多接口提供中文说明(文件名常含 Zh 或与英文版成对),并与 OpenAPI 描述一致。
  • 若文档与 OpenAPI 不一致,以 OpenAPI 与源码为准。

依赖关系分析

  • 组件耦合
    • 路由模块依赖请求/响应模型与服务层;服务层依赖剪映控制器进行底层操作
    • 文档系统与路由模块相互独立,通过接口定义进行关联
  • 外部依赖
    • FastAPI 提供路由与请求/响应模型校验;剪映控制器负责窗口与素材交互
    • 文档系统依赖 Markdown 渲染和静态文件服务
  • 循环依赖
    • 项目结构清晰,未发现循环依赖迹象
graph LR
V1["v1 路由<br/>src/router/v1.py"] --> Schemas["请求/响应模型<br/>src/schemas/*.py"]
V1 --> Service["服务层<br/>service.*"]
Service --> Jianying["剪映控制器<br/>JianyingController"]
Docs["接口文档<br/>Markdown / OpenAPI"] --> V1

性能考虑

  • 请求批量化
    • 批量添加视频/音频/图片/字幕可减少往返次数,提升整体效率
  • 时间线计算
    • 使用时间线工具提前规划素材分布,避免运行时动态计算带来的延迟
  • 资源复用
    • 合理设置透明度与缩放比例,减少不必要的渲染开销
  • 异步渲染
    • 视频生成采用异步任务,建议使用查询状态接口轮询进度

故障排除指南

  • 无法连接剪映
    • 确认剪映已安装并可被系统识别;检查窗口激活逻辑是否成功
  • 参数校验失败
    • 检查字段类型、范围与必填项;参考模型定义修正请求
  • API 密钥格式错误
    • 确保 apiKey 为合法 UUID 格式,否则将触发校验错误
  • 响应异常
    • 查看统一响应中间件日志,定位服务层异常原因

小结

接口覆盖从草稿创建、素材与效果编辑到渲染与辅助工具。字段、示例与错误码以 OpenAPI 为准;集成时建议先跑通 create_draft 再链式调用其他接口。

相关文章
|
8天前
|
缓存 人工智能 自然语言处理
我对比了8个Claude API中转站,踩了不少坑,总结给你
本文是个人开发者耗时1周实测的8大Claude中转平台横向评测,聚焦Claude Code真实体验:以加权均价(¥/M token)、内部汇率、缓存支持、模型真实性及稳定性为核心指标。
3217 20
|
20天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
17489 59
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
22小时前
|
SQL 人工智能 弹性计算
阿里云发布 Agentic NDR,威胁检测与响应进入智能体时代
欢迎前往阿里云云防火墙控制台体验!
1147 2
|
3天前
|
人工智能 JSON BI
DeepSeek V4 来了!超越 Claude Sonnet 4.5,赶紧对接 Claude Code 体验一把
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro 的真实体验与避坑记录 本文记录我将 Claude Code 对接 DeepSeek 最新模型(V4Pro)后的真实体验,测试了 Skills 自动化查询和积木报表 AI 建表两个场景——有惊喜,也踩
1609 7
|
15天前
|
人工智能 JavaScript Ubuntu
低成本搭建AIP自动化写作系统:Hermes保姆级使用教程,长文和逐步实操贴图
我带着怀疑的态度,深度使用了几天,聚焦微信公众号AIP自动化写作场景,写出来的几篇文章,几乎没有什么修改,至少合乎我本人的意愿,而且排版风格,也越来越完善,同样是起码过得了我自己这一关。 这个其实OpenClaw早可以实现了,但是目前我觉得最大的区别是,Hermes会自主总结提炼,并更新你的写作技能。 相信就冲这一点,就值得一试。 这篇帖子主要就Hermes部署使用,作一个非常详细的介绍,几乎一步一贴图。 关于Hermes,无论你赞成哪种声音,我希望都是你自己动手行动过,发自内心的选择!
3145 29
|
2天前
|
人工智能 缓存 BI
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro,跑完 Skills —— OA 审批、大屏、报表、部署 5 大实战场景后的真实体验 ![](https://oscimg.oschina.net/oscnet/up608d34aeb6bafc47f
1173 3
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
|
3天前
|
机器学习/深度学习 缓存 测试技术
DeepSeek-V4开源:百万上下文,Agent能力比肩顶级闭源模型
DeepSeek-V4正式开源!含V4-Pro(1.6T参数)与V4-Flash(284B参数)双版本,均支持百万token上下文。首创混合注意力架构,Agent能力、世界知识与推理性能全面领先开源模型,数学/代码评测比肩顶级闭源模型。
1670 6
|
5天前
|
人工智能 测试技术 API
阿里Qwen3.6-27B正式开源:网友直呼“太牛了”!
阿里云千问3.6系列重磅开源Qwen3.6-27B稠密大模型!官网:https://t.aliyun.com/U/JbblVp 仅270亿参数,编程能力媲美千亿模型,在SWE-bench等权威基准中表现卓越。支持多模态理解、本地部署及OpenClaw等智能体集成,已开放Hugging Face与ModelScope下载。

热门文章

最新文章