登录
开发者文档

视频生成概览

可灵 4.0 · 万相 3.0 · Seedance · MiniMax H3 · Grok Imagine。异步提交轮询取片,各系列的计费口径并不一致

doubao-seedance-2-5-260628

视频生成是异步的:提交拿到 task_id,轮询到 completed,再取片。 一次生成通常 3 到 8 分钟,长时长更久。

POST  /v1/videos                    提交任务
GET   /v1/videos/{task_id}          查询状态
GET   /v1/videos/{task_id}/content  下载成片

三个接口共用同一把 key,都带 Authorization: Bearer <API_KEY>。

因为是异步的,这里不受 120 秒超时的约束——提交请求本身很快返回,长耗时发生在 轮询之间。这是视频与文本、图像端点最大的不同。

基本调用

提交、轮询、取片三步。官方 SDK 未覆盖这组接口,直接发 HTTP 即可。

# 1. 提交
curl -X POST "https://www.vibeapi.cn/v1/videos" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-4.0-720p",
    "prompt": "一只猫在窗台上打盹,阳光缓缓移动",
    "duration": 5,
    "aspect_ratio": "16:9"
  }'

# 2. 轮询(每 10~15 秒一次)
curl "https://www.vibeapi.cn/v1/videos/$TASK_ID" -H "Authorization: Bearer $API_KEY"

# 3. 取片
curl -L "https://www.vibeapi.cn/v1/videos/$TASK_ID/content" \
  -H "Authorization: Bearer $API_KEY" -o output.mp4
import time, requests

BASE = "https://www.vibeapi.cn/v1"
H = {"Authorization": "Bearer YOUR_API_KEY"}

task = requests.post(f"{BASE}/videos", headers=H, json={
    "model": "kling-4.0-720p",
    "prompt": "一只猫在窗台上打盹,阳光缓缓移动",
    "duration": 5,               # 可灵传整数;wan3.0 用字符串 seconds
    "aspect_ratio": "16:9",
}).json()
task_id = task["id"]

while True:
    s = requests.get(f"{BASE}/videos/{task_id}", headers=H).json()
    if s["status"] in ("completed", "failed"):
        break
    time.sleep(12)               # 每 10~15 秒一次,超时按 15 分钟设

if s["status"] == "completed":
    # metadata.url 多数模型指向 /content,H3 则是对象存储直链
    url = s.get("metadata", {}).get("url") or f"{BASE}/videos/{task_id}/content"
    mp4 = requests.get(url, headers=H).content
    open("output.mp4", "wb").write(mp4)
import fs from "fs";

const BASE = "https://www.vibeapi.cn/v1";
const H = { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" };
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));

const task = await (await fetch(`${BASE}/videos`, {
  method: "POST",
  headers: H,
  body: JSON.stringify({
    model: "kling-4.0-720p",
    prompt: "一只猫在窗台上打盹,阳光缓缓移动",
    duration: 5,               // 可灵传整数;wan3.0 用字符串 seconds
    aspect_ratio: "16:9",
  }),
})).json();

let s;
while (true) {
  s = await (await fetch(`${BASE}/videos/${task.id}`, { headers: H })).json();
  if (s.status === "completed" || s.status === "failed") break;
  await sleep(12_000);         // 每 10~15 秒一次,超时按 15 分钟设
}

if (s.status === "completed") {
  // metadata.url 多数模型指向 /content,H3 则是对象存储直链
  const url = s.metadata?.url ?? `${BASE}/videos/${task.id}/content`;
  const mp4 = Buffer.from(await (await fetch(url, { headers: H })).arrayBuffer());
  fs.writeFileSync("output.mp4", mp4);
}

所有参数行为、分辨率与计费口径均来自真实调用,最后验证:2026-09-05。怎么调得好看,见视频生成工作流。

本页结论来自对本网关的真实调用,最后验证:2026-09-21。

页面内容
可灵 4.0文生 / 图生视频,720p / 1080p 写在模型名里,3–30 秒,参考图与参考音频
万相 3.0文生 / 图生视频,分辨率在模型名里,首尾帧;暂停供应
Seedance字节官方四个型号,最长 30 秒、到 1080p,参考图 / 视频 / 音频与首尾帧都收;按 token 计费
MiniMax H3首尾帧或图 / 视频 / 音频三类参考素材,图片可传 base64,768P
Grok 视频按秒计费,走 Grok 自己的端点
视频生成工作流先出 4K 参考图再喂视频模型、无缝循环

三个接口

