数字人视频相关接口文档

统一接口入口

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-IdX-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,包含 apinameparams 字段
  3. GET类型接口(模板列表、任务详情)参数会自动转为URL查询参数
  4. 调用接口必须在请求头中携带 X-App-IdX-App-Secret
  5. 如果请求头未携带 Authorization,系统自动使用配置文件中的api_key
  6. 训练视频分辨率最大支持2k(单边不大于2000)