docs/add_masks.zh.md
Rama main · réplica de lectura del repositorio original.
# ADD_MASKS API 接口文档
## 🌐 语言切换
[中文版](./add_masks.zh.md) | [English](./add_masks.md)
## 接口信息
```
POST /openapi/capcut-mate/v1/add_masks
```
## 功能描述
向现有草稿中的指定片段添加遮罩效果。遮罩是视频编辑中的重要功能,通过遮罩可以控制图像的可见区域,创造出各种视觉效果。支持多种遮罩类型(线性、镜面、圆形、矩形、爱心、星形),每种遮罩都可以精确配置位置、大小、羽化、旋转等属性。
## 请求参数
```json
{
"draft_url": "https://capcut-mate.jcaigc.cn/openapi/capcut-mate/v1/get_draft?draft_id=2025092811473036584258",
"segment_ids": ["d62994b4-25fe-422a-a123-87ef05038558"],
"name": "圆形",
"X": 100,
"Y": 200,
"width": 300,
"height": 300,
"feather": 20,
"rotation": 0,
"invert": false,
"roundCorner": 0
}
```
### 参数说明
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| draft_url | string | ✅ | "" | 目标草稿的完整URL |
| segment_ids | array | ✅ | [] | 要应用遮罩的片段ID数组 |
| name | string | ❌ | "线性" | 遮罩类型名称 |
| X | integer | ❌ | 0 | 遮罩中心X坐标(像素) |
| Y | integer | ❌ | 0 | 遮罩中心Y坐标(像素) |
| width | integer | ❌ | 512 | 遮罩宽度(像素) |
| height | integer | ❌ | 512 | 遮罩高度(像素) |
| feather | integer | ❌ | 0 | 羽化程度(0-100) |
| rotation | integer | ❌ | 0 | 旋转角度(度) |
| invert | boolean | ❌ | false | 是否反转遮罩 |
| roundCorner | integer | ❌ | 0 | 圆角半径(0-100) |
### 参数详解
#### 遮罩类型参数
- **name**: 遮罩类型名称
- 可选值:线性、镜面、圆形、矩形、爱心、星形
- 默认值:线性
#### 位置参数
- **X**: 遮罩中心X坐标(像素)
- 正值向右移动
- 负值向左移动
- 以素材中心为原点
- **Y**: 遮罩中心Y坐标(像素)
- 正值向下移动
- 负值向上移动
- 以素材中心为原点
#### 尺寸参数
- **width**: 遮罩宽度(像素)
- 默认值:512
- 建议范围:1-2048
- **height**: 遮罩高度(像素)
- 默认值:512
- 建议范围:1-2048
#### 效果参数
- **feather**: 羽化程度(0-100)
- 0 = 无羽化(锐利边缘)
- 100 = 最大羽化(柔和边缘)
- 默认值:0
- **rotation**: 旋转角度(度)
- 0-360度范围
- 默认值:0
- **invert**: 是否反转遮罩
- true = 反转遮罩效果
- false = 正常遮罩效果
- 默认值:false
- **roundCorner**: 圆角半径(0-100)
- 仅对矩形遮罩有效
- 0 = 无圆角(直角)
- 100 = 最大圆角
- 默认值:0
#### 片段ID参数
- **segment_ids**: 要应用遮罩的片段ID数组
- 必须是视频片段ID
- 支持批量处理多个片段
- 每个片段只能添加一个遮罩
## 响应格式
### 成功响应 (200)
```json
{
"code": 0,
"message": "success",
"draft_url": "https://capcut-mate.jcaigc.cn/openapi/capcut-mate/v1/get_draft?draft_id=2025092811473036584258",
"masks_added": 1,
"affected_segments": ["d62994b4-25fe-422a-a123-87ef05038558"],
"mask_ids": ["mask_001"]
}
```
### 响应字段说明
| 字段名 | 类型 | 说明 |
|--------|------|------|
| draft_url | string | 更新后的草稿URL |
| masks_added | number | 成功添加的遮罩数量 |
| affected_segments | array | 受影响的片段ID列表 |
| mask_ids | array | 遮罩ID列表 |
### 错误响应
```json
{
"code": 2023,
"message": "无效的遮罩信息,请检查遮罩参数是否正确"
}
```
## 使用示例
### cURL 示例
#### 1. 基本遮罩添加
```bash
curl -X POST https://capcut-mate.jcaigc.cn/openapi/capcut-mate/v1/add_masks \
-H "Content-Type: application/json" \
-d '{
"draft_url": "YOUR_DRAFT_URL",
"segment_ids": ["SEGMENT_ID"],
"name": "圆形"
}'
```
#### 2. 带位置和尺寸的遮罩
```bash
curl -X POST https://capcut-mate.jcaigc.cn/openapi/capcut-mate/v1/add_masks \
-H "Content-Type: application/json" \
-d '{
"draft_url": "YOUR_DRAFT_URL",
"segment_ids": ["SEGMENT_ID"],
"name": "矩形",
"X": 100,
"Y": 50,
"width": 400,
"height": 300
}'
```
#### 3. 带效果参数的遮罩
```bash
curl -X POST https://capcut-mate.jcaigc.cn/openapi/capcut-mate/v1/add_masks \
-H "Content-Type: application/json" \
-d '{
"draft_url": "YOUR_DRAFT_URL",
"segment_ids": ["SEGMENT_ID"],
"name": "线性",
"feather": 30,
"rotation": 45,
"invert": true
}'
```
#### 4. 矩形遮罩带圆角
```bash
curl -X POST https://capcut-mate.jcaigc.cn/openapi/capcut-mate/v1/add_masks \
-H "Content-Type: application/json" \
-d '{
"draft_url": "YOUR_DRAFT_URL",
"segment_ids": ["SEGMENT_ID"],
"name": "矩形",
"roundCorner": 50
}'
```
## 错误码说明
| 错误码 | 错误信息 | 说明 | 解决方案 |
|--------|----------|------|----------|
| 1001 | 参数校验失败 | 请求体未通过参数校验(如 X、width 传了小数) | 检查参数类型与必填项 |
| 2001 | 无效的草稿URL | draft_url 缺失、格式错误或草稿不在缓存中 | 使用 create_draft 返回的 draft_url |
| 2015 | 片段未找到 | 指定的片段ID不存在 | 确认片段ID是否正确 |
| 2016 | 无效的片段类型 | 片段类型不支持添加遮罩 | 确保使用视频片段ID |
| 2023 | 无效的遮罩信息 | segment_ids 为空 | 至少提供一个片段ID |
| 2024 | 遮罩添加失败 | 写入草稿过程中出错 | 检查草稿状态后重试 |
| 2025 | 遮罩类型未找到 | 指定的遮罩名称不存在 | 使用 线性 / 镜面 / 圆形 / 矩形 / 爱心 / 星形 |
| 2042 | 草稿锁获取超时 | 同一草稿并发操作 | 稍后重试 |
## 注意事项
1. **片段要求**: 只有视频片段(VideoSegment)支持添加遮罩
2. **遮罩限制**: 每个片段只能添加一个遮罩,重复添加不会报错,会返回现有遮罩信息
3. **坐标系统**: X、Y坐标以像素为单位,原点位于素材中心
4. **参数范围**:
- feather: 0-100,羽化程度
- rotation: 0-360度,旋转角度
- roundCorner: 0-100,圆角半径(仅矩形遮罩有效)
5. **批量处理**: 支持同时为多个片段添加相同配置的遮罩
6. **遮罩类型**: 支持线性、镜面、圆形、矩形、爱心、星形六种遮罩类型
7. **性能考虑**: 避免同时添加大量遮罩
## 工作流程
1. 验证必填参数(draft_url, segment_ids)
2. 检查片段ID的有效性
3. 从缓存中获取草稿
4. 查找并验证遮罩类型
5. 为每个片段添加遮罩
6. 保存草稿
7. 返回遮罩信息
## 相关接口
- [创建草稿](./create_draft.md)
- [添加视频](./add_videos.md)
- [添加音频](./add_audios.md)
- [添加图片](./add_images.md)
- [添加蒙版关键帧](./add_mask_keyframes.zh.md)
- [保存草稿](./save_draft.md)
- [生成视频](./gen_video.md)
---
<div align="right">
📚 **项目资源**
**GitHub**: [https://github.com/Hommy-master/capcut-mate](https://github.com/Hommy-master/capcut-mate)
**Gitee**: [https://gitee.com/taohongmin-gitee/capcut-mate](https://gitee.com/taohongmin-gitee/capcut-mate)
</div>