数字人视频相关接口文档

统一接口入口

POST /api

通过统一入口调用所有API。

请求格式

{
    "apiname": "API名称",
    "params": {
        "参数名": "参数值"
    }
}

支持的API列表

apiname 说明 请求方法
专业数字人克隆 基于视频训练高精度数字人模型 POST
极速数字人克隆 快速训练数字人模型 POST
声音克隆 训练声音模型 POST
图生数字人克隆 基于图片生成数字人 POST
数字人口播视频 生成数字人口播视频 POST
数字人口播混剪视频 生成数字人混剪视频 POST
素材混剪视频 素材混剪生成视频 POST
剪辑模板列表 获取剪辑模板列表 POST
封面模板列表 获取封面模板列表 POST
文本转语音 文本转换为语音 POST
查询任务详情 查询任务状态和结果 POST

统一响应格式

成功响应:

{
    "code": 0,
    "message": "success",
    "data": { ... }
}

失败响应:

{
    "code": -1,
    "message": "错误描述",
    "data": {}
}

接口详细说明

1. 专业数字人克隆

apiname: 专业数字人克隆

基于视频训练高精度数字人模型。

请求参数

Body参数

参数名 类型 必填 说明
videoUrl string 是 训练视频URL
authVideoUrl string 是 授权视频URL
authText string 是 被授权对象,请使用品牌词,表示用户向该品牌授权,例如:鱼仙儿

请求示例

curl -X POST https://yxyx.xyaip.fun/api \
  -H "X-App-Id: " \
  -H "X-App-Secret: " \
  -H "Content-Type: application/json" \
  -d '{
    "apiname": "专业数字人克隆",
    "params": {
        "videoUrl": "https://golden-final.com/train.mp4",
        "authVideoUrl": "https://neat-armoire.net/auth.mp4",
        "authText": "鱼仙儿"
            }
  }'

返回值

{
    "code": 0,
    "message": "success",
    "data": {
        "taskId": "string",
        "requestId": "string"
    }
}

返回字段说明

字段名 类型 说明
code string 请求状态,Succeed 表示成功,其他为失败
data.taskId string 任务ID
message string 错误描述信息(失败时返回)
data.requestId string 本次请求唯一ID,用于排查问题

视频文件要求

训练视频:

授权视频:


2. 极速数字人克隆

apiname: 极速数字人克隆

快速训练数字人模型,训练速度更快。

请求参数

Body参数

参数名 类型 必填 说明
videoUrl string 是 训练视频URL
authVideoUrl string 是 授权视频URL
authText string 是 被授权对象,请使用品牌词,表示用户向该品牌授权,例如:鱼仙儿
callbackUrl string 否 用于接收训练结果回调通知地址

请求示例

curl -X POST https://yxyx.xyaip.fun/api \
  -H "X-App-Id: " \
  -H "X-App-Secret: " \
  -H "Content-Type: application/json" \
  -d '{
    "apiname": "极速数字人克隆",
    "params": {
        "videoUrl": "https://golden-final.com/train.mp4",
        "authVideoUrl": "https://neat-armoire.net/auth.mp4",
        "authText": "鱼仙儿",
        "callbackUrl": "https://exotic-reservation.org/hook"
    }
  }'

返回值

{
    "code": 0,
    "message": "success",
    "data": {
        "taskId": "string",
        "requestId": "string"
    }
}

返回字段说明

字段名 类型 说明
code string 请求状态,Succeed 表示成功,其他为失败
data.taskId string 任务ID
message string 错误描述信息(失败时返回)
data.requestId string 本次请求唯一ID,用于排查问题

视频文件要求

训练视频:

授权视频:


3. 声音克隆

apiname: 声音克隆

支持上传音频及进行音色复刻。

请求参数

Body参数

参数名 类型 必填 说明
audioUrl string 是 复刻音频URL
model enum 是 声音复刻模型,枚举值: v1, v2, v3, s1, s3
language string 是 复刻音频语种
demoText string 否 试听音频文案,需要与语种对应

请求示例

curl -X POST https://yxyx.xyaip.fun/api \
  -H "X-App-Id: " \
  -H "X-App-Secret: " \
  -H "Content-Type: application/json" \
  -d '{
    "apiname": "声音克隆",
    "params": {
        "audioUrl": "https://fragrant-makeover.info/reproduce.mp3",
        "model": "s3",
        "language": "zh-CN",
        "demoText": "你好,我是你的专属AI克隆声音",
    }
  }'

