API Reference
智能剪辑-新闻混剪 API
新闻混剪:根据标题与素材、模板生成新闻资讯向短视频,异步返回成片。
概述
- 标题驱动
- 素材混剪
- 模板成片
- 异步任务
适用场景
- 新闻资讯片
- 热点快讯视频
- 媒体自动化
- 网关 ·
https://xiaoapis.com - 鉴权 · 请求携带
key(Query 或 JSON Body,以本接口为准) - 回包 · JSON;请同时校验业务码与 HTTP 状态,不要只看 200
鉴权
请求需携带平台 API Key(查询参数 key 或 JSON 字段 key,以本接口说明为准)。在控制台 API Key 管理 创建密钥。
POST https://xiaoapis.com/api/smartclip/news_mixcut
Content-Type: application/json
{
"key": "YOUR_API_KEY"
}
请求示例
https://xiaoapis.com/api/smartclip/news_mixcut?key=你的密钥&action=create
详细说明
多规格计费:
720P 2(≈¥0.020) 点/输入秒,1080P 2.6(≈¥0.026) 点/输入秒
| 规格 | 价格 |
|---|---|
| 720P | 2(≈¥0.020) 点/输入秒 |
| 1080P | 2.6(≈¥0.026) 点/输入秒 |
计费公式:ceil(输入秒) × 对应规格单价。输入秒汇总自 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/news_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 |
| title | 是 | string | 聊AI行业 | 标题,3-1800 字符 |
| materials | 是 | array | [{type,fileUrl,soundSwitch}] | 素材列表;探测时长用于计费,图片按 2 秒 |
| resolution | 否 | string | 720p | 输出规格:720p / 1080p,影响单价 |
| callback_url | 是 | string | https://example.com/hook | 用户回调地址 |
| introduceCard | 否 | object | 身份栏 | |
| packRules | 否 | object | 包装规则 | |
| processRules | 否 | object | watermarkShow、videoDuration(5-300秒)、materialComposition(random/order) 等 | |
| structLayers | 否 | array | 图层修改 |
processRules:
| 字段 | 类型 | 必填 | 默认值 | 可选值 / 范围 | 说明 |
|---|---|---|---|---|---|
| watermarkShow | boolean | 否 | false | true / false | 是否添加“AI生成”字样水印 |
| videoDuration | integer | 否 | 跟随素材资源时长 | 5-300 | 视频时长,单位:秒 |
| metadata | object | 否 | - | - | 元水印数据,仅支持写入一组数据,且 value 值需为字符串 |
| materialComposition | string | 否 | random | random / order | 素材组合方式,random 随机,order 顺序 |
| firstFrameCover | object | 否 | - | - | 首帧封面配置 |
重要规则:
素材
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 编码,固定为 news_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_ddf1834a9ce60a065bf516c1", "status": 1, "progress": 0, "power_cost": 100 }}
常见问题
新闻混剪和口播混剪有何不同?
新闻混剪强调标题/资讯向结构;口播混剪强调口播音频或文案驱动。
标题有长度限制吗?
有。文档通常要求标题字数在指定区间内,请按参数说明填写。
如何创建任务?
action=create,提交 styleId、title、materials、callback_url 等字段。
计费怎么算?
按分辨率对应单价与素材汇总输入秒计费,以文档为准。
能否自定义包装?
可通过 packRules、processRules、structLayers 等字段控制,详见文档。
如何查询结果?
使用 action=query 与 task_id,或接收回调中的视频地址。
相关接口
完整控制台文档(含调试台):/doc/27