视频生成是异步的:提交拿到 task_id,轮询到 completed,再取片。 一次生成通常 3 到 8 分钟,长时长更久。三个接口共用同一把 key。

POST https://www.vibeapi.cn/v1/videos                    提交任务
GET  https://www.vibeapi.cn/v1/videos/{task_id}          查询状态
GET  https://www.vibeapi.cn/v1/videos/{task_id}/content  下载成片

/content 对所有模型都可用,需带同一个 Authorization 头。 查询响应里的 metadata.url 就是上面那个 /content 地址,写代码时取 metadata.url 即可。

模型与计费

同一个 /v1/videos 接口下,各系列的收费方式并不一致。

可灵 4.0wan3.0 系列MiniMax H3Seedance 系列
计费口径按秒 — 单价 × 时长按秒 — 单价 × 时长按秒 — 单价 × 时长按 token — 时长 × 分辨率,与字节官方刊例同价
时长参数duration,整数seconds,字符串seconds 或 durationduration,数字,不传按 5 秒
分辨率写在模型名里,两档写在模型名里,三档固定 768Presolution:720p(默认)/ 1080p
时长范围3–30 秒推荐 5–15 秒1–15 秒整数2.5 为 4–30 秒,2.0 系列 4–15 秒
画面比例aspect_ratio,各种比例aspect_ratio,四档含 adaptive六档固定,另有条件可用的 adaptiveaspect_ratio,六档固定 + adaptive

各系列都是每多一秒都在计费;Seedance 还按分辨率分档,1080p 约是 720p 的 2.5 倍。

全部模型

模型能力输出计费
kling-4.0-{720p,1080p}文生 / 图生,3–30 秒,参考图 10 · 参考音频 3,暂不收参考视频720p / 1080p按秒
wan3.0-video-{480p,720p,1080p}文生 / 图生,暂不收参考视频;暂停供应832×480 / 1280×720 / 1920×1080按秒
wan3.0-video-prime-*同上,高速版同上按秒,单价高约 20%
wan3.0-image-*图生视频专用,不收参考视频同上三档仅按输出时长
wan3.0-image-prime-*同上,高速版同上三档仅按输出时长
doubao-seedance-2-5-260628文生 / 图生 / 首尾帧,4–30 秒,参考图 30 · 参考视频 10 · 参考音频 10,实测 5 秒约 9 分钟720p / 1080p按 token
doubao-seedance-2-0-260128文生 / 图生 / 首尾帧,4–15 秒,参考图 9 · 参考视频 3 · 参考音频 3720p / 1080p按 token
doubao-seedance-2-0-fast-260128同 2.0,更快更便宜720p按 token
doubao-seedance-2-0-mini-260615同 2.0,最便宜720p按 token
MiniMax-H3文生 / 首尾帧 / 参考图生,1–15 秒,9 图 / 3 视频 / 3 音频参考固定 768P,六种比例按秒

旧的一口价模型名 seedance-2.5 / -plus / -pro / seedance-2.0 已下线,换成上面的官方模型 ID 即可,字段不变。

单价见 https://www.vibeapi.cn/pricing

轮询与取片

状态走 queued → in_progress → completed。建议每 10 到 15 秒查一次,超时按 15 分钟设。

curl "https://www.vibeapi.cn/v1/videos/$TASK_ID" -H "Authorization: Bearer $API_KEY"

完成时:

{
  "id": "task_397b84onbn1ML8uBNhsiaQP3gafAe3AI",
  "status": "completed",
  "progress": 100,
  "metadata": { "url": "https://www.vibeapi.cn/v1/videos/task_397b.../content" }
}

下载:

curl -L "https://www.vibeapi.cn/v1/videos/$TASK_ID/content" \
  -H "Authorization: Bearer $API_KEY" -o output.mp4

完整 Python 示例

import os, time, requests

BASE = "https://www.vibeapi.cn/v1"
H = {"Authorization": f"Bearer {os.environ['VIBEAPI_KEY']}"}

def generate(payload, timeout=900, interval=12):
    task = requests.post(f"{BASE}/videos", headers=H, json=payload, timeout=120).json()
    if "id" not in task:
        raise RuntimeError(f"提交失败: {task}")
    tid = task["id"]
    print("已提交", tid)

    deadline = time.time() + timeout
    while time.time() < deadline:
        r = requests.get(f"{BASE}/videos/{tid}", headers=H, timeout=60).json()
        status = r.get("status")
        if status == "completed":
            break
        if status == "failed":
            raise RuntimeError(f"生成失败: {r.get('error')}")
        time.sleep(interval)
    else:
        raise TimeoutError(f"{timeout} 秒内未完成: {tid}")

    mp4 = requests.get(f"{BASE}/videos/{tid}/content", headers=H, timeout=600)
    mp4.raise_for_status()
    return tid, mp4.content

