与我司商务合作后,我司会给客户硅语账号进行授权并且给出开放平台的AccessKey和SecretKey,客户可以通过AccessKey和SecretKey进行接入,请妥善保存。
调用流程如下图
硅语平台生产地址:https://meta.guiji.cn (opens new window)
开放平台支持查询和回调两种方式来监听视频合成的最终结果。
(1)、查询
当视频合成请求提交成功后,客户端可通过“3.11 查询合成作品列表”或“3.12 查询合成作品详情”进行对视频任务状态的更新。
(2)、回调
视频合成接口均提供了callbackUrl回调地址的属性,客户端只需要传公网可访问的回调地址即可,开放平台视频合成成功或失败后都会通过该地址通知客户端,回调参数请参考“3.10合成任务回调接口”设计。
硅语平台获取签名的规则为:通过AccessKey、时间戳、加密生成得到的签名【MD5(AccessKey+时间戳+SecretKey)】,MD5结果取32位小写值,然后通过该签名请求硅语平台获取token,后续接口都需要加上该token进行请求,具体接口信息见第三部分API详细信息。
硅语平台得到token和其他请求数据集合后,会先进行安全校验等验证,一系列验证通过后便会处理完成这次发送过来的数据请求,平台返回的参数格式如下:
| 字段 | 类型 | 是否必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | N | 成功/错误的描述信息 |
| data | object | N | 返回的具体内容 |
| 错误码 | 描述 |
|---|---|
| 0 | 正常 |
| 40001 | 内部异常 |
| 40002 | token无效 |
| 40003 | token超时 |
| 40010 | 余额不足 |
| 40011 | 不合法的音频地址 |
| 40012 | 不合法的音频时长 |
| 40013 | 不合法的文件大小 |
| 40014 | 缺少必要文件 |
| 40015 | 缺少必要参数 |
| 40016 | 文件上传失败 |
| 40017 | 文件下载失败 |
| 40018 | 文件不存在 |
| 40019 | 超出并发 |
| 40020 | 不支持的背景图片格式 |
| 40021 | 提交训练视频失败 |
| 40022 | 不合法的码率值 |
| 40023 | 不合法的分辨率值 |
| 40024 | 不合法的fps值 |
| 40025 | 模特不存在 |
| 40026 | 模特已过期 |
| 40027 | 不合法的视频格式 |
| 40028 | 文件上传失败 |
| 40030 | 背景地址不能访问 |
| 40031 | 音频地址不能访问 |
| 40032 | 发言人不存在 |
| 40033 | 文件地址不能访问 |
| 40040 | 声音合成失败 |
| 40041 | 视频解析失败 |
| 40042 | 不合法的MP3 |
| 40045 | 发言人已过期 |
| 40046 | 不合法的URL |
| 40056 | 内容检测不通过 |
| 50010 | 扣款失败 |
/openapi/oauth/token
GET
| 字段 | 类型 | 是否必须 | 备注 |
|---|---|---|---|
| appId | string | Y | Access key |
| timestamp | string | Y | 当前时间戳,精确到毫秒 |
| sign | string | Y | 生成的签名 |
| grant_type | string | Y | 认证类型(固定值‘sign’) |
示例:
https://meta.guiji.cn/openapi/oauth/token?grant_type=sign×tamp=1648429269823&sign=3fe58596ec5edc297876e00f4e4b1a49&appId=TPbMPQeD4U2dJgRY62PCRnSz
| 字段 | 类型 | 是否必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| success | boolean | Y | 成功/错误 |
| data | json | N | 返回的JSONObject |
| access_token | string | N | 返回的token值 |
| expires_in | integer | N | Token过期时间,单位“秒” |
示例:
{
"code": "0",
"success": true,
"data": {
"access_token": "99568c59-eb7e-4feb-b546-078f2fe9d5c6",
"expires_in": 7199
}
}
/openapi/robot/v2/pageList?access_token=55d1bc37-f960-4a9d-8c7d-5dc8c991c245
POST(Content-Type: application/json)
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| page | integer | Y | 请求页数 |
| size | integer | Y | 每页 |
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| data | json | N | 返回的jsonobject |
| pageSize | integer | N | 页尺寸 |
| pageNo | integer | N | 页号 |
| totalRecord | integer | N | 总记录数 |
| records | list | N | 模特列表 |
| id | integer | N | 模特ID |
| robotName | string | N | 模特名称 |
| robotDesc | string | N | 模特描述 |
| coverUrl | string | N | 模特封面地址 |
| expireTime | string | N | 模特过期时间 |
| gender | integer | N | 性别1男 2女 |
| version | integer | N | 类型0:2D 1:3D |
| age | integer | N | 年龄 |
| type | integer | N | 模特类型 1-私人定制 2-会员订阅 3或空-其他 |
| expireTime | string | N | 模特过期时间 |
| starSigns | integer | N | 星座 1:'白羊座', 2:'金牛座', 3:'双子座', 4:'巨蟹座', 5:'狮子座', 6:'处女座', 7:'天秤座', 8:'天蝎座', 9:'射手座', 10:'摩羯座', 11:'水瓶座', 12:'双鱼座' |
| popularity | integer | N | 人气 |
| speakerId | string | N | 默认适配的tts发言人 |
| labelBaseDTOList | list | N | 标签列表 |
| labelName | string | N | 标签名称 |
| sceneList | list | N | 数字人场景列表 |
| id | integer | N | 场景id(重要,视频合成必填ID) |
| sceneName | string | N | 场景名称 |
| exampleUrl | string | N | 示例视频 |
| coverUrl | string | N | 封面地址 |
| samplePictureUrl | string | N | 示例图片 |
| sceneType | integer | N | 场景类型,0-绿幕,1-其他 |
示例
{
"code": "0",
"message": "请求成功",
"success": true,
"data": {
"pageSize": 10,
"pageNo": 1,
"totalRecord": 8,
"records": [{
"id": 458,
"robotName": "测试—明",
"robotDesc": "123",
"coverUrl": "http://172.16.17.21:8000/nfs/model/png/d748497cb56bcc9f6d37e7091451d75f.png",
"gender": 2,
"age": 22,
"starSigns": 1,
"face": null,
"expireTime": "2024-03-15 18:19:03",
"popularity": 1000,
"speakerId": "120",
"sceneList": [{
"id": 666,
"sceneName": "硅语",
"exampleUrl": "http://172.16.17.21:8000/nfs/model/mp4/d46e1d0f71ff78054268106f0ac0ff28.mp4",
"coverUrl": "http://172.16.17.21:8000/nfs/model/png/9cbbc8834a84c3a57a63d8f92d083ad2.png",
"sceneType": 0
}
],
"labelBaseDTOList": [{
"labelName": "温婉贤淑"
}
]
}
]
}
}
/openapi/robot/v2/freeListPage?access_token=55d1bc37-f960-4a9d-8c7d-5dc8c991c245
POST(Content-Type: application/json)
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| page | integer | Y | 请求页数 |
| size | integer | Y | 每页 |
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| data | json | N | 返回的jsonobject |
| pageSize | integer | N | 页尺寸 |
| pageNo | integer | N | 页号 |
| totalRecord | integer | N | 总记录数 |
| records | list | N | 模特列表 |
| id | integer | N | 模特ID |
| robotName | string | N | 模特名称 |
| robotDesc | string | N | 模特描述 |
| coverUrl | string | N | 模特封面地址 |
| gender | integer | N | 性别1男 2女 |
| version | integer | N | 类型0:2D 1:3D |
| age | integer | N | 年龄 |
| starSigns | integer | N | 星座 1:'白羊座', 2:'金牛座', 3:'双子座', 4:'巨蟹座', 5:'狮子座', 6:'处女座', 7:'天秤座', 8:'天蝎座', 9:'射手座', 10:'摩羯座', 11:'水瓶座', 12:'双鱼座' |
| popularity | integer | N | 人气 |
| speakerId | string | N | 默认适配的tts发言人 |
| labelBaseDTOList | list | N | 标签列表 |
| labelName | string | N | 标签名称 |
| sceneList | list | N | 数字人场景列表 |
| id | integer | N | 场景id(重要,视频合成必填ID) |
| sceneName | string | N | 场景名称 |
| exampleUrl | string | N | 示例视频 |
| coverUrl | string | N | 封面地址 |
| samplePictureUrl | string | N | 示例图片 |
| sceneType | integer | N | 场景类型,0-绿幕,1-其他 |
示例
{
"code": "0",
"message": "请求成功",
"success": true,
"data": {
"pageSize": 10,
"pageNo": 1,
"totalRecord": 8,
"records": [{
"id": 458,
"robotName": "测试—明",
"robotDesc": "123",
"coverUrl": "http://172.16.17.21:8000/nfs/model/png/d748497cb56bcc9f6d37e7091451d75f.png",
"gender": 2,
"age": 22,
"starSigns": 1,
"face": null,
"popularity": 1000,
"speakerId": "120",
"sceneList": [{
"id": 666,
"sceneName": "硅语",
"exampleUrl": "http://172.16.17.21:8000/nfs/model/mp4/d46e1d0f71ff78054268106f0ac0ff28.mp4",
"coverUrl": "http://172.16.17.21:8000/nfs/model/png/9cbbc8834a84c3a57a63d8f92d083ad2.png",
"sceneType": 0
}
],
"labelBaseDTOList": [{
"labelName": "温婉贤淑"
}
]
}
]
}
}
/openapi/video/robot/get/{robotId}?access_token=ae4dad61-0dc5-47ad-be20-c51245db2769
GET
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| robotId | integer | Y | 模特ID(路径参数) |
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| data | json | N | 模特对象 |
| id | integer | N | 模特ID |
| robotName | string | N | 模特名称 |
| robotDesc | string | N | 模特描述 |
| coverUrl | string | N | 模特封面地址 |
| expireTime | string | N | 模特过期时间 |
| gender | integer | N | 性别1男 2女 |
| version | integer | N | 类型0:2D 1:3D |
| age | integer | N | 年龄 |
| starSigns | integer | N | 星座 1:'白羊座', 2:'金牛座', 3:'双子座', 4:'巨蟹座', 5:'狮子座', 6:'处女座', 7:'天秤座', 8:'天蝎座', 9:'射手座', 10:'摩羯座', 11:'水瓶座', 12:'双鱼座' |
| popularity | integer | N | 人气 |
| speakerId | string | N | 默认适配的tts发言人 |
| labelBaseDTOList | list | N | 标签列表 |
| labelName | string | N | 标签名称 |
| sceneList | list | N | 数字人场景列表 |
| id | integer | N | 场景id(重要,视频合成必填ID) |
| sceneName | string | N | 场景名称 |
| exampleUrl | string | N | 示例视频 |
| coverUrl | string | N | 封面地址 |
| samplePictureUrl | string | N | 示例图片 |
| sceneType | integer | N | 场景类型,0-绿幕,1-其他 |
示例
{
"code": "0",
"message": "请求成功",
"success": true,
"data": {
"id": 123,
"robotName": "测试模特",
"robotDesc": null,
"coverUrl": "http://127.0.0.1/24401456280993792.jpg",
"gender": null,
"age": null,
"starSigns": null,
"face": null,
"sceneList": [
{
"id": 195874872,
"sceneName": "测试模特场景",
"exampleUrl": "http://127.0.0.1/7d9a5096fb69acfe5a660180642218fd.mp4",
"coverUrl": "http://127.0.0.1/244b7476fd9f489a25d756493c53fe74.png",
"samplePictureUrl": "http://127.0.0.1/ba24eaa05a5e4bb4ccaeea097cc2c3fa.png",
"proportion": "9:16",
"resolution": "2160x3840",
"duration": 265,
"sceneType": 0
}
],
"version": 0,
"type": 1,
"expireTime": "2028-05-19 09:29:20",
"popularity": 50,
"speakerId": null,
"ttsSpeaker": "",
"labelBaseDTOList": []
}
}
/openapi/speaker/v2/list?access_token=55d1bc37-f960-4a9d-8c7d-5dc8c991c245
GET
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| 无 |
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| data | jsonArray | N | 返回的jsonArray |
| id | string | N | 发言人ID |
| ttsName | string | N | 发言人名 |
| ttsIntroduction | string | N | 介绍 |
| ttsScenes | string | N | 使用场景 |
| ttsSpeaker | string | N | 发言人标识 |
| ttsFeatures | string | N | 特色 |
| ttsAudition | string | N | 示例音频地址 |
| ttsCover | string | N | 封面地址 |
| languages | jsonArray | N | 支持的语言类型列表 cn-中文 en-英文 |
| sex | integer | N | 性别 1: 男,2:女 |
| phonemeFlag | integer | N | 多音字标识,0:不支持 1:支持 |
| ttsExtendJson | string | N | 扩展属性 |
示例:
{
"code": "0",
"message": "请求成功",
"success": true,
"data": [{
"id": 158,
"ttsName": "梦田甜",
"ttsIntroduction": "梦田甜",
"ttsScenes": "新闻播报|专题宣传",
"ttsSpeaker": "yujie_meet",
"ttsFeatures": "自然流畅、成熟知性",
"ttsAudition": "http://172.16.17.21:8000/nfs/tts-market/cmww/tts_case/yujie_meet_0.wav",
"ttsCover": "http://172.16.17.21:8000/nfs/tts-market/cmww/moqiusha_mengtiantian.png",
"languages": [
"cn",
"en"
],
"sex": 2
}
]
}
/openapi/video/v2/create?access_token=55d1bc37-f960-4a9d-8c7d-5dc8c991c245
POST(Content-Type: application/json)
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| audioUrl | string | Y | 音频地址,需公网可访问 |
| sceneId | string | Y | 场景ID,从模特列表接口获取 |
| backgroundUrl | string | N | 自定义背景,需公网可访问 |
| videoName | string | N | 合成作品名称 |
| bitRate | string | N | 视频码率 可选值:1M、1.5M、3M、3.5M、5M、7M、8M、10M、12M、16M(默认’3.5M’) |
| width | string | N | 横向分辨率(默认’1080’) |
| height | string | N | 纵向分辨率(默认’1920’) |
| captureVideoFrame | integer | N | 是否抓取首页 0:否,1:是,默认否 |
| needHeadTailLink | integer | N | 视频首尾帧是否相接 1:是 |
| randomFrame | integer | N | 首帧开关 1:开启(如果startFrameTime字段有值,则使用startFrameTime值,若没值,则启用系统随机) |
| startFrameTime | integer | N | 指定起始帧时间点(毫秒) |
| mask | string | N | 是否启用mask ‘0’不起用 ’1’: 启用 |
| fps | string | N | fps 可选值:"15"、 "20"、 "25"、 "30"(默认’25’) |
| callbackUrl | string | N | 合成结果回调地址 |
| matting | string | N | 是否抠图,0-不抠图 1-抠图;如果选择抠图,请同时设置‘backgroundUrl’值 |
| pixFmt | string | N | 色彩度, 如 yuv420p 、 yuyv422 、 yuv422p 、 yuv444p 、 yuv410p 、 yuv420p9le 、 yuvj411p 、 yuv420p16le 、 yuv411p 等等(默认’yuv420p ’) |
| videoFormat | string | N | 合成结果视频格式 可选值:mp4、webm,默认为mp4 |
| style | object | N | 控制模特大小及位置(具体位置说明参考第四章位置说明, 注意:目前该功能只支持输出mp4格式视频) |
| x | string | N | 控制模特水平方向位置(整数值) |
| y | string | N | 控制模特垂直方向位置(整数值) |
| width | string | N | 控制模特宽度(整数值) |
| height | string | N | 控制模特高度(整数值) |
| indexLayer | Number | N | 控制模特图层层级 |
| nodes | array | N | 在画面中添加素材(注意:目前该功能只支持输出mp4格式视频) |
| type | string | N | 素材类型,'1'-视频素材 '2'-图片素材 |
| url | string | N | 素材地址 |
| indexLayer | Number | N | 图层,默认最大放在最上面,字幕为10 |
| startTime | integer | N | 素材开始时间,单位毫秒 |
| endTime | integer | N | 素材结束时间,单位毫秒 |
| silence | integer | N | 如果是视频素材,可选择是否静音 0-不静音 1-静音 |
| style | string | N | 控制素材位置 |
| x | string | N | 控制素材水平方向位置(整数值) |
| y | string | N | 控制素材垂直方向位置(整数值) |
| width | string | N | 控制素材宽度(整数值) |
| height | string | N | 控制素材高度(整数值) |
| rotation | string | N | 旋转角度(整数值,顺时针计算) |
| watermark | object | N | 水印配置 |
| pos | string | N | 水印位置: 支持top-left(左上)、top-right(右上)、bottom-left(左下)、bottom-right(右下),默认top-left |
示例
{
"audioUrl": "http://127.0.0.1/video-server/test/test_001.wav",
"sceneId": "1921",
"backgroundUrl": null,
"bitRate": "3.5M",
"width": "720",
"height": "1280",
"fps": "30",
"mask": "1",
"callbackUrl": "http://127.0.0.1/openapi/callback",
"pixFmt": "yuv444p",
"style": {
"x": "637",
"y": "327",
"width": "364",
"height": "647"
}
}
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| data | json | N | 返回的jsonobject |
| videoId | string | N | 视频作品ID |
示例
{
"code": "0",
"message": "请求成功",
"success": true,
"data": {
"videoId": 2598397
}
}
/openapi/video/v2/create/tss?access_token=55d1bc37-f960-4a9d-8c7d-5dc8c991c245
POST(Content-Type: application/json)
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| text | string | Y | 合成的文本,文本支持以下标签: 插入停顿(单位:秒):<delay value="0.5"/> 自定义读音:<grammar type="custom" value="十万">100000</grammar> 多音字标注:<grammar type="pinyin" value="hang2">行</grammar> |
| sceneId | string | Y | 场景ID,从模特列表接口获取 |
| speakerId | string | Y | 发音人id |
| backgroundUrl | string | N | 自定义背景,需公网可访问 |
| videoName | string | N | 合成作品名 |
| bitRate | string | N | 视频码率 可选值:1M、1.5M、3M、3.5M、5M、7M、8M、10M、12M、16M(默认’3.5M’) |
| width | string | N | 横向分辨率(默认’1080’) |
| height | string | N | 纵向分辨率(默认’1920’) |
| captureVideoFrame | integer | N | 是否抓取首页 0:否,1:是,默认否 |
| needHeadTailLink | integer | N | 视频首尾帧是否相接 1:是 |
| randomFrame | integer | N | 首帧开关 1:开启(如果startFrameTime字段有值,则使用startFrameTime值,若没值,则启用系统随机) |
| startFrameTime | integer | N | 指定起始帧时间点(毫秒) |
| mask | string | N | 是否启用mask ‘0’不起用 ’1’: 启用 |
| fps | string | N | fps 可选值:"15"、 "20"、 "25"、 "30"(默认’25’) |
| callbackUrl | string | N | 合成结果回调地址 |
| speechRate | string | N | 语速,取值区间:[0-1.0](默认’0.5’) |
| volume | string | N | 音量,取值区间:[0-1.0](默认’0.5’) |
| srtFlag | string | N | 是否生成字幕,0-不生成字幕和字幕文件 1-生成字幕和字幕文件 2-仅生成字幕文件 |
| matting | string | N | 是否抠图,0-不抠图 1-抠图;如果选择抠图,请同时设置‘backgroundUrl’值 |
| pixFmt | string | N | 色彩度, 如 yuv420p 、 yuyv422 、 yuv422p 、 yuv444p 、 yuv410p 、 yuv420p9le 、 yuvj411p 、 yuv420p16le 、 yuv411p 等等(默认’yuv420p ’) |
| videoFormat | string | N | 合成结果视频格式 可选值:mp4、webm,默认为mp4 |
| style | object | N | 控制模特大小及位置(具体位置说明参考第四章位置说明, 注意:目前该功能只支持输出mp4格式视频) |
| x | string | N | 控制模特水平方向位置(整数值) |
| y | string | N | 控制模特垂直方向位置(整数值) |
| width | string | N | 控制模特宽度(整数值) |
| height | string | N | 控制模特高度(整数值) |
| indexLayer | Number | N | 控制模特图层层级 |
| nodes | array | N | 在画面中添加素材(注意:目前该功能只支持输出mp4格式视频) |
| type | string | N | 素材类型,'1'-视频素材 '2'-图片素材 |
| url | string | N | 素材地址 |
| indexLayer | Number | N | 控制素材图层层级 |
| startTime | integer | N | 素材开始时间,单位毫秒 |
| endTime | integer | N | 素材结束时间,单位毫秒 |
| silence | integer | N | 如果是视频素材,可选择是否静音 0-不静音 1-静音 |
| style | string | N | 控制素材位置 |
| x | string | N | 控制素材水平方向位置(整数值) |
| y | string | N | 控制素材垂直方向位置(整数值) |
| width | string | N | 控制素材宽度(整数值) |
| height | string | N | 控制素材高度(整数值) |
| rotation | string | N | 旋转角度(整数值,顺时针计算) |
| srtStyle | object | N | 字幕样式(srtFlag=1生效) |
| x | string | N | 字幕水平方向位置默认值480 |
| y | string | N | 字幕垂直方向位置默认值888 |
| fontSize | string | N | 字幕字体大小默认值60 |
| color | string | N | 字幕字体颜色默认值:#000000 |
| width | string | N | 宽度 |
| height | string | N | 高度 |
| watermark | object | N | 水印配置 |
| pos | string | N | 水印位置: 支持top-left(左上)、top-right(右上)、bottom-left(左下)、bottom-right(右下),默认top-left |
示例
{
"text": "你好,我是数字人",
"speakerId": "1922",
"sceneId": "1921",
"backgroundUrl": null,
"bitRate": "3.5M",
"width": "720",
"height": "1280",
"fps": "30",
"mask": "1",
"callbackUrl": "http://127.0.0.1/openapi/callback",
"srtFlag": "1",
"matting": "0",
"speechRate": "0.5",
"pixFmt": "yuv444p",
"style": {
"x": "637",
"y": "327",
"width": "364",
"height": "647"
},
"srtStyle": {
"x": 480,
"y": 888,
"fontSize": 60,
"color": "#000000"
}
}
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| data | json | N | 返回的jsonobject |
| videoId | string | N | 视频作品ID |
示例
{
"code": "0",
"message": "请求成功",
"success": true,
"data": {
"videoId": 2598398
}
}
/openapi/robot/v2/digitalCard?access_token=ae4dad61-0dc5-47ad-be20-c51245db2769
POST(Content-Type: application/json)
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| success | boolean | Y | 成功标识 |
| data | string | N | 返回的jsonobject |
| id | integer | N | 数字名片模板id |
| themeName | integer | N | 数字名片名称 |
| configJson | integer | N | 配置json字符串(非常重要) |
示例
{
"code": "0",
"message": "请求成功",
"success": true,
"data": [{
"id": 205,
"themeName": "数字名片模板2",
"configJson": "{\"videoBitRate\":\"3.5M\",\"sounds\":[],\"corpId\":1000000,\"width\":1920,\"fps\":25,\"scenes\":[{\"duration\":0,\"nodes\":[{\"effects\":[],\"file\":\"\",\"name\":\"DYIMAGE.png\",\"lock\":false,\"style\":{\"rotation\":0,\"x\":151,\"width\":658,\"y\":215,\"height\":658},\"id\":\"sprite-09e41ec6-0fe6-4005-9dd2-a7855d5be42d\",\"type\":\"image\",\"url\":\"/video-server/png/1527136023188426754.png\"},{\"effects\":[],\"file\":\"\",\"name\":\"编组 15@2x.png\",\"lock\":true,\"style\":{\"rotation\":0,\"x\":-16,\"width\":1949,\"y\":-1,\"height\":1097},\"id\":\"sprite-e86adfc7-1588-419f-a142-56469b0501f1\",\"type\":\"image\",\"url\":\"/video-server/png/1527135853793071105.png\"},{\"effects\":[],\"file\":\"\",\"name\":\"#3~3~logo.png\",\"lock\":false,\"style\":{\"rotation\":0,\"x\":1521,\"width\":353,\"y\":47,\"height\":87},\"id\":\"sprite-61710554-06fd-4644-9f72-7eff2f4ce610\",\"type\":\"image\",\"url\":\"/video-server/png/1527136563779686402.png\"},{\"effects\":[],\"lock\":false,\"style\":{\"color\":\"#000000\",\"textAlign\":\"center\",\"rotation\":0,\"letterSpacing\":0,\"fontStyle\":\"normal\",\"fontFamily\":\"SourceHanSerifCN-Regular\",\"x\":993,\"width\":909,\"y\":155,\"fontSize\":60,\"lineHeight\":1.5,\"fontWeight\":\"normal\",\"height\":108},\"id\":\"sprite-c13da636-04c2-4e3a-80be-f97daefc79fc\",\"type\":\"richText\",\"content\":\"<div style=\\\"font-family: SourceHanSerifCN-Bold; font-size: 72px; text-align: left; line-height: 1.5; letter-spacing: 0px; font-style: normal; font-weight: normal; color: rgb(255, 255, 255);\\\"><div>#1~2~姓名</div></div>\"},{\"effects\":[],\"lock\":false,\"style\":{\"color\":\"#000000\",\"textAlign\":\"center\",\"rotation\":0,\"letterSpacing\":0,\"fontStyle\":\"normal\",\"fontFamily\":\"SourceHanSerifCN-Regular\",\"x\":993,\"width\":919,\"y\":269,\"fontSize\":60,\"lineHeight\":1.5,\"fontWeight\":\"normal\",\"height\":66},\"id\":\"sprite-2ba536e0-37ca-433d-8502-ba545b6542bd\",\"type\":\"richText\",\"content\":\"<div style=\\\"font-family: SourceHanSerifCN-Medium; font-size: 44px; text-align: left; line-height: 1.5; letter-spacing: 0px; font-style: normal; font-weight: normal; color: rgb(255, 255, 255);\\\"><div>#3~3~职位</div></div>\"},{\"effects\":[],\"lock\":false,\"style\":{\"color\":\"#000000\",\"textAlign\":\"center\",\"rotation\":0,\"letterSpacing\":0,\"fontStyle\":\"normal\",\"fontFamily\":\"SourceHanSerifCN-Regular\",\"x\":993,\"width\":921,\"y\":381,\"fontSize\":60,\"lineHeight\":1.5,\"fontWeight\":\"normal\",\"height\":72},\"id\":\"sprite-74e6beee-dcae-4615-b7ac-86e4deee1d79\",\"type\":\"richText\",\"content\":\"<div style=\\\"font-family: SourceHanSerifCN-Bold; font-size: 48px; text-align: left; line-height: 1.5; letter-spacing: 0px; font-style: normal; font-weight: normal; color: rgb(255, 132, 0);\\\"><div>#3~1~公司</div></div>\"},{\"effects\":[],\"lock\":false,\"style\":{\"color\":\"#000000\",\"textAlign\":\"center\",\"rotation\":0,\"letterSpacing\":0,\"fontStyle\":\"normal\",\"fontFamily\":\"SourceHanSerifCN-Regular\",\"x\":993,\"width\":500,\"y\":473,\"fontSize\":60,\"lineHeight\":1.5,\"fontWeight\":\"normal\",\"height\":66},\"id\":\"sprite-2bac5252-ec56-4ce6-8da3-538e8b9158d2\",\"type\":\"richText\",\"content\":\"<div style=\\\"font-family: SourceHanSerifCN-Medium; font-size: 44px; text-align: left; line-height: 1.5; letter-spacing: 0px; font-style: normal; font-weight: normal; color: rgb(255, 255, 255);\\\">#3~2~地址</div>\"},{\"effects\":[],\"lock\":false,\"style\":{\"color\":\"#000000\",\"textAlign\":\"center\",\"rotation\":0,\"letterSpacing\":0,\"fontStyle\":\"normal\",\"fontFamily\":\"SourceHanSerifCN-Regular\",\"x\":993,\"width\":155,\"y\":610,\"fontSize\":60,\"lineHeight\":1.5,\"fontWeight\":\"normal\",\"height\":66},\"id\":\"sprite-1b86b87a-8839-4495-9c44-5c6603fcb959\",\"type\":\"richText\",\"content\":\"<div style=\\\"font-family: SourceHanSerifCN-Medium; font-size: 44px; text-align: left; line-height: 1.5; letter-spacing: 0px; font-style: normal; font-weight: normal; color: rgb(255, 255, 255);\\\"> 手机:</div>\"},{\"effects\":[],\"lock\":false,\"style\":{\"color\":\"#000000\",\"textAlign\":\"center\",\"rotation\":0,\"letterSpacing\":0,\"fontStyle\":\"normal\",\"fontFamily\":\"SourceHanSerifCN-Regular\",\"x\":1121,\"width\":500,\"y\":610,\"fontSize\":60,\"lineHeight\":1.5,\"fontWeight\":\"normal\",\"height\":66},\"id\":\"sprite-cb3e62e0-8b32-4234-9e86-69225eb4af08\",\"type\":\"richText\",\"content\":\"<div style=\\\"font-family: SourceHanSerifCN-Medium; font-size: 44px; text-align: left; line-height: 1.5; letter-spacing: 0px; font-style: normal; font-weight: normal; color: rgb(255, 255, 255);\\\"><div>#2~1~手机</div></div>\"},{\"effects\":[],\"lock\":false,\"style\":{\"color\":\"#000000\",\"textAlign\":\"center\",\"rotation\":0,\"letterSpacing\":0,\"fontStyle\":\"normal\",\"fontFamily\":\"SourceHanSerifCN-Regular\",\"x\":993,\"width\":155,\"y\":690,\"fontSize\":60,\"lineHeight\":1.5,\"fontWeight\":\"normal\",\"height\":66},\"id\":\"sprite-fe19c57c-ec60-4c57-8c79-ac8fa0cd54aa\",\"type\":\"richText\",\"content\":\"<div style=\\\"font-family: SourceHanSerifCN-Medium; font-size: 44px; text-align: left; line-height: 1.5; letter-spacing: 0px; font-style: normal; font-weight: normal; color: rgb(255, 255, 255);\\\"><div> 邮箱:</div></div>\"},{\"effects\":[],\"lock\":false,\"style\":{\"color\":\"#000000\",\"textAlign\":\"center\",\"rotation\":0,\"letterSpacing\":0,\"fontStyle\":\"normal\",\"fontFamily\":\"SourceHanSerifCN-Regular\",\"x\":1121,\"width\":500,\"y\":685,\"fontSize\":60,\"lineHeight\":1.5,\"fontWeight\":\"normal\",\"height\":66},\"id\":\"sprite-ef88679b-207c-4506-8ccc-d5db97fdcf5b\",\"type\":\"richText\",\"content\":\"<div style=\\\"font-family: SourceHanSerifCN-Medium; font-size: 44px; text-align: left; line-height: 1.5; letter-spacing: 0px; font-style: normal; font-weight: normal; color: rgb(255, 255, 255);\\\"><div>#2~1~邮箱</div></div>\"},{\"effects\":[],\"lock\":false,\"style\":{\"color\":\"#000000\",\"textAlign\":\"center\",\"rotation\":0,\"letterSpacing\":0,\"fontStyle\":\"normal\",\"fontFamily\":\"SourceHanSerifCN-Regular\",\"x\":993,\"width\":155,\"y\":770,\"fontSize\":60,\"lineHeight\":1.5,\"fontWeight\":\"normal\",\"height\":66},\"id\":\"sprite-38ec4ec9-8a76-47ee-9b54-c757f9929df5\",\"type\":\"richText\",\"content\":\"<div style=\\\"font-family: SourceHanSerifCN-Medium; font-size: 44px; text-align: left; line-height: 1.5; letter-spacing: 0px; font-style: normal; font-weight: normal; color: rgb(255, 255, 255);\\\"><div> 官网:</div></div>\"},{\"effects\":[],\"lock\":false,\"style\":{\"color\":\"#000000\",\"textAlign\":\"center\",\"rotation\":0,\"letterSpacing\":0,\"fontStyle\":\"normal\",\"fontFamily\":\"SourceHanSerifCN-Regular\",\"x\":1121,\"width\":500,\"y\":770,\"fontSize\":60,\"lineHeight\":1.5,\"fontWeight\":\"normal\",\"height\":66},\"id\":\"sprite-424dea80-f2d7-42f5-bfcf-01154ffc2d23\",\"type\":\"richText\",\"content\":\"<div style=\\\"font-family: SourceHanSerifCN-Medium; font-size: 44px; text-align: left; line-height: 1.5; letter-spacing: 0px; font-style: normal; font-weight: normal; color: rgb(255, 255, 255);\\\"><div>#2~1~官网</div></div>\"},{\"effects\":[],\"file\":\"\",\"name\":\"Frame 641 (Background)备份.png\",\"lock\":false,\"style\":{\"rotation\":0,\"x\":171,\"width\":1300,\"y\":942,\"height\":89},\"id\":\"sprite-9a40c315-cda3-41ad-9f38-fc7c897470c9\",\"type\":\"image\",\"url\":\"/video-server/png/1527161968200863745.png\"},{\"effects\":[],\"lock\":false,\"style\":{\"color\":\"#000000\",\"textAlign\":\"center\",\"rotation\":0,\"letterSpacing\":0,\"fontStyle\":\"normal\",\"fontFamily\":\"SourceHanSerifCN-Regular\",\"x\":179,\"width\":1276,\"y\":958,\"fontSize\":60,\"lineHeight\":1.5,\"fontWeight\":\"normal\",\"height\":54},\"id\":\"sprite-4c3c647f-f5fa-4c6b-9e58-52e287f320e7\",\"type\":\"richText\",\"content\":\"<div style=\\\"font-family: SourceHanSerifCN-Medium; font-size: 36px; text-align: left; line-height: 1.5; letter-spacing: 12px; font-style: normal; font-weight: normal; color: rgb(255, 255, 255);\\\"><div>#3~4~事业签名</div></div>\"}],\"limbAvailable\":false,\"data\":{\"ttsAudio\":\"\",\"wait\":0,\"proportion\":\"\",\"localAudio\":\"\",\"sceneUrl\":\"\",\"audioType\":1,\"global\":true,\"version\":0,\"content\":\"\",\"speed\":0,\"localUrl\":\"\",\"duration\":\"\",\"volume\":0,\"emptyAudio\":false,\"subTitle\":true,\"engine\":7,\"sceneCode\":\"\",\"sceneType\":0,\"asrEnable\":false,\"speaker\":\"yujie_meet\",\"pitch\":0},\"background\":{\"objectFit\":\"cover\",\"color\":\"\",\"type\":\"\",\"url\":\"\"},\"action\":[],\"hasDyImage\":false,\"express\":[],\"id\":\"scene-54b737a6-5593-40c6-b10d-96057086c987\"}],\"hasDyImage\":false,\"templateId\":\"\",\"hasTransition\":false,\"userId\":62,\"height\":1080}"
}
]
}
/openapi/video/v2/create/digitalCard?access_token=55d1bc37-f960-4a9d-8c7d-5dc8c991c245
POST(Content-Type: application/json)
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| templateId | integer | Y | 3.8 接口查询出来的数字名片id |
| configJson | string | Y | 3.8 接口查询出来的数字名片configJson( #前缀的字符串,要修改的字符串) |
| audioUrl | string | Y | 声音url |
| headImg | string | Y | 头像图片url |
| sceneId | string | Y | 场景ID,从模特列表接口获取 |
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| data | json | N | 返回的jsonobject |
| videoId | string | N | 视频作品ID |
示例
{
"code": "0",
"message": "请求成功",
"success": true,
"data": {
"videoId": 2598397
}
}
用户在合成请求中设置的回调接口地址
POST(Content-Type: application/json)
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| taskType | string | Y | 值为video-synthesis表示视频合成任务回调 |
| data | json | N | jsonobject |
| id | integer | N | 提交的任务ID |
| videoName | string | N | 视频名称 |
| result | string | Y | success, fail |
| failReason | string | N | 失败原因 |
| videoFormat | string | N | 视频格式 |
| videoUrl | string | N | 合成视频的URL |
| horizontal | integer | N | 水平分辨率 |
| vertical | integer | N | 垂直分辨率 |
| duration | string | N | 时长(单位:秒,如11.32) |
| videoSize | integer | N | 文件尺寸(单位MB,只精确到MB) |
| coverUrl | string | N | 封面图地址 |
| userId | integer | N | 用户ID |
| createTime | long | N | 创建时间 |
| updateTime | long | N | 更新时间 |
| maskUrl | string | N | mask压缩文件地址, (仅当启用mask时有值) |
示例
{
"taskType": "video-synthesis",
"data": {
"id": 2598332,
"videoName": null,
"videoFormat": "mp4",
"horizontal": 1080,
"vertical": 1920,
"proportion": "9:16",
"duration": null,
"videoSize": null,
"coverUrl": null,
"videoUrl": "http://127.0.0.1/nfs/vpp/vpp/824536484852932608.mp4",
"maskUrl": "http://127.0.0.1/nfs/vpp/vpp/824536484852932608.zip",
"srtUrl": "http://127.0.0.1/nfs/vpp/vpp/824536484852932608.srt",
"result": "success",
"userId": 1337,
"createTime": 1676386065000,
"updateTime": 1676386065000
}
}
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
示例
{
"code": "0",
"message": "请求成功",
"success": true
}
/openapi/video/v2/pageList?access_token=55d1bc37-f960-4a9d-8c7d-5dc8c991c245
POST(Content-Type: application/json)
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| page | integer | Y | 请求页数 |
| size | integer | Y | 每页 |
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| msg | string | Y | 成功/错误的描述信息 |
| data | json | N | 返回的jsonobject |
| pageSize | integer | N | 页尺寸 |
| pageNo | integer | N | 页号 |
| totalRecord | integer | N | 总记录数 |
| records | list | N | 记录列表 |
| id | integer | N | 提交的任务ID |
| videoName | string | N | 视频名称 |
| videoFormat | string | N | 视频格式 |
| synthesisStatus | integer | N | -1. 编辑中 1. 排队中 2. 合成中 3:合成成功 4:合成失败 5. 归档 6. 任务取消 7. 任务失败 |
| videoUrl | string | N | 合成视频的URL |
| srtUrl | string | N | 字幕文件URL, ‘srtFlag’为1时才有值 |
| horizontal | integer | N | 水平分辨率 |
| vertical | integer | N | 垂直分辨率 |
| duration | integer | N | 时长 |
| videoSize | integer | N | 文件尺寸 |
| coverUrl | string | N | 封面图地址 |
| userId | integer | N | 用户ID |
| createTime | string | N | 创建时间 |
| updateTime | string | N | 更新时间 |
| downloadEndTime | string | N | 视频下载截止时间 |
示例
{
"code": "0",
"message": "请求成功",
"success": true,
"data": {
"pageSize": 10,
"pageNo": 1,
"totalRecord": 153,
"records": [{
"id": 2598398,
"videoName": null,
"videoFormat": "mp4",
"horizontal": 1080,
"vertical": 1920,
"proportion": "9:16",
"duration": "96",
"videoSize": "25MB",
"coverUrl": null,
"videoUrl": "http://172.16.17.21:8000/nfs/vpp/vpp/825562972557549568.mp4",
"srtUrl": "http://172.16.17.21:8000/nfs/vpp/vpp/825562972557549568.srt",
"synthesisStatus": 3,
"userId": 1,
"createTime": "2022-03-28 11:07:46",
"updateTime": "2022-03-28 11:07:48",
"downloadEndTime": "2025-11-16 00:00:00"
}
]
}
}
/openapi/video/v2/get/{id}?access_token=ae4dad61-0dc5-47ad-be20-c51245db2769
GET
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| id | integer | Y | 提交的合成任务ID(路径参数) |
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| data | string | Y | 返回的jsonobject |
| id | string | Y | ID |
| videoName | string | Y | 视频名称 |
| videoFormat | string | Y | 视频格式:mp4、webm |
| horizontal | integer | Y | 水平分辨率 |
| vertical | integer | Y | 垂直分辨率 |
| duration | string | Y | 时长(单位:秒) |
| videoSize | string | Y | 视频尺寸(MB,不是精确值) |
| coverUrl | string | Y | 封面地址 |
| videoUrl | string | Y | 合成结果视频地址 |
| srtUrl | string | Y | srt文件地址 |
| synthesisStatus | integer | Y | 合成状态:-1. 编辑中 1. 排队中 2. 合成中 3:合成成功 4:合成失败 5. 归档 6. 任务取消 7. 任务失败 |
| createTime | string | Y | 创建时间 |
| updateTime | string | Y | 更新时间 |
| downloadEndTime | string | Y | 视频下载截止时间 |
示例
{
"code": "0",
"message": "请求成功",
"success": true,
"data": {
"id": 2629876,
"videoName": "测试换音频",
"videoFormat": "mp4",
"horizontal": 1080,
"vertical": 1920,
"duration": "12.69",
"videoSize": "7MB",
"coverUrl": "http://127.0.0.1/940777666963972096/1675905311982.jpg",
"videoUrl": "http://127.0.0.1/940777666963972096.mp4",
"srtUrl": null,
"synthesisStatus": 3,
"createTime": "2023-02-09 09:13:39",
"updateTime": "2023-02-09 09:14:29"
}
}
/openapi/speaker/v2/ttsDemo?access_token=ae4dad61-0dc5-47ad-be20-c51245db2769
(注:试听接口不扣费,每天限制调用50次,文本长度不超过100个字符)
POST(Content-Type: application/json)
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| speakerId | string | Y | 发言人ID不能为空 |
| volume | integer | N | 音量,取值区间:[0-1] |
| speechRate | integer | N | 语速,取值区间:[0-1] |
| content | string | Y | 文本内容不能为空,文本支持以下标签: 插入停顿(单位:秒):<delay value="0.5"/> 自定义读音:<grammar type="custom" value="十万">100000</grammar> 多音字标注:<grammar type="pinyin" value="hang2">行</grammar> |
| srtFlag | string | N | 否需要字幕文件 0-不需要 1-需要 |
| async | boolean | N | 是否异步处理,true-异步返回(推荐使用异步接口,同步调用后期可能会废弃) |
| callbackUrl | string | N | 异步处理回调地址,若无回调地址,也可通过tts查询接口查询 |
| sampleRate | string | N | 采样率:来自3.5接口的ttsExtendJson |
| morse | string | N | 是否给音频产物末尾加摩斯码: 0-不加 1-加(默认不加) |
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| data | json | Y | 返回的jsonobject |
| id | integer | Y | 唯一标识 |
| ttsUrl | integer | N | 音频地址 |
| srtUrl | integer | N | srt文件地址('srtFlag'=1时返回) |
| duration | list | N | 音频时长(单位:毫秒) |
| status | integer | N | 状态 0-准备中 1-合成中 2-合成成功 3-合成失败 |
返回报文示例
{
"code": "0",
"data": {
"id": 1,
"duration": 0,
"srtUrl": "",
"ttsUrl": ""
},
"message": "",
"success": true
}
异步回调报文示例
{
"taskType": "tts-synthesis",
"data": {
"duration": 0, //音频时长
"srtUrl": "", //字幕文件地址
"ttsUrl": "", //音频地址
"id": 1, //唯一标识
"status": 2 //状态 0-准备中 1-合成中 2-合成成功 3-合成失败
}
}
/openapi/speaker/v2/tts/pageList?access_token=ae4dad61-0dc5-47ad-be20-c51245db2769
POST(Content-Type: application/json)
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| page | integer | Y | 请求页数 |
| size | integer | Y | 每页 |
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| data | json | N | 返回的jsonobject |
| pageSize | integer | N | 页尺寸 |
| pageNo | integer | N | 页号 |
| totalRecord | integer | N | 总记录数 |
| records | list | N | 记录列表 |
| id | integer | Y | 唯一标识 |
| ttsUrl | integer | N | 音频地址 |
| srtUrl | integer | N | srt文件地址('srtFlag'=1时返回) |
| duration | list | N | 音频时长(单位:毫秒) |
| status | integer | N | 状态 0-准备中 1-合成中 2-合成成功 3-合成失败 |
| downloadEndTime | string | N | 音频下载截止时间 |
返回报文示例
{
"code": "0",
"message": "请求成功",
"success": true,
"data": {
"pageSize": 100,
"pageNo": 1,
"totalRecord": 2,
"records": [
{
"id": 20,
"ttsUrl": "http://127.0.0.1/1105667226071080960.wav",
"srtUrl": "http://127.0.0.1/1105667226071080960.srt",
"duration": 1539,
"status": 2,
"downloadEndTime": "2025-11-16 00:00:00"
},
{
"id": 19,
"ttsUrl": "http://127.0.0.1/1105667111205871616.wav",
"srtUrl": "http://127.0.0.1/1105667111205871616.srt",
"duration": 601,
"status": 2,
"downloadEndTime": "2025-11-16 00:00:00"
}
]
}
}
/openapi/speaker/v2/tts/{id}?access_token=ae4dad61-0dc5-47ad-be20-c51245db2769
GET
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| id | integer | Y | TTS提交时返回的ID(路径参数) |
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| data | json | Y | 返回的jsonobject |
| id | integer | Y | 唯一标识 |
| ttsUrl | integer | N | 音频地址 |
| srtUrl | integer | N | srt文件地址('srtFlag'=1时返回) |
| duration | list | N | 音频时长(单位:毫秒) |
| status | integer | N | 状态 0-准备中 1-合成中 2-合成成功 3-合成失败 |
| downloadEndTime | string | N | 音频下载截止时间 |
返回报文示例
{
"code": "0",
"message": "请求成功",
"success": true,
"data": {
"id": 17,
"ttsUrl": "http://127.0.0.1/1104702054431072256.wav",
"srtUrl": "http://127.0.0.1/1104702054431072256.srt",
"duration": 2012,
"status": 2,
"downloadEndTime": "2025-11-16 00:00:00"
}
}
/openapi/material/fileUpload?access_token=ae4dad61-0dc5-47ad-be20-c51245db2769
POST
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| rootId | integer | Y | 素材类型 ,0:背景(图片或者视频),1:图片素材,4:视频素材 |
| file | form-data/file | Y | 文件 |

| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| success | boolean | Y | 成功标识 |
| data | string | Y | 返回的数据 |
示例
{
"code": "0",
"message": "请求成功",
"success": true,
"data": 1596
}
/openapi/material/search?access_token=ae4dad61-0dc5-47ad-be20-c51245db2769
POST(Content-Type: application/json)
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| rootId | integer | Y | 素材类型 ,0:背景(图片或者视频),1:图片素材,4:视频素材 |
| page | integer | N | 页号默认1 |
| size | integer | N | 每页大小默认10 |
| asc | boolean | N | 是否正序, true 正序 false 倒序(默认) |
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| success | boolean | Y | 成功标识 |
| data | string | Y | 返回的jsonobject |
| current | integer | N | 当前页 |
| recordsSize | integer | N | 分页大小 |
| startIndex | integer | Y | 开始页 |
| records | integer | Y | 数据(具体见示例,每种素材格式略有不同) |
| prePage | integer | Y | 上一页 |
| pageNo | string | Y | 当前页 |
| totalPage | string | N | 总页数 |
| nextPage | string | N | 下一页 |
| pageSize | string | Y | 分页大小 |
| totalRecord | string | Y | 总条数 |
示例
{
"code": "0",
"message": "请求成功",
"success": true,
"data": {
"current": 1,
"recordsSize": 5,
"startIndex": 1,
"records": [
{
"proportion": "9:16",
"bgFormat": "png",
"groupId": 20,
"updateTime": 1668163274000,
"backgroundName": "zuoyi.png",
"delFlag": 0,
"userId": null,
"coverUrl": "/video-server/png/1591003723920396289.png",
"backgroundCode": "1591003727513522176",
"createTime": 1668159823000,
"zipCoverUrl": "/video-server/png/1591003723920396289_zip.jpg",
"id": 1485,
"backgroundType": 0
}
],
"prePage": 1,
"pageNo": 1,
"totalPage": 24,
"nextPage": 2,
"pageSize": 5,
"totalRecord": 118
}
}
/openapi/material/getTemporaryUploadUrl?access_token=ae4dad61-0dc5-47ad-be20-c51245db2769
POST(Content-Type: application/json)
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| fileType | string | Y | 文件类型,如:mp4,mov,png,jpeg,jpg,gif,wav,mp3 |
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| success | boolean | Y | 成功标识 |
| data | json | N | 返回的jsonobject |
| temporaryUrl | string | N | 临时上传地址(请求到此地址后,调用方使用PUT方法将文件提交到此路径,其中header中Content-Type参数值参考如下: mp4文件用'video/mp4' jpeg文件用'image/jpeg' png文件用'image/png' wav文件用'audio/x-wav' ) |
| objectUrl | string | N | 真实地址(待调用方上传成功后,这个即是真实地址) |
示例
{
"code": "0",
"message": "请求成功",
"success": true,
"data": {
"temporaryUrl": "http://127.0.0.1/openapi/2024/419.mp4?AccessKeyId=LPDQ&Expires=173&Signature=Lbw",
"objectUrl": "https://127.0.0.1/openapi/2024/419.mp4"
}
}
/openapi/translate/create/video?access_token=55d1bc37-f960-4a9d-8c7d-5dc8c991c245
POST(Content-Type: application/json)
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| sourceLanguage | string | Y | 源语言(当前支持zh:中文, en:英文, ja:日语, ko:韩语, de:德语, fr:法语, it:意大利语, es:西班牙语,ar:阿拉伯语 hi:印地语, pt:葡萄牙语, nl:荷兰语, tr:土耳其语, pl:波兰语, sv:瑞典语, ms:马来语, ro:罗马尼亚语, uk:乌克兰语, el:希腊语, cs:捷克语, da:丹麦语, bg:保加利亚语, hr:克罗地亚语, ta:泰米尔语) |
| targetLanguage | string | Y | 源语言(当前支持zh:中文, en:英文, ja:日语, ko:韩语, de:德语, fr:法语, it:意大利语, es:西班牙语,ar:阿拉伯语 hi:印地语, pt:葡萄牙语, nl:荷兰语, tr:土耳其语, pl:波兰语, sv:瑞典语, ms:马来语, ro:罗马尼亚语, uk:乌克兰语, el:希腊语, cs:捷克语, da:丹麦语, bg:保加利亚语, hr:克罗地亚语, ta:泰米尔语) |
| url | string | Y | 待检测文件地址,公网可访问。 视频限制类型:mp4, mov。 视频限时长:大于30秒,小于5分钟。视频大小限制:不大于500MB。 |
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| success | boolean | Y | 成功标识 |
| data | json | N | 返回的jsonobject |
| videoId | string | N | 视频作品ID |
/openapi/translate/get/{id}?access_token=ae4dad61-0dc5-47ad-be20c51245db2769
GET
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| id | integer | Y | 提交的合成任务ID(路径参数) |
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| success | boolean | Y | 成功标识 |
| data | string | Y | 返回的jsonobject |
| id | string | N | ID |
| videoName | string | N | 视频名称 |
| scanStatus | string | Y | 内容扫描结果状态:0:初始化 ; 1:失败 ; 2成功 |
| scanResult | string | Y | 内容扫描结果描述 |
| faceStatus | string | Y | 人脸扫描结果状态:0:初始化 ; 1:失败 ; 2成功 |
| faceResult | string | Y | 人脸扫描结果描述 |
| fileStatus | string | N | 文件扫描结果状态:0:初始化 ; 1:失败 ; 2成功 |
| fileResult | string | N | 文件扫描结果描述 |
| video | json | Y | 视频对象 |
| videoName | string | Y | 视频名称 |
| videoFormat | string | Y | 视频格式:mp4 |
| horizontal | integer | Y | 水平分辨率 |
| vertical | integer | Y | 垂直分辨率 |
| duration | string | Y | 时长(单位:秒) |
| videoSize | string | Y | 视频尺寸(MB,不是精确值) |
| coverUrl | string | Y | 封面地址 |
| videoUrl | string | Y | 合成结果视频地址 |
| srtUrl | string | Y | srt文件地址 |
| synthesisStatus | integer | Y | 合成状态:-1. 编辑中 1. 排队中 2. 合成中 3:合成成功4:合成失败 6. 任务取消 7. 任务失败 9.合成时长不足 |
| createTime | string | Y | 创建时间 |
| updateTime | string | Y | 更新时间 |
示例
{
"code": "0",
"message": "请求成功",
"success": true,
"data": {
"videoId": 2658768,
"scanId": 1288,
"faceId": "1739948666831126528",
"scanStatus": 2,
"scanResult": "成功",
"faceStatus": 2,
"faceResult": "音频无需人脸检测",
"fileStatus": 2,
"fileResult": "成功",
"video": {
"id": 2629876,
"videoName": "测试换音",
"videoFormat": "mp4",
"horizontal": 1080,
"vertical": 1920,
"duration": "12.69",
"videoSize": "7MB",
"coverUrl": "http://127.0.0.1/940777666963972096/1675905311982.jpg",
"videoUrl": "http://127.0.0.1/940777666963972096.mp4",
"srtUrl": null,
"synthesisStatus": 3,
"createTime": "2023-02-09 09:13:39"
}
}
}
/openapi/user/v2/get?access_token=55d1bc37-f960-4a9d-8c7d-5dc8c991c245
GET
无
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| data | string | N | 返回的jsonobject |
| user | json | N | 用户信息 |
| id | string | N | 用户ID |
| username | string | N | 用户名 |
| nickname | string | N | 昵称 |
| corpId | string | N | 企业ID |
| corpName | string | N | 企业名称 |
| primaryOrgId | string | N | 一级组织ID |
| primaryOrgName | string | N | 一级组织名称 |
| secondaryOrgId | string | N | 二级组织ID |
| secondaryOrgName | string | N | 二级组织名称 |
| roleId | string | N | 角色ID |
| roleName | string | N | 角色名称 |
| mobile | string | N | 手机号 |
| string | N | 邮箱地址 | |
| account | json | N | 账户信息 |
| balance | float | N | 账户钻石余额 |
| duration | integer | N | 剩余时长(秒) |
| durationCost | integer | N | 消耗市场(秒) |
| giftBalance | float | N | 赠送钻石余额 |
| privateDuration | integer | N | 模特私有市场汇总(秒) |
| totalCost | float | N | 总消费额度 |
| universalDuration | integer | N | 通用时长汇总(秒) |
| ttsDuration | integer | N | 音频合成剩余时长(单位:秒) |
| trainTime | integer | N | 剩余专业训练次数 |
| totalAmount | integer | N | 合同总金额 |
| aiPanting | integer | N | Ai绘画(单位:次) |
| aiCartoon | integer | N | Ai漫画(单位:次) |
| e0LevelAmount | integer | N | E级形象克隆剩余次数 |
| s0LevelAmount | integer | N | S级形象克隆剩余次数 |
| s1LevelAmount | integer | N | S级-超清版形象克隆剩余次数 |
示例:
{
"code": "0",
"message": "请求成功",
"success": true,
"data": {
"user": {
"id": 1,
"userId": null,
"username": "admin",
"email": null,
"nickname": "硅基超级管理员",
"corpId": 1000000,
"corpName": null,
"mobile": "admin",
"primaryOrgId": null,
"primaryOrgName": null,
"secondaryOrgId": null,
"secondaryOrgName": null
},
"account": {
"balance": 1,
"duration": 0,
"durationCost": 0,
"giftBalance": 1,
"privateDuration": 0,
"totalCost": 1,
"universalDuration": 0,
"ttsDuration": 0,
"trainTime": 3,
"totalAmount": null,
"aiPanting": 95,
"aiCartoon": 0
}
}
}
/admin/user/v2/pageList?access_token=55d1bc37-f960-4a9d-8c7d-5dc8c991c245
POST(Content-Type: application/json)
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| page | integer | Y | 页码 |
| size | integer | Y | 每页大小 |
示例
{
"page": 0,
"size": 0
}
| 字段 | 类型 | 必须 | 备注 |
|---|---|---|---|
| code | string | Y | 返回的状态码,为0表示成功 |
| message | string | Y | 成功/错误的描述信息 |
| data | string | Y | 返回的jsonobject |
| pageSize | integer | N | 页尺寸 |
| pageNo | integer | N | 页号 |
| totalRecord | integer | N | 总记录数 |
| records | list | N | 记录列表 |
| id | string | Y | 用户ID |
| username | string | Y | 用户名 |
| nickname | string | Y | 昵称 |
| corpId | string | Y | 企业ID |
| corpName | string | Y | 企业名称 |
| primaryOrgId | string | Y | 一级组织ID |
| primaryOrgName | string | Y | 一级组织名称 |
| secondaryOrgId | string | Y | 二级组织ID |
| secondaryOrgName | string | Y | 二级组织名称 |
| roleId | string | Y | 角色ID |
| roleName | string | Y | 角色名称 |
| mobile | string | Y | 手机号 |
| string | Y | 邮箱地址 |
示例:
{
"code": "0",
"message": "请求成功",
"success": true,
"data": {
"pageSize": 10,
"pageNo": 1,
"totalRecord": 8,
"records": [{
"id": 1,
"userId": null,
"username": "xxx",
"email": null,
"nickname": "xxx",
"corpId": 1010000,
"corpName": null,
"mobile": "11111111111",
"primaryOrgId": null,
"primaryOrgName": null,
"secondaryOrgId": null,
"secondaryOrgName": null
}
]
}
}
为保证模特不因随意设置的width和height导致拉伸变形等,接口会对用户提交的width和height做适配保证模特本身的宽高比不变。
(1)我们将依据相关法律法规,对人工智能生成合成内容添加相应标识(如在生成合成内容或者交互场景界面中添加的显式标识,采用技术措施在生成合成内容的文件元数据中添加的隐式标识)。您应确保您已仔细阅读并理解《人工智能生成合成内容标识办法》及其他相关的标识管理要求。您不得使用或尝试使用任何技术手段或其他方法删除、篡改、伪造、隐匿该等生成合成内容标识,不得为他人实施删除、篡改、伪造、隐匿该等生成合成内容标识行为提供工具或者服务,不得通过不正当标识手段损害他人合法权益。
(2)在特定场景下,为更好地满足您的使用需求,我们可能根据您的申请为您提供没有添加显式标识的人工智能生成合成内容。如您申请我们提供没有添加显式标识的生成合成内容的,您需承诺并保证:
①不利用该内容发布、传播任何虚假信息或从事其他任何违法违规活动;
②在发布或传播基于深度学习、虚拟现实、深度合成、生成式人工智能等新技术制作的非真实信息,或其他可能引发公众误解或混淆的信息内容时,应当以显著方式标识;
③在向第三方分享该内容或使用网络信息内容传播服务发布该内容或以其他方式使用该内容时,主动声明其为人工智能生成合成内容;
④遵守其他相关法律、法规、政策、办法的规定。
(3)如您违反上述约定,您应自行承担由此引起的所有责任,并赔偿由此给我们及第三方造成的全部损失(包括但不限于直接损失、间接损失、诉讼费、仲裁费、公证费、鉴定费、律师费、差旅费、保全费用、保全保险费、向任何第三方承担的责任、行政处罚、罚款等)。