返回值

{
    "code": 0,
    "message": "success",
    "data": {
        "taskId": "string",
        "requestId": "string"
    }
}

返回字段说明

字段名 类型 说明
code string 请求状态,Succeed 表示成功,其他为失败
data.taskId string 任务ID
message string 错误描述信息(失败时返回)
data.requestId string 本次请求唯一ID,用于排查问题

音频文件要求


4. 图生数字人克隆

apiname: 图生数字人克隆

基于图片生成数字人模型。

请求参数

参数名 类型 必填 说明
imageUrl string 是 训练图片URL,必须以 http\:// 或 https\:// 开头
authText string 是 被授权对象(品牌词),非空字符串
authVideoUrl string 是 授权视频URL

请求示例

{
    "apiname": "图生数字人克隆",
    "params": {
        "imageUrl": "https://example.com/face.jpg",
        "authText": "鱼仙儿",
        "authVideoUrl": "https://neat-armoire.net/auth.mp4"
    }
}

返回值

{
    "code": 0,
    "message": "success",
    "data": {
        "taskId": "string",
        "requestId": "string"
    }
}

5. 数字人口播视频(无包装)

apiname: 数字人口播视频

生成数字人口播视频(无包装)。

生成方式说明

方式一:基于"文本内容 + 定制声音"生成视频

方式二:基于"音频文件"生成视频

请求参数

Body参数

参数名 类型 必填 说明
virtualmanId string 是 数字人ID
audioUrl string 否 音频URL,与text二选一
text string 否 文本,与audioUrl二选一,选择文本则speakerId为必须
speakerId string 否 音色ID,如果设置了text字段,音色ID必传
speakerExtra object 否 音色扩展参数
speedRatio number 否 语速,支持1位小数,范围0.5\~2,默认1

请求示例

curl -X POST https://yxyx.xyaip.fun/api \
  -H "X-App-Id: " \
  -H "X-App-Secret: " \
  -H "Content-Type: application/json" \
  -d '{
    "apiname": "数字人口播视频",
    "params": {
        "virtualmanId": "68aebb91b8619ed6f4168f40",
        "text": "你好,我是你的专属AI克隆声音",
        "speakerId": "68aebb91b8619ed6f4168f40",
        "speedRatio": 1,
    }
  }'

返回值

{
    "code": 0,
    "message": "success",
    "data": {
        "taskId": "string",
        "requestId": "string"
    }
}

返回字段说明

字段名 类型 说明
code string 请求状态,Succeed 表示成功,其他为失败
data.taskId string 任务ID
message string 错误描述信息(失败时返回)
data.requestId string 本次请求唯一ID,用于排查问题

6. 数字人口播混剪视频

apiname: 数字人口播混剪视频

生成数字人混剪视频。

请求参数

Body参数

参数名 类型 必填 说明
styleId string 是 样式ID
virtualmanId string 是 数字人ID
audioUrl string 否 音频URL,与content二选一
speakerId string 否 音色ID,使用content时必须
content string 否 文本内容,与audioUrl二选一
title string 否 视频标题
materials array 否 素材列表
materialSoundSwitch boolean 否 是否保留素材声音
introduceCard object 否 介绍卡片
packRules object 否 包装规则
processRules object 否 处理规则

materials参数说明

参数名 类型 必填 说明
type string 是 素材类型:image、video
fileUrl string 是 素材文件URL

introduceCard参数说明

参数名 类型 必填 说明
name string 否 姓名
description string 否 描述

packRules参数说明

参数名 类型 必填 说明
headerSwitch boolean 否 是否显示头部
materialSwitch boolean 否 是否使用素材
subtitleSwitch boolean 否 是否显示字幕
keywordSwitch boolean 否 是否显示关键词
backgroundMusic object 否 背景音乐配置

processRules参数说明

参数名 类型 必填 说明
watermarkShow boolean 否 是否显示水印
materialMatchWay string 否 素材匹配方式:fuzzyMatch(模糊匹配)preciseMatch(精确匹配,默认)
firstFrameCover object 否 第一封面配置
firstFrameCover.coverSwitch boolean 否 是否显示第一一封面
firstFrameCover.templateId string 否 模板ID
firstFrameCover.imageUrl string 否 图片URL