tid, data = generate({
    "model": "kling-4.0-1080p",
    "prompt": "伊卡洛斯坠落。少年蜡制的双翼在刺目烈日下崩解成漫天金色羽毛,"
              "自极高处向湛蓝的爱琴海坠落,云层翻涌,镜头自远处缓慢仰摇",
    "duration": 5,
    "aspect_ratio": "16:9",
})
open(f"{tid}.mp4", "wb").write(data)

样片(当时用 wan3.0-video-1080p 生成):https://studio.vibevibe.cn/docs/20260904/video-models/video/icarus-1080p.mp4

一条 15 秒的 1080P 成片通常 40 到 230 MB,码率很高,做网页背景前建议自行转码压缩。

商业方向怎么选模型

按今天用同一批 gpt-image-2.5 底图实测(每个模型页底部都有对应样片):

方向推荐模型画幅为什么
美妆 / 香水 / 护肤doubao-seedance-2-5-2606289:16 · 16:9花瓣、水花这类慢动作最稳;按秒计费,10 秒够用就别拍 30 秒
3C 数码doubao-seedance-2-0-260128 / doubao-seedance-2-5-26062816:9爆炸图合体、旋转展示,2.0 出片快、便宜三成
珠宝doubao-seedance-2-5-260628 / doubao-seedance-2-0-2601289:16微距火彩,竖版直接进信息流;要 1080p 两个都行
汽车wan3.0-video-1080p16:9需要 1080p,跟拍运镜稳定
地产 / 空间wan3.0-image-prime-1080p16:9首帧锁构图,推轨 + 天光变化
饮品 / 食品wan3.0-video-720p · wan3.0-image-720p9:165 秒短片 1–3 分钟出,成本最低
餐饮场景(有人手 / 人物)MiniMax-H316:9唯一不卡人脸的系列,动作自然
服装MiniMax-H3 · grok-imagine-video-1.59:16布料动态好;Grok 1–2 分钟出片适合快速出多版

wan3.0 目前暂停供应,表里用到 wan3.0 的方向可以先换 kling-4.0-1080p(汽车、地产)或 kling-4.0-720p(饮品、食品)。

通用做法:先用图像模型把产品、光线、构图定死,再让视频模型只管"怎么动",见视频生成工作流。

参考素材

各系列传素材的字段和在提示词里点名的写法各不相同,这是最容易混的地方:

系列参考图参考视频 / 音频提示词里怎么点名详情
可灵 4.0images: [url, …]暂不收参考视频;音频用 audios: [url, …]描述主体、动作即可,按数组顺序参考可灵 4.0
Seedanceimage_urls: [url, …];首尾帧用 reference_images: [{url, role}]video_urls / audio_urls@Image1 @Video1 @Audio1,按数组顺序Seedance
wan3.0reference_images: [{url, role}],role = first_frame / last_frame / reference_image暂不收参考视频;音频用 reference_audios: [{url}]「图1」「音频1」,按数组顺序万相 3.0
MiniMax H3image_urls: [url, …](不能与首尾帧混用;首尾帧用 first_frame_image / last_frame_image)video_urls / audio_urls<Picture 1> <Video 1> <Audio 1>MiniMax H3
Grokimage: {url} 锁首帧;reference_images: [{url}] 引导不收<IMAGE_1> <IMAGE_2>Grok 视频

编号一律从 1 开始、按数组顺序数;不点名时模型会自行参考全部素材,点名之后才能区分"主体用哪张、场景用哪张"。 链接必须是公网可直接下载的 HTTPS 直链,贴进无痕窗口能直接下载才算数。每个详情页都有完整的多素材示例。

错误与退款

提交阶段报错,额度不扣;任务失败,额度全额退回(用量日志里失败任务额度记为 0)。

现象原因怎么办
model_not_foundkey 所在分组没有这个模型确认 key 分组,或换模型名
HTTP 400,提示缺时长没传 seconds / duration补上;wan3.0 传字符串,Seedance 传数字(不传按 5 秒)
提示该模型维护中模型临时不可用换模型,或稍后重试
HTTP 400 reference_videos_unsupported可灵 4.0、wan3.0 暂不收参考视频去掉参考视频;要参考动作可以先截一帧作参考图
提交成功但很快 failed生成失败额度已全额退回,直接重试

