爱诗AI视频接口接入说明

文生视频、图生视频、模板视频、重绘与音效

1. 概述

能力 方法与路径 是否计费
视频生成 POST {baseUrl}/video/generations/{apiType}
视频资源查询 POST {baseUrl}/video/resource-actions/{apiType}

apiType 为动作类型,以 URL 路径为准。请求和响应使用 JSON。

2. 接入前置条件

调用前仅需获取 api_key

信息 说明
api_key 访问密钥(控制台生成),用于 Bearer 鉴权。

3. 鉴权

HTTP
Authorization: Bearer <api_key>
Content-Type: application/json
Accept: application/json
JSON
{
  "model": "<视频模型编码>",
  "channelCode": "<可选渠道编码>",
  "prompt": "一只橘猫在雨后的城市街道上漫步",
  "duration": 5,
  "quality": "720p"
}

4. 视频生成

TEXT
POST {baseUrl}/video/generations/{apiType}

4.1 {apiType} 枚举说明

{apiType} 区分大小写,且必须与访问的接口路径匹配。

apiType 说明 关键字段
TextToVideo 文本生成视频 prompt
ImageToVideo 图片生成视频(仅支持单图) fileUrl
ImageToTemplate 图片生成模板视频 fileUrlfileUrlstemplateIddurationquality
RestyleVideo 重绘视频 restyleId,以及 sourceVideoIdfileUrl
SoundEffectVideo 为已有视频生成音效 sourceVideoIdfileUrl

文生视频

JSON
{
  "model": "<视频模型编码>",
  "prompt": "一只橘猫在雨后的城市街道上漫步,电影感,镜头缓慢推进",
  "duration": 5,
  "quality": "720p",
  "aspectRatio": "16:9"
}

调用路径中的 apiTypeTextToVideo

图生视频:单图

ImageToVideo 仅支持一张输入图片,使用 fileUrl。图片可使用可访问的 url,或使用本地文件的 Base64 Data URL(urlData)。下游接口仅接收单个 img_id;传入 fileUrls 会被拒绝。多图请使用 ImageToTemplate 并选择匹配图片数量的模板。

单图 URL 示例:

JSON
{
  "model": "<视频模型编码>",
  "fileUrl": { "url": "https://example.com/source.jpg" },
  "prompt": "人物自然微笑,镜头轻微推进",
  "duration": 5,
  "quality": "720p"
}

单图本地 Base64 示例:

JSON
{
  "model": "<视频模型编码>",
  "fileUrl": { "urlData": "data:image/jpeg;base64,<本地图片Base64内容>", "fileName": "source.jpg", "contentType": "image/jpeg" },
  "prompt": "人物自然微笑,镜头轻微推进",
  "duration": 5,
  "quality": "720p"
}

调用路径中的 apiTypeImageToVideo

图片模板视频:单图或多图

ImageToTemplate 同样支持一张或多张输入图片。单图使用 fileUrl,多图使用 fileUrls;两者二选一。应选择支持对应图片数量的模板 ID。每张图片均可使用 url 或本地 Base64 Data URL(urlData)。prompt 必传,允许为空字符串。

单图 URL 示例:

JSON
{
  "model": "<视频模型编码>",
  "fileUrl": { "url": "https://example.com/source.jpg" },
  "templateId": 402364107875392,
  "prompt": "",
  "duration": 5,
  "quality": "720p"
}

单图本地 Base64 示例:

JSON
{
  "model": "<视频模型编码>",
  "fileUrl": { "urlData": "data:image/jpeg;base64,<本地图片Base64内容>", "fileName": "source.jpg", "contentType": "image/jpeg" },
  "templateId": 402364107875392,
  "prompt": "",
  "duration": 5,
  "quality": "720p"
}

多图 URL 示例:

JSON
{
  "model": "<视频模型编码>",
  "fileUrls": [
    { "url": "https://example.com/source-1.jpg" },
    { "url": "https://example.com/source-2.jpg" }
  ],
  "templateId": 402364107875392,
  "prompt": "",
  "duration": 5,
  "quality": "720p"
}

多图本地 Base64 示例:

JSON
{
  "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"
}

调用路径中的 apiTypeImageToTemplate

重绘与音效生成

JSON
{
  "model": "<视频模型编码>",
  "sourceVideoId": 417737017841760,
  "restyleId": 322672481023040,
  "seed": 0
}

重绘使用路径 .../generations/RestyleVideo。除使用已生成视频的 sourceVideoId 外,也可通过 fileUrl 上传视频:

JSON
{ "model": "<视频模型编码>", "fileUrl": { "url": "https://example.com/source.mp4" }, "restyleId": 322672481023040 }
JSON
{ "model": "<视频模型编码>", "fileUrl": { "urlData": "data:video/mp4;base64,<本地视频Base64内容>", "fileName": "source.mp4", "contentType": "video/mp4" }, "restyleId": 322672481023040 }

音效生成使用 .../generations/SoundEffectVideo,并传 sourceVideoIdfileUrl 其中之一,可额外传 originalSoundSwitchsoundEffectContent

5. 素材字段

fileUrl 表示一个素材对象;fileUrls 表示多个图片素材对象的非空数组。fileUrls 仅用于 ImageToTemplate 多图模板;单图 ImageToVideo、单图模板、重绘和音效均使用 fileUrl。对于支持 fileUrls 的多图模板,fileUrlfileUrls 二选一,不能同时传入。

JSON
{ "fileUrl": { "url": "https://example.com/file.jpg" } }
JSON
{ "fileUrl": { "urlData": "data:image/jpeg;base64,<本地文件Base64内容>", "fileName": "file.jpg", "contentType": "image/jpeg" } }

每个素材对象的 urlurlData 至少提供一个;同时提供时优先使用 urlData。图片常用 JPG、JPEG、PNG、WEBP,视频建议使用 MP4。

6. 视频资源查询

TEXT
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=1Resp.url 非空时使用最终视频。

7. 响应要点

响应 JSON 包含 ErrCodeErrMsgResp 等字段。

7.1 响应示例

JSON
{
  "ErrCode": 0,
  "ErrMsg": "Success",
  "Resp": {
    "video_id": 418466475962018,
    "credits": 45
  }
}

解析与处理规则

  1. 直接解析 HTTP 响应 JSON,先检查 ErrCode 是否为 0;非 0 时使用 ErrMsg 提示失败原因。
  2. 生成接口读取 Resp.video_id 作为视频任务 ID;Resp.credits 为厂商原始返回的额度字段。
  3. QueryVideo 读取 Resp.status5 继续轮询,1Resp.url 非空时可使用视频,7 为审核未通过,8 为生成失败。
  4. QueryVideoTemplatesResp.effect_items[].template_id 取模板 ID;QueryRestyleEffectsResp 为效果数组,直接遍历读取效果 ID。

JavaScript 示例:

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 为厂商原始对象或数组