Ctrl K
ComunidadGuías…

docs/keyframes_infos.zh.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# KEYFRAMES_INFOS API 接口文档

## 🌐 语言切换
[中文版](./keyframes_infos.zh.md) | [English](./keyframes_infos.md)

## 接口信息

```
POST /openapi/capcut-mate/v1/keyframes_infos
```

## 功能描述

根据关键帧类型、位置比例和值生成关键帧信息。该接口将关键帧配置转换为剪映草稿所需的关键帧信息格式。

## 请求参数

```json
{
  "ctype": "KFTypePositionX",
  "offsets": "0|50|100",
  "values": "0|960|1920",
  "segment_infos": [
    {"id": "segment1", "start": 0, "end": 5000000}
  ],
  "height": 1080,
  "width": 1920
}
```

### 参数说明

| 参数名 | 类型 |必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| ctype | string |✅ | - |关键帧类型:`KFTypePositionX`(X轴移动,需要 `width`)、`KFTypePositionY`(Y轴移动,需要 `height`)、`KFTypeRotation`(0-360)、`UNIFORM_SCALE`(0.01-5)、`KFTypeAlpha`(0-1) |
| offsets | string |✅ | - | 位置比例,用 `\|` 分隔,如 `"0\|100"`(开头和结尾)、`"0\|50\|100"`(开头、中间、结尾) |
| values | string |✅ | - | 对应 offsets 的值,用 `\|` 分隔,元素个数须与 offsets 一致,如 `"1\|2"`、`"1\|2\|1"` |
| segment_infos | array[object] |✅ | - |轨道数据(片段对象数组),每项含 `id`、`start`、`end`(微秒) |
| height | integer |❌ | None |高度,用于 `KFTypePositionY` 值的归一化 |
| width | integer |❌ | None |宽,用于 `KFTypePositionX` 值的归一化 |



##响应格式

### 成功响应 (200)

```json
{
  "code": 0,
  "message": "success",
  "keyframes_infos": "[{\"offset\":0,\"property\":\"KFTypePositionX\",\"segment_id\":\"segment1\",\"value\":0.0},{\"offset\":2500000,\"property\":\"KFTypePositionX\",\"segment_id\":\"segment1\",\"value\":0.5},{\"offset\":5000000,\"property\":\"KFTypePositionX\",\"segment_id\":\"segment1\",\"value\":1.0}]"
}
```

###响应字段说明

| 字段名 | 类型 | 说明 |
|--------|------|------|
| keyframes_infos | string |关键帧信息JSON字符串 |

### 错误响应

```json
{
  "code": 1001,
  "message": "参数校验失败"
}
```

## 使用示例

### cURL 示例

#### 1.基本关键帧信息生成

```bash
curl -X POST https://capcut-mate.jcaigc.cn/openapi/capcut-mate/v1/keyframes_infos \
  -H "Content-Type: application/json" \
  -d '{
    "ctype": "UNIFORM_SCALE",
    "offsets": "0|100",
    "values": "0.5|1.5",
    "segment_infos": [{"id": "segment1", "start": 0, "end": 5000000}]
  }'
```

#### 2.位置关键帧信息

```bash
curl -X POST https://capcut-mate.jcaigc.cn/openapi/capcut-mate/v1/keyframes_infos \
  -H "Content-Type: application/json" \
  -d '{
    "ctype": "KFTypePositionX",
    "offsets": "0|30|70|100",
    "values": "0|384|1536|1920",
    "segment_infos": [{"id": "segment1", "start": 0, "end": 10000000}],
    "height": 1080,
    "width": 1920
  }'
```

##错误码说明

|错误码 | 错误信息 | 说明 | 解决方案 |
|--------|----------|------|----------|
| 1001 | 参数校验失败 | 请求体未通过字段校验(缺少 `ctype`/`offsets`/`values`/`segment_infos`,或 `offsets`/`values` 不是字符串) | 检查参数类型与必填字段 |
| 9998 | 系统内部错误 | `offsets` 与 `values` 用 `\|` 分隔的元素个数不一致 | 保证 `offsets` 与 `values` 的元素个数一致 |

## 注意事项

1. **元素数量匹配**: offsets和values用 `|` 分隔的元素个数必须相同
2. **时间单位**:所有时间参数使用微秒(1秒 = 1,000,000微秒)
3. **关键帧类型**:支持 KFTypePositionX、KFTypePositionY、KFTypeRotation、UNIFORM_SCALE、KFTypeAlpha
4. **位置比例**: offsets值为 0-100 的百分比,关键帧的 offset 相对片段起点计算
5. **分辨率设置**: KFTypePositionX/KFTypePositionY 的值会除以 width/height 进行归一化

##工作流程

1.验证必填参数(ctype, offsets, values, segment_infos)
2. 检查 offsets 与 values 的元素个数是否一致
3.验证参数有效性
4. 为每个offset生成对应的关键帧信息
5.应用分辨率参数
6.将信息转换为JSON字符串格式
7. 返回处理结果

##相关接口

- [创建草稿](./create_draft.md)
- [添加关键帧](./add_keyframes.md)
- [保存草稿](./save_draft.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>

### 语言切换
[中文版](./keyframes_infos.zh.md) | [English](./keyframes_infos.md)