1. 概述
| 能力 | 方法与路径 | 是否计费 |
|---|---|---|
| 视频生成 | POST {baseUrl}/video/generations/{apiType}
|
是 |
| 视频资源查询 | POST {baseUrl}/video/resource-actions/{apiType}
|
否 |
apiType 为动作类型,以 URL 路径为准。请求和响应使用 JSON。
2. 接入前置条件
调用前仅需获取 api_key:
| 信息 | 说明 |
|---|---|
api_key |
访问密钥(控制台生成),用于 Bearer 鉴权。 |
3. 鉴权
Authorization: Bearer <api_key>
Content-Type: application/json
Accept: application/json
{
"model": "<视频模型编码>",
"channelCode": "<可选渠道编码>",
"prompt": "一只橘猫在雨后的城市街道上漫步",
"duration": 5,
"quality": "720p"
}
4. 视频生成
POST {baseUrl}/video/generations/{apiType}
4.1 {apiType} 枚举说明
{apiType} 区分大小写,且必须与访问的接口路径匹配。
apiType |
说明 | 关键字段 |
|---|---|---|
TextToVideo |
文本生成视频 | prompt |
ImageToVideo |
图片生成视频(仅支持单图) | fileUrl |
ImageToTemplate |
图片生成模板视频 | fileUrl 或
fileUrls、templateId、duration、quality
|
RestyleVideo |
重绘视频 | restyleId,以及 sourceVideoId 或 fileUrl |
SoundEffectVideo |
为已有视频生成音效 | sourceVideoId 或 fileUrl |
文生视频
{
"model": "<视频模型编码>",
"prompt": "一只橘猫在雨后的城市街道上漫步,电影感,镜头缓慢推进",
"duration": 5,
"quality": "720p",
"aspectRatio": "16:9"
}
调用路径中的 apiType 为 TextToVideo。
图生视频:单图
ImageToVideo 仅支持一张输入图片,使用 fileUrl。图片可使用可访问的
url,或使用本地文件的 Base64 Data URL(urlData)。下游接口仅接收单个 img_id;传入
fileUrls 会被拒绝。多图请使用 ImageToTemplate 并选择匹配图片数量的模板。
单图 URL 示例:
{
"model": "<视频模型编码>",
"fileUrl": { "url": "https://example.com/source.jpg" },
"prompt": "人物自然微笑,镜头轻微推进",
"duration": 5,
"quality": "720p"
}
单图本地 Base64 示例:
{
"model": "<视频模型编码>",
"fileUrl": { "urlData": "data:image/jpeg;base64,<本地图片Base64内容>", "fileName": "source.jpg", "contentType": "image/jpeg" },
"prompt": "人物自然微笑,镜头轻微推进",
"duration": 5,
"quality": "720p"
}
调用路径中的 apiType 为 ImageToVideo。
图片模板视频:单图或多图
ImageToTemplate 同样支持一张或多张输入图片。单图使用 fileUrl,多图使用 fileUrls;两者二选一。应选择支持对应图片数量的模板
ID。每张图片均可使用 url 或本地 Base64 Data
URL(urlData)。prompt 必传,允许为空字符串。
单图 URL 示例:
{
"model": "<视频模型编码>",
"fileUrl": { "url": "https://example.com/source.jpg" },
"templateId": 402364107875392,
"prompt": "",
"duration": 5,
"quality": "720p"
}
单图本地 Base64 示例:
{
"model": "<视频模型编码>",
"fileUrl": { "urlData": "data:image/jpeg;base64,<本地图片Base64内容>", "fileName": "source.jpg", "contentType": "image/jpeg" },
"templateId": 402364107875392,
"prompt": "",
"duration": 5,
"quality": "720p"
}
多图 URL 示例:
{
"model": "<视频模型编码>",
"fileUrls": [
{ "url": "https://example.com/source-1.jpg" },
{ "url": "https://example.com/source-2.jpg" }
],
"templateId": 402364107875392,
"prompt": "",
"duration": 5,
"quality": "720p"
}
多图本地 Base64 示例:
{
"model": "<视频模型编码>",
"fileUrls": [
{ "urlData": "data:image/jpeg;base64,<第1张本地图片Base64内容>", "fileName": "source-1.jpg", "contentType": "image/jpeg" },
{ "urlData": "data:image/jpeg;base64,<第2张本地图片Base64内容>", "fileName": "source-2.jpg", "contentType": "image/jpeg" }
],
"templateId": 402364107875392,
"prompt": "",
"duration": 5,
"quality": "720p"
}
调用路径中的 apiType 为 ImageToTemplate。
重绘与音效生成
{
"model": "<视频模型编码>",
"sourceVideoId": 417737017841760,
"restyleId": 322672481023040,
"seed": 0
}
重绘使用路径 .../generations/RestyleVideo。除使用已生成视频的 sourceVideoId
外,也可通过 fileUrl 上传视频:
{ "model": "<视频模型编码>", "fileUrl": { "url": "https://example.com/source.mp4" }, "restyleId": 322672481023040 }
{ "model": "<视频模型编码>", "fileUrl": { "urlData": "data:video/mp4;base64,<本地视频Base64内容>", "fileName": "source.mp4", "contentType": "video/mp4" }, "restyleId": 322672481023040 }
音效生成使用 .../generations/SoundEffectVideo,并传 sourceVideoId 或 fileUrl
其中之一,可额外传 originalSoundSwitch、soundEffectContent。
5. 素材字段
fileUrl 表示一个素材对象;fileUrls 表示多个图片素材对象的非空数组。fileUrls
仅用于 ImageToTemplate 多图模板;单图 ImageToVideo、单图模板、重绘和音效均使用
fileUrl。对于支持 fileUrls 的多图模板,fileUrl 与 fileUrls
二选一,不能同时传入。
{ "fileUrl": { "url": "https://example.com/file.jpg" } }
{ "fileUrl": { "urlData": "data:image/jpeg;base64,<本地文件Base64内容>", "fileName": "file.jpg", "contentType": "image/jpeg" } }
每个素材对象的 url 与 urlData 至少提供一个;同时提供时优先使用
urlData。图片常用 JPG、JPEG、PNG、WEBP,视频建议使用 MP4。
6. 视频资源查询
POST {baseUrl}/video/resource-actions/{apiType}
6.1 {apiType} 枚举说明
{apiType} 区分大小写,且必须与访问的接口路径匹配。
apiType |
请求体示例 |
|---|---|
QueryVideo |
{ "model": "<视频模型编码>", "videoId":
417856038646169 } |
QueryVideoTemplates |
{ "model": "<视频模型编码>", "type": 2, "page":
1, "pageSize": 20 } |
QueryRestyleEffects |
{ "model": "<视频模型编码>" } |
厂商成功响应的 Resp 中包含视频状态:5 为生成中、1
为成功、7 为审核未通过、8 为生成失败。建议每 3~5 秒轮询;仅在 Resp.status=1
且 Resp.url 非空时使用最终视频。
7. 响应要点
响应 JSON 包含 ErrCode、ErrMsg 和 Resp 等字段。
7.1 响应示例
{
"ErrCode": 0,
"ErrMsg": "Success",
"Resp": {
"video_id": 418466475962018,
"credits": 45
}
}
解析与处理规则
- 直接解析 HTTP 响应 JSON,先检查
ErrCode是否为0;非0时使用ErrMsg提示失败原因。 - 生成接口读取
Resp.video_id作为视频任务 ID;Resp.credits为厂商原始返回的额度字段。 QueryVideo读取Resp.status:5继续轮询,1且Resp.url非空时可使用视频,7为审核未通过,8为生成失败。QueryVideoTemplates从Resp.effect_items[].template_id取模板 ID;QueryRestyleEffects的Resp为效果数组,直接遍历读取效果 ID。
JavaScript 示例:
"tk-key">const result = "tk-key">await
response.json();
"tk-key">if (result.ErrCode !== 0) "tk-key">throw "tk-key">new
Error(result.ErrMsg);
"tk-key">const vendorResult = result.Resp;
"tk-com">// vendorResult 为厂商原始对象或数组