API Reference
智能剪辑-口播混剪 API
口播混剪:以音频或文案口播配合素材与模板生成成片,支持多分辨率异步任务。
概述
- 音频/文案口播
- 素材列表
- 模板成片
- 异步回调
适用场景
- 音频口播成片
- 素材混剪短视频
- 批量内容生产
- 网关 ·
https://apis.xiaobao.ink - 鉴权 · 请求携带
key(Query 或 JSON Body,以本接口为准) - 回包 · JSON;请同时校验业务码与 HTTP 状态,不要只看 200
鉴权
请求需携带平台 API Key(查询参数 key 或 JSON 字段 key,以本接口说明为准)。在控制台 API Key 管理 创建密钥。
POST https://apis.xiaobao.ink/api/smartclip/broadcast_mixcut
Content-Type: application/json
{
"key": "YOUR_API_KEY"
}
请求示例
https://apis.xiaobao.ink/api/smartclip/broadcast_mixcut?key=你的密钥&action=create
详细说明
多规格计费:
720P 3(≈¥0.030) 点/输入秒,1080P 4(≈¥0.040) 点/输入秒
| 规格 | 价格 |
|---|---|
| 720P | 3(≈¥0.030) 点/输入秒 |
| 1080P | 4(≈¥0.040) 点/输入秒 |
计费公式:ceil(输入秒) × 对应规格单价。有 audioUrl 时探测音频时长;否则汇总 materials(图片按 2 秒)。 可通过参数 resolution(720p / 1080p,默认 720p)指定输出规格。无法解析有效输入媒体时长时请求会被拒绝。
URL 参数 action:
通过 URL 参数 action 区分操作:
create— 创建任务(POST JSON)query— 查询任务(GET/POST,需task_id)config— 获取配置(GET,不扣点)
create 请求示例 URL:
http://test.xiaobao.ink/api/smartclip/broadcast_mixcut?key=你的密钥&action=create
请求HEADER:
| 名称 | 值 |
|---|---|
| Content-Type | application/json |
鉴权说明:请在 URL 参数或 JSON Body 中携带 key(平台 API 密钥)。使用 POST + JSON 时,key 必须写在 JSON Body 内。
create 请求参数说明(POST JSON):
| 名称 | 必填 | 类型 | 示例值 | 说明 |
|---|---|---|---|---|
| key | 是 | string | 你的密钥 | 平台 API 密钥 |
| styleId | 是 | string | 68aebb91b8619ed6f4168f40 | 视频模板 ID |
| materials | 是 | array | [{type,fileUrl,soundSwitch}] | 素材列表,至少 1 项 |
| audioUrl | 否 | string | https://example.com/a.mp3 | 音频 URL(mp3/wav/m4a),与 content 二选一;有音频时优先按音频时长计费 |
| resolution | 否 | string | 720p | 输出规格:720p / 1080p,影响单价 |
| content | 否 | string | 文本内容(3-1800 字);当前平台不支持 content+speakerId 定制声音分支 | |
| callback_url | 是 | string | https://example.com/hook | 用户回调地址 |
| title | 否 | string | 标题 | |
| language | 否 | string | zh-CN | 音频语种 |
| subtitle | 否 | array | 字幕数组 | |
| introduceCard | 否 | object | 身份栏 | |
| packRules | 否 | object | 包装规则 | |
| processRules | 否 | object | 水印、首帧封面等 | |
| structLayers | 否 | array | 图层修改 |
视频生成方式:
参考文档支持两种方式:
| 方式 | 字段 | 说明 |
|---|---|---|
| 文本内容 + 定制声音 | content + speakerId | 文本字符数要求 3-1800,声音 ID 为定制声音产生的声音 ID |
| 音频文件 | audioUrl | 音频时长小于 5 分钟,格式 mp3、wav、m4a,文件大小小于等于 100MB,需要能够语音转文本 |
当前平台应用仅支持 audioUrl 或素材输入链路,不支持 content + speakerId 定制声音分支。若传入 content 或 speakerId,平台会返回 unsupported_speaker_branch。
speakerExtra:
| 字段 | 类型 | 必填 | 默认值 / 范围 | 说明 |
|---|---|---|---|---|
| speedRatio | number | 否 | 默认 1,范围 0.5-2 | 语速,支持 1 位小数,1 表示常速,例如 0.6、0.9、1.2 |
| language | string | 否 | - | 语种,特指该克隆声音文本(content)支持的语种 |
| marks | array | 否 | - | 文本标记特殊处理处,传 content 时有效 |
| marks[].type | string | 是 | break | 标记类型,break 表示停顿 |
| marks[].index | integer | 是 | 从 0 开始 | 文本索引处,最大值为 content 文本长度 |
| marks[].time | integer | 是 | 100-10000 | 时长,单位 ms |
processRules:
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| watermarkShow | boolean | 否 | false | 是否添加“AI生成”字样水印 |
| metadata | object | 否 | - | 元水印数据,仅支持写入一组数据,且 value 值需为字符串 |
| firstFrameCover | object | 否 | - | 首帧封面配置 |
重要规则:
音频驱动的
audioUrl、素材materials[].fileUrl、背景音乐packRules.backgroundMusic.audioUrl、AI 封面的resultImageUrl地址不能重名,重名会导致渲染异常。packRules仅用于控制标题、字幕、素材、背景音乐、关键词等图层是否参与效果包装,不能控制对应图层的显示/隐藏。如果期望生成的视频不显示标题,请不要设置标题值。
callback_url/callbackUrl作为平台任务通知地址保存,任务完成或失败后由平台发起通知。如无法解析有效输入媒体时长,本次请求会被拒绝,不使用默认时长。
通用对象字段:
subtitle[]
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| startMs | integer | 是 | 时间戳开始,单位 ms |
| endMs | integer | 是 | 时间戳结束,单位 ms,最大支持 310000ms |
| text | string | 是 | 文本,只支持单字符级别 |
materials[]
| 字段 | 类型 | 必填 | 可选值 / 默认值 | 说明 |
|---|---|---|---|---|
| type | string | 是 | image / video | 素材类型 |
| fileUrl | string | 是 | - | 素材 url |
| soundSwitch | boolean | 否 | false | 当素材为视频时原声开关,素材混剪和新闻体视频支持 |
introduceCard
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 否 | 名称 |
| description | string | 否 | 描述 |
packRules
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| headerSwitch | boolean | 否 | - | 标题包装开关 |
| materialSwitch | boolean | 否 | - | 素材包装开关 |
| subtitleSwitch | boolean | 否 | - | 字幕包装开关 |
| keywordSwitch | boolean | 否 | - | 关键词包装开关 |
| backgroundMusic | object | 否 | - | 背景音乐设置 |
| backgroundMusic.audioSwitch | boolean | 否 | - | 音乐开关 |
| backgroundMusic.audioUrl | string | 否 | - | 音频 url,模板内置背景音乐和传递 audioUrl,优先使用 audioUrl |
| backgroundMusic.volume | number | 否 | 0.3 | 音量,保留一位小数,范围 0-1 |
processRules.firstFrameCover
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| coverSwitch | boolean | 否 | false | 封面开关 |
| templateId | string | 否 | - | 模版 ID,如果未设置则系统匹配 |
| imageUrl | string | 否 | - | 图片地址,用于生成 AI 封面图的底图,imageUrl 和 resultImageUrl 二选一必填 |
| resultImageUrl | string | 否 | - | 图片生成接口的结果图片地址或其他封面图片地址;传了此值将直接运用作为视频首帧封面,优先级更高 |
structLayers[]
| 字段 | 类型 | 必填 | 可选值 | 说明 |
|---|---|---|---|---|
| markCode | string | 是 | headerLayer / subtitleLayer / ipLayer / backgroundLayer / figureLayer | 图层,对应模板详情接口返回的图层数据 |
| show | boolean | 否 | - | 是否显示,不设置时默认跟随模板;backgroundLayer、figureLayer 不支持设置,默认显示 |
| showMode | string | 否 | always / customize | 显示模式,markCode=headerLayer 时生效,不设置时默认跟随模板 |
| showTime | number | 条件必填 | 大于 0 | 显示时长,markCode=headerLayer 且 showMode=customize 时生效且必填,保留 3 位小数 |
| layer.transform.position | integer[] | 否 | - | 锚点定位,对应模板详情 transform.position |
| layer.uri | string | 否 | - | 背景图片资源链接,仅 backgroundLayer 生效 |
素材与媒体要求:
输入视频格式:mp4、mov;视频编码 h264、HEVC(h265);帧率 10-60fps,推荐 25;单边分辨率小于 2000px。
真人口播 videoUrl 时长小于 5 分钟,文件大小小于 500MB,视频中的音频需要能够语音转文本。
素材总量限制:单张图片计算为 2 秒,单个视频素材不能超过 60 秒,所有素材总时长不能超过 5 分钟。
素材图片格式支持 jpg、png、webp 静态图,单边分辨率小于 2000px。
素材视频格式支持 mp4、mov,单个视频小于 500MB,单边分辨率小于 2000px。
背景音乐格式支持 mp3、wav、m4a,文件大小不超过 120MB,时长不超过 5 分钟。
首帧封面
imageUrl、resultImageUrl格式支持 jpg/jpeg、png,文件大小不超过 10MB,单边分辨率小于 2000px。
query / 回调:
query 需 task_id;回调字段同真人口播接口。
响应字段:
| 字段 | 类型 | 必返 | 说明 |
|---|---|---|---|
| task_id | string | 是 | 平台任务 ID |
| status | string / int | 是 | 平台任务状态:上游多为 processing / queued;本平台 create/query 返回 1 处理中、2 完成、3 失败 |
| app | string | 是 | 应用编码,固定为 smart_clip(上游 data;本平台见 upstream 透传) |
| api | string | 是 | API 编码,固定为 broadcast_mixcut(上游 data;本平台见 upstream 透传) |
任务结果:
任务完成后,平台任务查询结果 / 用户回调中的结果通常包含:
| 字段 | 类型 | 说明 |
|---|---|---|
| video_url | string | 视频 url 地址,视频生成类任务返回 |
| cover_url | string | 视频封面 url 地址 |
| duration | number | 生成的视频或音频时长,单位:秒 |
| data | object | 完整结果数据 |
任务失败时返回错误码和错误描述(本平台字段为 fail_reason)。
返回示例
{ "code": 200, "msg": "success", "data": { "task_id": "task_8b4125d2a045655f7b4d69d4", "status": 1, "progress": 0, "power_cost": 150 }}
常见问题
口播混剪适合什么场景?
已有口播音频或文案,需要配上图片/视频素材并套模板出片的场景。
必填参数有哪些?
通常包括 styleId、materials、callback_url 等;音频与文案规则以文档为准。
计费依据是什么?
一般按输入秒与分辨率计费;有 audioUrl 时优先按音频时长,否则按素材规则汇总。
如何获取模板?
先调用模板列表,scene 选择口播混剪对应枚举。
任务失败怎么排查?
检查素材 URL 是否可达、格式是否支持、styleId 是否属于正确场景。
支持回调吗?
支持。create 时填写 callback_url,任务完成或失败后平台通知。
相关接口
完整控制台文档(含调试台):/doc/26