# CapCut Mate API 完整参数参考 所有接口基础 URL:`config.capcutMateApiBase`(如 `http://capcut.muyetools.cn/openapi/capcut-mate/v1`) 时间单位:**微秒**(1秒 = 1,000,000) `xxx_infos` 参数均为 **JSON 字符串**(需 `JSON.stringify`) --- ## 目录 - [一、草稿管理](#一草稿管理) - [二、视频素材](#二视频素材) - [三、音频处理](#三音频处理) - [四、文本字幕](#四文本字幕) - [五、特效与动画](#五特效与动画) - [六、视频渲染](#六视频渲染) - [七、快速工具](#七快速工具) --- ## 一、草稿管理 ### create_draft ```json // POST /create_draft { "width": 1080, "height": 1920 } // Response { "draft_url": "http://capcut.muyetools.cn/openapi/capcut-mate/v1/get_draft?draft_id=20251230xxx", "tip_url": "" } ``` ### save_draft ```json // POST /save_draft { "draft_url": "..." } // Response { "draft_url": "...", "message": "成功" } ``` ### get_draft ```json // GET /get_draft?draft_id=xxx // Response: 返回草稿文件列表和详细信息 ``` --- ## 二、视频素材 ### add_videos ```json // POST /add_videos { "draft_url": "...", "video_infos": "[{\"video_url\":\"https://...\",\"width\":1920,\"height\":1080,\"start\":0,\"end\":3000000,\"duration\":6000000,\"mask\":\"\",\"transition\":\"\",\"transition_duration\":500000,\"volume\":1}]", "alpha": 1, "scale_x": 1, "scale_y": 1, "transform_x": 0, "transform_y": 0, "scene_timelines": [] } // Response { "draft_url": "...", "video_ids": ["9b9f47126f384a6f95434cdc3fed5b7c"], "segment_ids": ["20285056b4194e2c8944b587ceb592a7"], "track_id": "720274203a11442280b64570caf362c4" } ``` **全局参数:** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | draft_url | string | 是 | 草稿 URL | | video_infos | string(JSON) | 是 | 视频信息数组(JSON 字符串) | | alpha | number | 否 | 透明度 0-1,默认 1 | | scale_x | number | 否 | 水平缩放,默认 1 | | scale_y | number | 否 | 垂直缩放,默认 1 | | transform_x | number | 否 | 水平位移,默认 0 | | transform_y | number | 否 | 垂直位移,默认 0 | **video_infos 元素字段:** | 字段 | 类型 | 说明 | |------|------|------| | video_url | string | 视频 URL | | width | number | 宽度(像素) | | height | number | 高度(像素) | | start | number | 起始时间(微秒) | | end | number | 结束时间(微秒) | | duration | number | 总时长(微秒) | | mask | string | 遮罩名称 | | transition | string | 转场名称 | | transition_duration | number | 转场时长(微秒) | | volume | number | 音量 0-1 | ### add_images ```json // POST /add_images { "draft_url": "...", "image_infos": "[{\"image_url\":\"https://...\",\"width\":1920,\"height\":1080,\"start\":0,\"end\":5000000,\"duration\":5000000,\"animation\":\"淡入淡出\",\"transition\":\"溶解\",\"transition_duration\":500000}]", "alpha": 1, "scale_x": 1, "scale_y": 1, "transform_x": 0, "transform_y": 0 } // Response { "draft_url": "...", "image_ids": ["fa67760440104ca3adacdfd694fc25da"], "segment_ids": ["2d19f38d5f544eecad18847e5eac1745"], "segment_infos": [{"id": "xxx", "start": 0, "end": 5000000}], "track_id": "38c8dfee92374137998715329494a8f9" } ``` **image_infos 元素字段:** | 字段 | 类型 | 说明 | |------|------|------| | image_url | string | 图片 URL | | width | number | 宽度(像素) | | height | number | 高度(像素) | | start | number | 起始时间(微秒) | | end | number | 结束时间(微秒) | | duration | number | 展示时长(微秒) | | animation | string | 动画名称(如 "淡入淡出") | | transition | string | 转场名称(如 "溶解") | | transition_duration | number | 转场时长(微秒) | ### add_sticker ```json // POST /add_sticker { "draft_url": "...", "sticker_id": "7326810673609018675", "start": 0, "end": 5000000, "scale": 1, "transform_x": 0, "transform_y": 0 } // Response { "draft_url": "...", "sticker_id": "7326810673609018675", "segment_id": "7902e009fcfb44768f6f73e9432b5d5b", "track_id": "10b612824bcd4dd882ab764d145dd7ce", "duration": 5000000 } ``` --- ## 三、音频处理 ### add_audios ```json // POST /add_audios { "draft_url": "...", "audio_infos": "[{\"audio_url\":\"https://...\",\"duration\":23184000,\"end\":23184000,\"start\":0}]" } // Response { "draft_url": "...", "audio_ids": ["9000bc9efb744c3196fb1d225993f43d"], "track_id": "a2d21e5a343c4f1eba3c9234bea16658" } ``` **audio_infos 元素字段:** | 字段 | 类型 | 说明 | |------|------|------| | audio_url | string | 音频文件 URL | | start | number | 起始时间(微秒) | | end | number | 结束时间(微秒) | | duration | number | 音频总时长(微秒) | ### get_audio_duration ```json // POST /get_audio_duration { "mp3_url": "https://..." } // Response { "duration": 284891429, "message": "成功" } ``` --- ## 四、文本字幕 ### add_captions ```json // POST /add_captions { "draft_url": "...", "captions": "[{\"start\":0,\"end\":10000000,\"text\":\"你好,剪映\",\"keyword\":\"好\",\"keyword_color\":\"#457616\",\"keyword_font_size\":15}]", "font_size": 15, "text_color": "#ffffff", "alignment": 1, "bold": false, "italic": false, "underline": false, "has_shadow": false, "letter_spacing": 0, "line_spacing": 0, "alpha": 1, "scale_x": 1, "scale_y": 1, "transform_x": 0, "transform_y": 0, "style_text": 0 } // Response { "draft_url": "...", "text_ids": ["52ae035e01584adf8d052533d83948ed"], "segment_ids": ["1b1102e3d2d14b9eabac064bbe64d2bf"], "segment_infos": [{"id": "xxx", "start": 0, "end": 10000000}], "track_id": "7ffdf0f7d67e4d8caff5531f5873d26f" } ``` **captions 元素字段:** | 字段 | 类型 | 说明 | |------|------|------| | start | number | 起始时间(微秒) | | end | number | 结束时间(微秒) | | text | string | 字幕文本 | | keyword | string | 高亮关键词 | | keyword_color | string | 关键词颜色(如 "#ff7100") | | keyword_font_size | number | 关键词字号 | **全局样式参数:** | 参数 | 类型 | 说明 | |------|------|------| | font_size | number | 字号 | | text_color | string | 文字颜色 | | alignment | number | 对齐(1=居中) | | bold | boolean | 粗体 | | italic | boolean | 斜体 | | underline | boolean | 下划线 | | has_shadow | boolean | 文字阴影 | | letter_spacing | number | 字间距 | | line_spacing | number | 行间距 | | style_text | number | 样式模式 | ### add_text_style ```json // POST /add_text_style { "text": "快乐|顶级思维", "keyword": "五个快乐到死的顶级思维", "keyword_color": "#ff7100", "keyword_font_size": 15, "font_size": 15 } // Response { "text_style": "{\"text\":\"快乐|顶级思维\",\"styles\":[{\"fill\":{\"content\":{\"solid\":{\"color\":[1.0,1.0,1.0]}}},\"range\":[0,7],\"size\":15}]}" } ``` --- ## 五、特效与动画 ### add_effects ```json // POST /add_effects { "draft_url": "...", "effect_infos": "[{\"effect_title\":\"录制边框 III\",\"start\":0,\"end\":5000000}]" } // Response { "draft_url": "...", "effect_ids": ["34c70fba3619444fa897110b40b39386"], "segment_ids": ["23e0c0900c69427f82e44243183706c9"], "track_id": "2ffea3839d304f83ae29dadc43a18227" } ``` **effect_infos 元素字段:** | 字段 | 类型 | 说明 | |------|------|------| | effect_title | string | 特效名称(如 "录制边框 III"、"雪花"、"红包来了") | | start | number | 起始时间(微秒) | | end | number | 结束时间(微秒) | ### add_filters ```json // POST /add_filters { "draft_url": "...", "filter_infos": "[{\"filter_title\":\"清透感\",\"start\":0,\"end\":5000000,\"intensity\":100.0}]" } ``` | 字段 | 类型 | 说明 | |------|------|------| | filter_title | string | 滤镜名称 | | start | number | 起始时间(微秒) | | end | number | 结束时间(微秒) | | intensity | number | 强度 0-100 | ### add_keyframes ```json // POST /add_keyframes { "draft_url": "...", "keyframes": "[{\"segment_id\":\"e1933f126437421bb52abdc56f062266\",\"property\":\"KFTypePositionX\",\"offset\":0.5,\"value\":-0.1}]" } // Response { "draft_url": "..." } ``` **keyframes 元素字段:** | 字段 | 类型 | 说明 | |------|------|------| | segment_id | string | 目标素材 segment ID | | property | string | 动画属性 | | offset | number | 关键帧位置(0-1,相对素材时长比例) | | value | number | 属性值 | **property 可选值:** | 值 | 说明 | |------|------| | KFTypePositionX | 水平位移 | | KFTypePositionY | 垂直位移 | | KFTypeScaleX | 水平缩放 | | KFTypeScaleY | 垂直缩放 | | KFTypeRotation | 旋转角度 | ### add_masks ```json // POST /add_masks { "draft_url": "...", "name": "线性", "segment_ids": ["beb4adbea83d41d08021cf4e8f219206"] } // Response {} ``` ### get_effects — 获取特效列表 ```json // POST /get_effects { "mode": 0 } // Response { "effects": [ { "effect_id": "1183068", "name": "1998", "has_params": true, "is_vip": false }, ... ] } ``` --- ## 六、视频渲染 ### gen_video ```json // POST /gen_video { "draft_url": "...", "apiKey": "559a84a5-a9e9-4ade-a26b-e80b732754d6" } // Response { "code": 0, "message": "视频生成任务已提交,请使用draft_url查询进度" } ``` ### gen_video_status ```json // POST /gen_video_status { "draft_url": "..." } // Response { "code": 0, "status": "failed", "progress": 0, "video_url": "", "error_message": "导出草稿失败: ...", "created_at": "2026-01-31T21:09:15.104249", "started_at": "2026-01-31T21:09:15.549183", "completed_at": "2026-01-31T21:10:10.398727" } ``` **status 值:** `processing` / `success` / `failed` --- ## 七、快速工具 ### easy_create_material — 一站式添加 ```json // POST /easy_create_material { "draft_url": "...", "video_url": "https://...", "img_url": "https://...", "audio_url": "https://...", "text": "字幕内容", "text_color": "#ffffff", "font_size": 15, "text_transform_y": 0 } // Response { "draft_url": "...", "message": "成功" } ```