subtitle参数说明

参数名 类型 必填 说明
startMs int 是 开始时间(毫秒)
endMs int 是 结束时间(毫秒)
text string 是 字幕文本

请求示例

curl -X POST https://yxyx.xyaip.fun/api \
  -H "X-App-Id: " \
  -H "X-App-Secret: " \
  -H "Content-Type: application/json" \
  -d '{
    "apiname": "数字人口播混剪视频",
    "params": {
        "styleId": "68aebb91b8619ed6f4168f40",
        "virtualmanId": "68aebb91b8619ed6f4168f40",
        "audioUrl": "https://golden-final.com/a.mp3",
        "speakerId": "68aebb91b8619ed6f4168f40",
        "speakerExtra": {
            "speedRatio": 1,
            "language": "zh-CN",

        },
        "content": "AI行业是一个充满机遇的行业",
        "title": "聊AI行业",
        "materials": [
            {
                "type": "image",
                "fileUrl": "https://golden-final.com/a.jpg"
            },
            {
                "type": "video",
                "fileUrl": "https://golden-final.com/b.mp4"
            }
        ],
        "materialSoundSwitch": false,
        "introduceCard": {
            "name": "会长",
            "description": "医美领军人物"
        },
        "packRules": {
            "headerSwitch": true,
            "materialSwitch": true,
            "subtitleSwitch": true,
            "keywordSwitch": true,
            "backgroundMusic": {
                "audioSwitch": true,
                "audioUrl": "https://golden-final.com/bg.mp3",
                "volume": 1
            }
        },
        "processRules": {
            "watermarkShow": true,
            "materialMatchWay": "fuzzyMatch",
           "firstFrameCover":{
                "coverSwitch":true,
                "templateId":"69b3ce905a79730032b9ed6e",
                "imageUrl":"https://v.xyaip.fun/1776479830396_fnhvfgp3_1766718234389_ejqad1h2_啸岳_副本.jpg"

           }
        },
    }
  }'
````

#### 返回值

```json
{
    "code": 0,
    "message": "success",
    "data": {
        "taskId": "string",
        "requestId": "string"
    }
}

返回字段说明

字段名 类型 说明
code string 请求状态,Succeed 表示成功,其他为失败
data.taskId string 任务ID
message string 错误描述信息(失败时返回)
data.requestId string 本次请求唯一ID,用于排查问题

7. 素材混剪视频

apiname: 素材混剪视频

素材混剪生成视频。

请求参数

Body参数

参数名 类型 必填 说明
styleId string 是 样式ID
audioUrl string 否 音频URL,与content二选一
speakerId string 否 音色ID,使用content时必须
speakerExtra object 否 音色扩展参数
content string 否 文本内容,与audioUrl二选一
title string 否 视频标题
materials array 否 素材列表
introduceCard object 否 介绍卡片
packRules object 否 包装规则
processRules object 否 处理规则

speakerExtra参数说明

参数名 类型 必填 说明
speedRatio number 否 语速,范围0.5~2,默认1
language string 否 语种

materials参数说明

参数名 类型 必填 说明
type string 是 素材类型:image、video
fileUrl string 是 素材文件URL
soundSwitch boolean 否 是否保留素材声音

introduceCard参数说明

参数名 类型 必填 说明
name string 否 姓名
description string 否 描述

packRules参数说明

参数名 类型 必填 说明
headerSwitch boolean 否 是否显示头部
materialSwitch boolean 否 是否使用素材
subtitleSwitch boolean 否 是否显示字幕
keywordSwitch boolean 否 是否显示关键词
backgroundMusic object 否 背景音乐配置

processRules参数说明

参数名 类型 必填 说明
watermarkShow boolean 否 是否显示水印
firstFrameCover object 否 第一封面配置
firstFrameCover.coverSwitch boolean 否 是否显示第一封面
firstFrameCover.templateId string 否 第一封面模板ID
firstFrameCover.imageUrl string 否 第一封面图片URL
#### 请求示例
curl -X POST https://yxyx.xyaip.fun/api \
  -H "X-App-Id: " \
  -H "X-App-Secret: " \
  -H "Content-Type: application/json" \
  -d '{
    "apiname": "素材混剪视频",
    "params": {
        "styleId": "68aebb91b8619ed6f4168f40",
        "audioUrl": "https://golden-final.com/a.mp3",
        "speakerId": "68aebb91b8619ed6f4168f40",
        "speakerExtra": {
            "speedRatio": 1,
            "language": "zh-CN",

        },
        "content": "AI行业是一个充满机遇的行业",
        "title": "聊AI行业",
        "materials": [
            {
                "type": "image",
                "fileUrl": "https://golden-final.com/a.jpg",
                "soundSwitch": false
            },
            {
                "type": "video",
                "fileUrl": "https://golden-final.com/b.mp4",
                "soundSwitch": false
            }
        ],
        "introduceCard": {
            "name": "会长",
            "description": "医美领军人物"
        },
        "packRules": {
            "headerSwitch": true,
            "materialSwitch": true,
            "subtitleSwitch": true,
            "keywordSwitch": true,
            "backgroundMusic": {
                "audioSwitch": true,
                "audioUrl": "https://golden-final.com/bg.mp3",
                "volume": 1
            }
        },
        "processRules": {
            "watermarkShow": true,
             "firstFrameCover":{
                "coverSwitch":true,
                "templateId":"69b3ce905a79730032b9ed6e",
                "imageUrl":"https://v.xyaip.fun/1776479830396_fnhvfgp3_1766718234389_ejqad1h2_啸岳_副本.jpg"

           }
        },
        "callbackUrl": "https://exotic-reservation.org/hook"
    }
  }'
````

#### 返回值

```json
{
    "code": 0,
    "message": "success",
    "data": {
        "taskId": "string",
        "requestId": "string"
    }
}

