Skip to main content

视频生成接口

介绍

LinkAI 统一视频生成接口,通过一组接口接入Seedance、即梦、可灵等多家视频生成模型,支持:

  1. 文生视频:根据文本描述生成视频
  2. 图生视频:传入参考图,生成动起来的视频;支持首尾帧模式
  3. 视频续写 / 编辑:基于已有视频进行延展或修改
  4. 多模型聚合:通过切换 model 参数即可使用不同厂商的视频模型,响应格式统一

视频生成耗时较长(通常数十秒到数分钟),接口采用 异步任务 模式:先调用「创建任务」接口提交生成请求拿到 task_id,再轮询「查询任务」接口获取生成结果。

在线接口调试:API接口调试

一、创建视频生成任务

接口地址

POST https://api.link-ai.tech/v1/videos/generations

请求头

参数取值说明
AuthorizationBearer YOUR_API_KEY参考 接口鉴权说明 创建 API Key 并填入
Content-Typeapplication/json表明使用 JSON 格式请求

请求体

参数类型是否必传说明
promptstring视频生成提示词,描述想要生成的视频内容
modelstring视频模型编码,所有可选模型见 模型列表
imageslist<string>参考图地址列表,传入时为 图生视频。首尾帧模式下按顺序作为首帧 / 尾帧
videoslist<string>参考视频地址列表,用于视频续写 / 视频编辑场景
audioslist<string>参考音频地址列表,仅 Seedance 2.0 系列支持,用于音画同步等场景,其他模型会忽略
sizestring视频分辨率,取值范围由具体模型决定,常见取值 480P / 720P / 1080P,详见 模型列表
aspect_ratiostring视频宽高比,常见取值 16:9 / 9:16 / 1:1 / 4:3 / 3:4,默认 16:9
durationint视频时长(秒),取值范围由具体模型决定,详见 模型列表
modestring生成模式,仅 kling 系列生效,可选 std(标清 720P) / pro(高清 1080P)
image_modestring图片输入模式:reference(参考图) / first_last_frame(首尾帧),不同模型支持的模式不同(详见 模型列表
generate_audiobool是否在输出视频中生成配音 / 音效,仅 Seedance 2.0 / 2.0 Fast、kling-v3-omni 生效,默认 true。注意:可灵 V3 Omni 传入 videos 做视频编辑时,该字段会被自动置为 false(保留原视频音轨)
watermarkbool是否添加水印,默认 false

注:关于 images / videos / audios 字段,元素必须为 公网可访问的 URL,暂不支持 base64

请求示例(文生视频):

{
"model": "jimeng_t2v_v30",
"prompt": "傍晚海边,少女白色长裙被海风扬起。镜头从背后跟随推进,长焦虚化,电影感",
"aspect_ratio": "16:9",
"duration": 5,
"size": "1080P"
}

请求示例(首尾帧补帧):

传入两张图作为首帧 / 尾帧,模型自动生成中间过渡:

{
"model": "jimeng_t2v_v30",
"prompt": "镜头平稳推进,光线由冷转暖",
"images": [
"https://cdn.link-ai.tech/example/frame_first.jpg",
"https://cdn.link-ai.tech/example/frame_last.jpg"
],
"image_mode": "first_last_frame",
"duration": 5
}

请求示例(Seedance 多模态参考):

doubao-seedance-2-0 支持同时传入 参考图 + 参考视频 + 参考音频,可一次性融合角色、运镜节奏和音乐律动:

{
"model": "doubao-seedance-2-0",
"prompt": "穿同款外套的女孩走进咖啡店,画面随音乐节拍律动",
"images": ["https://cdn.link-ai.tech/example/character.jpg"],
"videos": ["https://cdn.link-ai.tech/example/motion_ref.mp4"],
"audios": ["https://cdn.link-ai.tech/example/beat.mp3"],
"duration": 8,
"size": "1080P"
}

注意:

  • 数量上限:images ≤ 9、videos ≤ 3、audios ≤ 3,videosaudios 总时长 ≤ 15 秒,超出会被截断
  • audios 不能单独使用,必须同时传入至少一张图片或一段视频
  • 多模态参考目前仅 doubao-seedance-2-0 / doubao-seedance-2-0-fast 支持

请求示例(可灵 V3 Omni 视频编辑 + 有声):

kling-v3-omni 支持视频编辑、风格化、有声视频生成。传入 videos 时输出会自动保留原视频音轨,generate_audio 会被忽略;不传 videos 走文生视频时,可通过 generate_audio 控制是否生成音效:

{
"model": "kling-v3-omni",
"prompt": "整体切换为吉卜力手绘风格,色调温暖",
"videos": ["https://cdn.link-ai.tech/example/source.mp4"],
"mode": "pro"
}

响应结果

接口同步返回任务创建结果,不包含视频数据,需后续通过 task_id 轮询任务状态获取视频:

{
"task_id": "vt_xxxxxxxxxxxxxxxx",
"status": "queued",
"model": "jimeng_t2v_v30",
"created_at": null
}
字段说明
task_id任务 ID,用于后续查询任务状态
status任务初始状态,通常为 queued(队列中)或 processing(处理中)
model实际使用的模型编码
created_at创建时间占位字段,当前可能为 null,请以业务侧时间为准

二、查询视频生成任务

接口地址

POST https://api.link-ai.tech/v1/videos/tasks

请求体

参数类型是否必传说明
task_idstring创建任务接口返回的 task_id

请求示例:

{
"task_id": "vt_xxxxxxxxxxxxxxxx"
}

响应结果

进行中

任务尚未完成时,响应只包含状态字段:

{
"task_id": "vt_xxxxxxxxxxxxxxxx",
"status": "processing",
"model": "jimeng_t2v_v30"
}

已完成

任务完成时,响应包含视频地址:

{
"task_id": "vt_xxxxxxxxxxxxxxxx",
"status": "completed",
"model": "jimeng_t2v_v30",
"video_url": "https://cdn.link-ai.tech/user/generate/xxxxxxxx.mp4",
"thumbnail_url": "https://cdn.link-ai.tech/user/generate/xxxxxxxx.jpg",
"enhanced_prompt": "A white fox running across a snowy plain under the moonlight, cinematic ..."
}
字段说明
video_url视频地址(已转存至 LinkAI CDN,URL 长期有效)
thumbnail_url视频封面图地址(部分模型返回)
enhanced_prompt模型对原 prompt 的增强结果(部分模型返回,可用于追溯)

失败

{
"task_id": "vt_xxxxxxxxxxxxxxxx",
"status": "failed",
"model": "jimeng_t2v_v30",
"error_message": "视频生成失败:内容审核不通过"
}

任务状态码

状态值说明
init已初始化
queued队列等待中
processing生成中
completed已完成(响应中包含 video_url
failed任务失败(响应中包含 error_message
unknown系统异常 / 未知状态,建议稍后重试查询

轮询建议:

  • 视频生成通常耗时 30 秒到几分钟,建议每 5~10 秒 查询一次
  • statuscompletedfailed 时为最终态,停止轮询
  • 单次任务建议最长轮询 10 分钟,超时仍未完成可视为失败

错误响应

接口异常时返回如下结构:

{
"error": {
"message": "模型不存在或用户无权限使用: xxx",
"type": "invalid_request_error"
}
}
HTTP 状态码描述
400请求参数错误,如 prompt 为空、参考资源不可访问等
401接口鉴权失败,请检查 API Key 是否填写正确
402模型不存在或当前账号无权限使用该模型
406账号积分额度不足
409内容审核不通过,提示词或参考资源中可能包含敏感内容
503接口调用异常,联系客服处理

三、模型列表

接口支持的视频生成模型如下,完整模型列表可在平台 模型服务 页面查看。

总览:

模型编码 (model)名称输入能力
doubao-seedance-2-0Seedance 2.0文 / 图 / 视频 / 音频 多模态参考
doubao-seedance-2-0-fastSeedance 2.0 Fast文 / 图 / 视频 / 音频 多模态参考,速度更快
jimeng_t2v_v30即梦 3.0文 / 图(首尾帧)生视频
jimeng_ti2v_v30_pro即梦 3.0 Pro文 / 图(单帧)生视频
kling-v3-omni可灵 V3 Omni文 / 图(参考/首尾帧) / 视频编辑,支持生成有声视频
kling-video-o1可灵 O1文 / 图(首尾帧)生视频
sora-2Sora-2文 / 图(参考)生视频
veo_3_1Veo-3.1文 / 图(参考)生视频

各模型详细参数:


Seedance 2.0

模型编码:doubao-seedance-2-0

基础参数:

参数取值范围默认值
aspect_ratio16:9 / 1:1 / 9:1616:9
duration4 / 5 / 8 / 10 / 15(秒)5
size480P / 720P / 1080P720P

参考输入:

  • images:最多 9 张,支持 image_mode = reference(1~9 张)/ first_last_frame(1~2 张)
  • videos:最多 3 段,总时长 ≤ 15 秒
  • audios:最多 3 段,总时长 ≤ 15 秒,不可单独使用
Seedance 2.0 Fast

模型编码:doubao-seedance-2-0-fast

基础参数:

参数取值范围默认值
aspect_ratio16:9 / 1:1 / 9:1616:9
duration4 / 5 / 8 / 10 / 15(秒)5
size480P / 720P720P

参考输入:与 Seedance 2.0 相同(images ≤ 9 / videos ≤ 3 / audios ≤ 3)

即梦 3.0

模型编码:jimeng_t2v_v30

基础参数:

参数取值范围默认值
aspect_ratio16:9 / 1:1 / 9:1616:9
duration5 / 10(秒;接口传 1~5 视为 5 秒,≥6 视为 10 秒)5
size720P / 1080P720P

参考输入:images ≤ 2,仅支持 image_mode = first_last_frame

即梦 3.0 Pro

模型编码:jimeng_ti2v_v30_pro

基础参数:

参数取值范围默认值
aspect_ratio16:9 / 1:1 / 9:1616:9
duration5 / 10(秒;规则同 jimeng_t2v_v30)5

参考输入:images ≤ 1,仅支持 image_mode = first_last_frame(单帧)

可灵 V3 Omni

模型编码:kling-v3-omni

基础参数:

参数取值范围默认值
aspect_ratio16:9 / 9:16 / 1:1 / 4:3 / 3:416:9
duration3 / 5 / 8 / 10 / 15(秒;视频编辑模式下该字段无效)5
modestd(标清 720P) / pro(高清 1080P)std
generate_audio是否生成有声视频;传入 videos 时会被强制关闭true

参考输入:

  • images:最多 7 张,image_mode = reference(1~7 张)/ first_last_frame(1~2 张)
  • videos:最多 1 段,用于视频编辑
可灵 O1

模型编码:kling-video-o1

基础参数:

参数取值范围默认值
aspect_ratio16:9 / 1:1 / 9:1616:9
duration5 / 10(秒)5
size720p(标清) / 1080p(高清)720p

参考输入:images ≤ 2,仅支持 image_mode = first_last_frame

Sora-2

模型编码:sora-2

基础参数:

参数取值范围默认值
aspect_ratio16:9 / 1:1 / 9:1616:9
duration4 / 8 / 12(秒;其它值会自动就近吸附)8

参考输入:images ≤ 5,仅支持 image_mode = reference

Veo-3.1

模型编码:veo_3_1

基础参数:

参数取值范围默认值
aspect_ratio16:9 / 1:1 / 9:1616:9
duration8(固定)8

参考输入:images ≤ 3,仅支持 image_mode = reference

四、示例代码

1. CURL 完整流程

Step 1:创建任务

curl --request POST \
--url https://api.link-ai.tech/v1/videos/generations \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"model": "jimeng_t2v_v30",
"prompt": "一只白色狐狸在月光下的雪原中奔跑,电影质感",
"duration": 5
}'

Step 2:轮询查询任务

curl --request POST \
--url https://api.link-ai.tech/v1/videos/tasks \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"task_id": "vt_xxxxxxxxxxxxxxxx"
}'

2. Python 完整流程

import time
import requests

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.link-ai.tech"
HEADERS = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
}

# Step 1: create task
create_body = {
"model": "jimeng_t2v_v30",
"prompt": "一只白色狐狸在月光下的雪原中奔跑,电影质感",
"duration": 5
}
create_res = requests.post(
f"{BASE_URL}/v1/videos/generations",
json=create_body, headers=HEADERS
).json()
task_id = create_res["task_id"]
print(f"任务已创建: task_id={task_id}")

# Step 2: poll for task status
while True:
query_res = requests.post(
f"{BASE_URL}/v1/videos/tasks",
json={"task_id": task_id},
headers=HEADERS
).json()

status = query_res.get("status")
print(f"任务状态: {status}")

if status == "completed":
print(f"视频地址: {query_res['video_url']}")
break
elif status == "failed":
print(f"生成失败: {query_res.get('error_message')}")
break

time.sleep(8)

注意:YOUR_API_KEY 处填入你创建的 API Key。