创建视频创作任务
更新时间:2026-07-13 11:57:31
接口描述
1、创建视频创作任务, 接口支持批量创建任务, 单次最多支持20个
2、接口支持https协议
接口URL
http://api.polyv.net/live/v4/ai/video-produce/create-batch
请求方式
POST
接口约束
1、接口同时支持HTTP 、HTTPS ,建议使用HTTPS 确保接口安全,接口调用有频率限制,详细请查看
URL请求参数描述(用于签名)
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| appId | true | String | 账号appId【详见获取密钥】 |
| timestamp | true | Long | 当前13位毫秒级时间戳,3分钟内有效 |
| sign | true | String | 签名,为32位大写的MD5值,生成签名的appSecret密钥作为通信数据安全的关键信息,严禁保存在客户端直接使用,所有API都必须通过客户自己服务器中转调用POLYV服务器获取响应数据【详见签名生成规则】 |
body(application/json) 参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| videoName | true | String | 视频名称 |
| hasDigitalHuman | true | Boolean | 是否包含数字人 |
| ttsVoiceInfo | true | Object | 声音配置信息;【详见ttsVoiceInfo声音配置信息参数描述】 |
| subtitleInfo | true | Object | 字幕配置信息;【详见subtitleInfo字幕配置信息参数描述】 |
| fileId | false | String | ppt文件id, 如果是基于ppt做视频创作, 此参数必传, 并且materialInfos参数需要为空(fileId参数优先级低于materialInfos) |
| materialInfos | false | List | 自定义素材信息【详见materialInfos自定义素材信息参数描述】 |
| digitalHumanInfos | false | List | 数字人的大小和位置信息, 如果当前视频创作任务需要数字人, 此参数必填; 【详见digitalHumanInfos参数描述】 |
| tags | false | List | 标签, 字符串数组格式, 标签不支持重复, 一个任务最多支持10个标签, 单个标签长度限制20个字符 |
ttsVoiceInfo声音配置信息参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| ttsVoiceId | true | Integer | 声音id, 可从 "查询可用于视频创作的声音列表" 接口获取到您当前可用的声音 |
| rate | true | Float | 声音语速, 0.5 ~ 2.0之间, 1为正常语速, 如果不需要调整传1 |
subtitleInfo字幕配置信息参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| enableSubtitle | true | Boolean | 是否需要字幕 |
| fontSize | false | Integer | 字幕字体大小,范围:10到 30 ,默认 18 |
| fontColor | false | String | 字幕字体颜色 |
| backgroundColor | false | String | 字幕背景颜色 |
materialInfos自定义素材信息参数描述
注意事项:
- 单个视频创作任务最多支持100页素材(100张背景图和口播稿)
- 单个任务口播稿限制 25000 个字符
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| backgroundImage | true | String | 背景图片素材url, 图片需要是 1920x1080(16:9) 或 1080x1920(9:16) 分辨率, 单个任务中不支持同时存在横屏和竖屏两种图片, 否则最终视频会被异常拉伸 |
| remark | false | String | 口播稿, 用于文本转语音 |
| audioFileUrl | false | String | 自定义口播稿音频, 和remark参数二选一, 仅支持mp3 wav m4a格式的音频文件, 单个音频文件不超过50MB |
digitalHumanInfos参数描述
digitalHumanInfos参数解释:
- 这个参数是集合类型, 如果当前任务不需要数字人, 此参数不需要传
- 这个参数是用于控制每页素材中, 控制数字人的显示和隐藏, 以及调整数字人的大小和位置
- 如果素材是ppt, 将不支持对每页ppt调整数字人的显示和隐藏, 也不支持对每页ppt调整数字人的大小和位置( 仅需传一份数字人id和数字人大小位置信息即可, ppt的每页视频中数字人的大小和位置都是一样的)
- 如果素材是自定义背景图和自定义口播稿, 可以通过当前参数控制每页口播稿中是否需要显示数字人以及数字人的大小和位置. 但需注意有多少页素材(一个背景图+一个口播稿视为一页素材)就要传多少份数字人大小位置信息, 如果只传一份大小位置信息, 默认视为每份素材中的数字人都显示, 并且数字人的大小位置都保持一致
其他注意事项:
- 目前单个视频创作任务, 暂时最多支持使用一个数字人
例子:
- 素材采用ppt, 并且需要数字人, 仅需传一份数字人大小位置
[
{
"digitalHumanId": 15,
"x": "1412",
"y": "247",
"w": "467",
"h": "830"
}
]
- 自定义素材, 并且需要数字人, 假设一共有三页素材, 第一页需要显示数字人, 第二页不需要显示数字人, 第三页需要显示数字人, 并且数字人的大小位置相较第一页有调整
[
{
"digitalHumanId": 15,
"x": "1412",
"y": "247",
"w": "467",
"h": "830"
},
{
"digitalHumanId": null,
"x": null,
"y": null,
"w": null,
"h": null
},
{
"digitalHumanId": 15,
"x": "1012",
"y": "147",
"w": "367",
"h": "530"
}
]
- 自定义素材, 并且需要数字人, 假如全部页的素材都显示数字人, 并且数字人的大小位置都保持一致, 传一份大小位置参数即可
[
{
"digitalHumanId": 15,
"x": "1412",
"y": "247",
"w": "467",
"h": "830"
}
]
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| digitalHumanId | false | Integer | 数字人id, 如果为空, 代表当前页素材不需要显示数字人 |
| x | false | Integer | 数字人位置(x轴坐标), 数字人id不为空时此参数必传 |
| y | false | Integer | 数字人位置(y轴坐标), 数字人id不为空时此参数必传 |
| w | false | Integer | 数字人大小(宽度), 数字人id不为空时此参数必传 |
| h | false | Integer | 数字人大小(高度), 数字人id不为空时此参数必传 |
数字人默认的大小位置参数建议(不同的素材一般需要搭配不同的数字人大小位置参数, 建议先把数字人的大小位置做成可视化然后在界面做调整):
- 16:9横屏视频, 数字人在右边: x: 1325, y: 28, w: 588, h: 1045
- 16:9横屏视频, 数字人在左边: x: 3, y: 80, w: 562, h: 1000
- 9:16竖屏视频: x: 10, y: 25, w: 1060, h: 1888
示例
http://api.polyv.net/live/v4/ai/video-produce/create-batch?timestamp=1716107535043&appId=gopl67qi7e&sign=6625340A6017272DF55CD1F5DC42CFCB
// ppt + 无数字人
[
{
"videoName": "ppt素材-无数字人",
"hasDigitalHuman": false,
"ttsVoiceInfo": {
"ttsVoiceId": 79,
"rate": "1.0"
},
"fileId": "abdd872ffae85752080989ca505b9525c560fac50fpptVideocommon",
"subtitleInfo": {
"enableSubtitle": true
}
}
]
// ppt + 有数字人
[
{
"videoName": "ppt素材-有数字人",
"hasDigitalHuman": true,
"ttsVoiceInfo": {
"ttsVoiceId": 79,
"rate": "1.2"
},
"fileId": "47023bd9a36fa692770e330a190fa7a9c560fac50fpptVideocommon",
"subtitleInfo": {
"enableSubtitle": false
},
"digitalHumanInfos": [
{
"digitalHumanId": 15,
"x": "1412",
"y": "247",
"w": "467",
"h": "830"
}
]
}
]
// 自定义素材 + 无数字人
[
{
"videoName": "自定义素材-无数字人",
"hasDigitalHuman": false,
"ttsVoiceInfo": {
"ttsVoiceId": 79,
"rate": "1.3"
},
"subtitleInfo": {
"enableSubtitle": false
},
"materialInfos": [
{
"backgroundImage": "https://img.videocc.net/e5f34f7744/html/adv/video-produce/background-image/16_9/img/5landscape/landscape7.jpg",
"remark": "你好"
},
{
"backgroundImage": "https://img.videocc.net/e5f34f7744/html/adv/video-produce/background-image/9_16/img/3simple/simple21.jpg",
"remark": "这里是保利威视频创作"
}
]
}
]
// 自定义素材 + 有数字人 + 全部页素材的数字人大小位置都一样
[
{
"videoName": "自定义素材-有数字人",
"hasDigitalHuman": true,
"ttsVoiceInfo": {
"ttsVoiceId": 79,
"rate": "1.3"
},
"subtitleInfo": {
"enableSubtitle": false
},
"materialInfos": [
{
"backgroundImage": "https://img.videocc.net/e5f34f7744/html/adv/video-produce/background-image/16_9/img/5landscape/landscape7.jpg",
"remark": "你好"
},
{
"backgroundImage": "https://img.videocc.net/e5f34f7744/html/adv/video-produce/background-image/16_9/img/5landscape/landscape7.jpg",
"remark": "这里是保利威视频创作"
}
],
"digitalHumanInfos": [
{
"digitalHumanId": 15,
"x": "1412",
"y": "247",
"w": "467",
"h": "830"
}
]
}
]
// 自定义素材 + 有数字人 + 自定义数字人显示和数字人大小位置
[
{
"videoName": "有数字人-素材-000000000",
"hasDigitalHuman": true,
"ttsVoiceInfo": {
"ttsVoiceId": 79,
"rate": "1.3"
},
"subtitleInfo": {
"enableSubtitle": false
},
"materialInfos": [
{
"backgroundImage": "https://img.videocc.net/e5f34f7744/html/adv/video-produce/background-image/16_9/img/5landscape/landscape7.jpg",
"remark": "你好"
},
{
"backgroundImage": "https://img.videocc.net/e5f34f7744/html/adv/video-produce/background-image/16_9/img/5landscape/landscape7.jpg",
"remark": "这里是保利威视频创作"
},
{
"backgroundImage": "https://img.videocc.net/e5f34f7744/html/adv/video-produce/background-image/16_9/img/5landscape/landscape7.jpg",
"remark": "感谢您的支持和使用"
}
],
"digitalHumanInfos": [
{
"digitalHumanId": 15,
"x": "1412",
"y": "247",
"w": "467",
"h": "830"
},
{
"digitalHumanId": null,
"x": null,
"y": null,
"w": null,
"h": null
},
{
"digitalHumanId": 15,
"x": "1012",
"y": "147",
"w": "367",
"h": "530"
}
]
}
]
响应参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | Integer | 响应状态码,200为成功返回,非200为失败 |
| status | String | 响应结果,由业务决定,成功返回success,失败返回error |
| success | Boolean | 响应结果,由业务决定,成功返回true,失败返回false |
| data | Boolean | 成功响应true, 失败请从error参数中获取详细的失败信息 |
| error | Object | 状态码非200时的错误信息【详见Error字段说明】 |
| requestId | String | 请求ID,每次请求生成的唯一的 UUID,仅可用于排查、调试,不应该和业务挂上钩 |
响应示例
成功示例
{
"code": 200,
"status": "success",
"requestId": "e90aba2c69a24bab894c7f708b853b75.71.17161341126309441",
"data": true,
"success": true
}
Error参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | Integer | 错误代码,用于确定具体的错误原因 |
| desc | String | 错误描述,与 error.code 对应 |