参考素材导致失败的两个常见原因:

  1. 链接不是公网可直接下载。 要登录、要 Cookie、是分享页而非直链都不行。 贴进无痕窗口能直接下载才算数。
  2. 在提示词里写了比例或时长。 「竖屏」「16:9」「8 秒」会和参数冲突, 比例和时长只用 aspect_ratio 和 seconds 控制。

能力边界

做不到说明
续写 / 剪辑 / 延长只做单条生成
固定随机种子同一提示词两次结果不同,没有 seed 参数
任意模型收参考视频可灵 4.0 与 wan3.0 暂不收,带了返回 400 reference_videos_unsupported;Seedance、MiniMax H3 收
H3 上用首尾帧上游不允许首尾帧与参考图混用,本接口只开放参考图。要首尾帧请用 wan3.0-image-*
成片长期保留取到就存自己那边
完成回调只能轮询,没有 Webhook

要点

  • 先分清计费口径:可灵 4.0、wan3.0 与 MiniMax H3 按秒,Seedance 按 token(时长 × 分辨率),每多一秒都花钱。
  • 分辨率写在模型名里,请求体里的 size 覆盖不了它。
  • Seedance 用字节官方模型 ID:doubao-seedance-2-5-260628 最长 30 秒、到 1080p、素材最多;doubao-seedance-2-0-mini-260615 最便宜。公众人物等敏感素材会被拒。
  • 参考素材必须是公网可直接下载的 HTTPS 直链,不能要登录。
  • 比例和时长只用参数控制,别写进提示词,会冲突。
  • 可灵 4.0 与 wan3.0 暂不收参考视频,带了返回 400;参考图和参考音频照常可用。
  • 任务失败全额退款,重试即可;Seedance 系列请预留一次重试,公众人物等敏感素材会被审核拒掉。
  • H3 的分辨率不用传,固定 768P;adaptive 比例只在带了图或视频时可用。
  • 接口以本页为准,不要照上游厂商的原文调用我们的域名——协议由网关翻译,端点和请求体都不一样。

想让画面更好看,接着读视频生成工作流。

在线调试

填入你自己的 API Key 即可直接发起请求,参数表与响应结构由接口定义生成。

提交任务

POST
/v1/videos

Authorization

BearerAuth

AuthorizationBearer <token>

使用 Bearer Token 认证。 格式: Authorization: Bearer sk-xxxxxx

In: header

Request Body

multipart/form-data

model?string

模型/风格 ID

prompt?string

文本描述提示词

image?string

图片输入 (URL 或 Base64)

duration?number

视频时长(秒)

width?integer

视频宽度

height?integer

视频高度

fps?integer

视频帧率

seed?integer

随机种子

n?integer

生成视频数量

response_format?string

响应格式

user?string

用户标识

metadata?

扩展参数 (如 negative_prompt, style, quality_level 等)

Response Body

application/json

application/json

curl -X POST "https://www.vibeapi.cn/v1/videos"
{
  "id": "string",
  "object": "string",
  "model": "string",
  "status": "string",
  "progress": 0,
  "created_at": 0,
  "seconds": "string",
  "completed_at": 0,
  "expires_at": 0,
  "size": "string",
  "error": {
    "message": "string",
    "code": "string"
  },
  "metadata": {}
}
{
  "error": {
    "message": "string",
    "type": "string",
    "param": "string",
    "code": "string"
  }
}

查询状态

GET
/v1/videos/{task_id}

Authorization

BearerAuth

AuthorizationBearer <token>

使用 Bearer Token 认证。 格式: Authorization: Bearer sk-xxxxxx

In: header

Path Parameters

task_id*string

视频任务 ID

Response Body

application/json

application/json

curl -X GET "https://www.vibeapi.cn/v1/videos/string"
{
  "id": "string",
  "object": "string",
  "model": "string",
  "status": "string",
  "progress": 0,
  "created_at": 0,
  "seconds": "string"
}
{
  "error": {
    "message": "string",
    "type": "string",
    "param": "string",
    "code": "string"
  }
}

下载成片

GET
/v1/videos/{task_id}/content

Authorization

BearerAuth

AuthorizationBearer <token>

使用 Bearer Token 认证。 格式: Authorization: Bearer sk-xxxxxx

In: header

Path Parameters

task_id*string

视频任务 ID

Response Body

video/mp4

application/json

curl -X GET "https://www.vibeapi.cn/v1/videos/string/content"
"string"
{
  "error": {
    "message": "string",
    "type": "string",
    "param": "string",
    "code": "string"
  }
}

最后更新于