返回字段说明

字段名 类型 说明
code string 请求状态,Succeed 表示成功,其他为失败
data.taskId string 任务ID
message string 错误描述信息(失败时返回)
data.requestId string 本次请求唯一ID,用于排查问题

8. 剪辑模板列表

apiname: 剪辑模板列表

获取剪辑模板列表(GET请求)。

请求参数

Query参数

参数名 类型 必填 说明
pageSize int 否 每页大小,默认10
sid string 否 分页游标,当有值时代表存在下一页
scene enum 是 模板使用场景
sortBy enum 否 排序方式:desc(降序)、asc(升序),默认desc

scene枚举值说明

值 说明
virtualman 数字人口播模板
oralMixCutting 素材混剪模板

请求示例

curl -X POST https://yxyx.xyaip.fun/api \
  -H "X-App-Id: " \
  -H "X-App-Secret: " \
  -H "Content-Type: application/json" \
  -d '{
    "apiname": "剪辑模板列表",
    "params": {
        "pageSize": 10,
        "scene": "virtualman",
        "sortBy": "desc"
    }
  }'

返回值

{
    "code": 0,
    "message": "success",
    "data": {
        "results": [
            {
                "id": "string",
                "name": "string",
                "coverUrl": "string",
                "scene": "virtualman",
                "demoUrl": "string"
            }
        ],
        "sid": "string"
    }
}

返回字段说明

字段名 类型 说明
code string 请求状态,Succeed 表示成功,其他为失败
data.results array 模板列表
data.results[].id string 模板ID
data.results[].name string 模板名称
data.results[].coverUrl string 模板封面URL
data.results[].scene string 模板使用场景
data.results[].demoUrl string 模板演示视频URL
data.sid string 分页游标,有值表示存在下一页
message string 错误描述信息(失败时返回)

9. 封面模板列表

apiname: 封面模板列表

获取封面模板列表(GET请求)。

请求参数

Query参数

参数名 类型 必填 说明
pageSize int 是 每页大小,默认10
sid string 否 分页游标,当有值时代表存在下一页
sortBy enum 是 排序方式:desc(降序)、asc(升序),默认desc

请求示例

curl -X POST https://yxyx.xyaip.fun/api \
  -H "X-App-Id: " \
  -H "X-App-Secret: " \
  -H "Content-Type: application/json" \
  -d '{
    "apiname": "封面模板列表",
    "params": {
        "pageSize": 10,
        "sortBy": "desc"
    }
  }'

返回值

{
    "code": 0,
    "message": "success",
    "data": {
        "results": [
            {
                "id": "string",
                "name": "string",
                "coverUrl": "string"
            }
        ],
        "sid": "string"
    }
}

