# 视频合成 API接入文档

# 一、 接入准备

# 1.1 获取Accesskey

与我司商务合作后,我司会给客户硅语账号进行授权并且给出开放平台的AccessKey和SecretKey,客户可以通过AccessKey和SecretKey进行接入,请妥善保存。

# 1.2 开发以及联调测试

调用流程如下图

image.png

硅语平台生产地址:https://meta.guiji.cn (opens new window)

# 1.3 视频合成结果查询

开放平台支持查询和回调两种方式来监听视频合成的最终结果。

(1)、查询

当视频合成请求提交成功后,客户端可通过“3.11 查询合成作品列表”或“3.12 查询合成作品详情”进行对视频任务状态的更新。

(2)、回调

视频合成接口均提供了callbackUrl回调地址的属性,客户端只需要传公网可访问的回调地址即可,开放平台视频合成成功或失败后都会通过该地址通知客户端,回调参数请参考“3.10合成任务回调接口”设计。

# 二、 API对接方式

# 2.1 构造签名获取token

硅语平台获取签名的规则为:通过AccessKey、时间戳、加密生成得到的签名【MD5(AccessKey+时间戳+SecretKey)】,MD5结果取32位小写值,然后通过该签名请求硅语平台获取token,后续接口都需要加上该token进行请求,具体接口信息见第三部分API详细信息。

# 2.2 公共返回参数

硅语平台得到token和其他请求数据集合后,会先进行安全校验等验证,一系列验证通过后便会处理完成这次发送过来的数据请求,平台返回的参数格式如下:

字段 类型 是否必须 备注
code string Y 返回的状态码,为0表示成功
message string N 成功/错误的描述信息
data object N 返回的具体内容

# 2.3 公共错误码

错误码 描述
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 扣款失败

# 三、 API接口

# 3.1 获取token接口

# 接口地址

/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&timestamp=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
  }
}

# 3.2 定制模特列表查询

# 接口地址

/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": "温婉贤淑"
                    }
                ]
            }
        ]
    }
}

# 3.3 免费模特列表查询

# 接口地址

/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": "温婉贤淑"
                    }
                ]
            }
        ]
    }
}

# 3.4 模特详情查询(支持定制模特、免费模特查询)

# 接口地址

/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": []
  }
}

# 3.5 企业所有发音人列表

# 接口地址

/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
        }
    ]
}

# 3.6 创建视频合成任务-音频合成

# 接口地址

/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
    }
}

# 3.7 创建合成视频任务-文本合成

# 接口地址

/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
    }
}

# 3.8 查询可用数字名片模板

# 接口地址

/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}"
          }
         ]
}

# 3.9 数字名片合成接口

# 接口地址

/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,从模特列表接口获取

# 返回结果(具体合成结果通过3.12获得)

字段 类型 必须 备注
code string Y 返回的状态码,为0表示成功
message string Y 成功/错误的描述信息
data json N 返回的jsonobject
    videoId string N 视频作品ID

示例

{
    "code": "0",
    "message": "请求成功",
    "success": true,
    "data": {
        "videoId": 2598397
    }
}

# 3.10 合成任务回调接口

# 接口地址

用户在合成请求中设置的回调接口地址

# 请求方式

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
}

# 3.11 查询合成作品列表(合成结果仅保留15天,请及时下载)

# 接口地址

/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"
            }
        ]
    }
}

# 3.12 查询合成作品详情(合成结果仅保留15天,请及时下载)

# 接口地址

/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"
  }
}

# 3.13 声音试听接口

# 接口地址

/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-合成失败
  }
}

# 3.14 声音试听结果列表查询

# 接口地址

/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"
      }
    ]
  }
}

# 3.15 声音试听结果详情查询

# 接口地址

/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"
  }
}

# 3.16 素材上传接口(已废弃,请参考新接口3.18)

# 接口地址

/openapi/material/fileUpload?access_token=ae4dad61-0dc5-47ad-be20-c51245db2769

# 请求方式

POST

# 请求参数

字段 类型 必须 备注
rootId integer Y 素材类型 ,0:背景(图片或者视频),1:图片素材,4:视频素材
file form-data/file Y 文件

image

# 返回结果

字段 类型 必须 备注
code string Y 返回的状态码,为0表示成功
message string Y 成功/错误的描述信息
success boolean Y 成功标识
data string Y 返回的数据

示例

{
    "code": "0",
    "message": "请求成功",
    "success": true,
    "data": 1596
}

# 3.17 素材查询接口

# 接口地址

/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
    }
}

# 3.18 文件上传授权获取

# 接口地址

/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"
  }
}

# 3.19 视频翻译接口

# 接口地址

/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

# 3.20 视频翻译合成任务信息查询

# 接口地址

/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"
    }
  }
}

# 3.21 查询用户信息及权益

# 接口地址

/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 手机号
        email 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
        }
    }
}

# 3.22 查询企业下所有用户列表

# 接口地址

/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 手机号
    email 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
            }
        ]
    }
}

# 四、 其他

# 4.1 模特位置设置说明

为保证模特不因随意设置的width和height导致拉伸变形等,接口会对用户提交的width和height做适配保证模特本身的宽高比不变。

image.png

# 五、 相关协议

# 5.1 人工智能生成合成内容标识规范

(1)我们将依据相关法律法规,对人工智能生成合成内容添加相应标识(如在生成合成内容或者交互场景界面中添加的显式标识,采用技术措施在生成合成内容的文件元数据中添加的隐式标识)。您应确保您已仔细阅读并理解《人工智能生成合成内容标识办法》及其他相关的标识管理要求。您不得使用或尝试使用任何技术手段或其他方法删除、篡改、伪造、隐匿该等生成合成内容标识,不得为他人实施删除、篡改、伪造、隐匿该等生成合成内容标识行为提供工具或者服务,不得通过不正当标识手段损害他人合法权益。
(2)在特定场景下,为更好地满足您的使用需求,我们可能根据您的申请为您提供没有添加显式标识的人工智能生成合成内容。如您申请我们提供没有添加显式标识的生成合成内容的,您需承诺并保证:
①不利用该内容发布、传播任何虚假信息或从事其他任何违法违规活动;
②在发布或传播基于深度学习、虚拟现实、深度合成、生成式人工智能等新技术制作的非真实信息,或其他可能引发公众误解或混淆的信息内容时,应当以显著方式标识;
③在向第三方分享该内容或使用网络信息内容传播服务发布该内容或以其他方式使用该内容时,主动声明其为人工智能生成合成内容;
④遵守其他相关法律、法规、政策、办法的规定。
(3)如您违反上述约定,您应自行承担由此引起的所有责任,并赔偿由此给我们及第三方造成的全部损失(包括但不限于直接损失、间接损失、诉讼费、仲裁费、公证费、鉴定费、律师费、差旅费、保全费用、保全保险费、向任何第三方承担的责任、行政处罚、罚款等)。