返回字段说明

字段名 类型 说明
code string 请求状态,Succeed 表示成功,其他为失败
data.results array 模板列表
data.results[].id string 模板ID
data.results[].name string 模板名称
data.results[].coverUrl string 模板封面URL
data.sid string 分页游标,有值表示存在下一页
message string 错误描述信息(失败时返回)

10. 文本转语音

apiname: 文本转语音

文本转换为语音。

请求参数

Body参数

参数名 类型 必填 说明
text string 是 文本内容
speakerId string 是 通过声音克隆拿到的音色ID
language string 否 语种,默认zh-CN
speedRatio float 否 语速,保留1位小数,范围0.5\~2,默认1
volume float 否 音量,保留1位小数,范围0.5\~2,默认1
codec enum 否 音频编码格式,枚举值: mp3, wav,默认mp3
returnSubtitle boolean 否 是否返回字幕信息

请求示例

curl -X POST https://yxyx.xyaip.fun/api \
  -H "X-App-Id: " \
  -H "X-App-Secret: " \
  -H "Content-Type: application/json" \
  -d '{
    "apiname": "文本转语音",
    "params": {
        "text": "你好,我是你的专属AI克隆声音,希望未来的日子一起好好相处哦!",
        "speakerId": "68e8d31a49c3b000398828dc",
        "language": "zh-CN",
        "speedRatio": 1,
        "volume": 1,
        "codec": "mp3",
        "returnSubtitle": true
    }
  }'

返回值

{
    "code": 0,
    "message": "success",
    "data": {
        "taskId": "string",
        "requestId": "string"
    }
}

返回字段说明

字段名 类型 说明
code string 请求状态,Succeed 表示成功,其他为失败
data.taskId string 任务ID
message string 错误描述信息(失败时返回)
data.requestId string 本次请求唯一ID,用于排查问题

11. 查询任务详情

apiname: 查询任务详情

查询任务状态和结果(GET请求)。

请求参数

参数名 类型 必填 说明
taskId string 是 任务ID

请求示例

{
    "apiname": "查询任务详情",
    "params": {
        "taskId": "task_123456"
    }
}

返回值

{
    "code": 0,
    "message": "success",
    "data": {
        "taskId": "string",
        "status": "pending|processing|success|failed",
        "progress": 0,
        "result": {
            "videoUrl": "string",
            "coverUrl": "string",
            "aiCoverSucceed": true,
            "audioUrl": "string",
            "imageUrl": "string",
            "text": "string",
            "subtitle": [
                {
                    "text": "string",
                    "startMs": "string",
                    "endMs": "string"
                }
            ],
            "virtualmanId": "string",
            "speakerId": "string",
            "demoAudioUrl": "string",
            "duration": 0
        },
        "errorMsg": "string",
        "createTime": "string",
        "updateTime": "string"
    }
}

错误码说明

错误码 说明
0 成功
-1 缺少apiname参数
-2 未知的API名称
-3 请求失败
-401 未授权
-1001 缺少必需参数
-1002 参数验证失败
-999 系统异常

接口权限验证

所有 /api 接口调用前需要进行权限验证,验证方式为在请求头中携带 X-App-Id 和 X-App-Secret。

验证参数

参数名 类型 必填 说明
X-App-Id string 是 应用ID
X-App-Secret string 是 应用密钥

当前配置

appid: 
app_secret: 

请求示例

curl -X POST https://yxyx.xyaip.fun/api \
  -H "X-App-Id: " \
  -H "X-App-Secret: " \
  -H "Content-Type: application/json" \
  -d '{"apiname": "专业数字人克隆", "params": {...}}'

权限验证错误码

错误码 说明
-402 缺少appid,请在请求头中携带X-App-Id
-403 无效的app密钥,请检查X-App-Secret

注意事项

  1. 所有接口均通过统一入口 /api 调用
  2. 请求体格式必须为 JSON,包含 apiname 和 params 字段
  3. GET类型接口(模板列表、任务详情)参数会自动转为URL查询参数
  4. 调用接口必须在请求头中携带 X-App-Id 和 X-App-Secret
  5. 如果请求头未携带 Authorization,系统自动使用配置文件中的api_key
  6. 训练视频分辨率最大支持2k(单边不大于2000)