跳转到主要内容

快速开始

视频生成是异步操作,整个流程分为三步:
1. 提交任务 → 获得 video_id
2. 轮询状态 → 等待 status 变为 completed
3. 下载视频 → 获取 MP4 文件
最简示例
# 第一步:提交视频生成任务
curl -X POST https://aihubmix.com/v1/videos \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan2.6-t2v",
    "prompt": "一只猫在钢琴上弹奏爵士乐,温暖的灯光,电影感镜头",
    "seconds": "5",
    "size": "1280x720"
  }'

# 响应示例:
# {
#   "id": "eyJtb2RlbCI6IndhbjI...",
#   "object": "video",
#   "status": "in_progress",
#   "model": "wan2.6-t2v",
#   "duration": 5,
#   "width": 1280,
#   "height": 720,
#   ...
# }

# 第二步:轮询查询状态(每 15 秒查询一次,直到 status 为 completed)
curl https://aihubmix.com/v1/videos/{video_id} \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY"

# 第三步:下载视频
curl https://aihubmix.com/v1/videos/{video_id}/content \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  --output video.mp4

接口概览

接口方法路径说明
创建视频POST/v1/videos提交视频生成任务
查询状态GET/v1/videos/{video_id}查询任务状态与进度
下载视频GET/v1/videos/{video_id}/content下载生成的 MP4 视频
删除任务DELETE/v1/videos/{video_id}删除视频任务
Base URL:https://aihubmix.com 认证方式:Bearer Token
Authorization: Bearer $AIHUBMIX_API_KEY

支持的模型

文生视频(Text-to-Video)

厂商模型名称特点
OpenAIsora-2标准视频生成,支持音画同步
OpenAIsora-2-pro高质量版本,更精致稳定的画面
Googleveo-3.1-generate-preview最新 Veo 3.1,原生音频,支持 4K
Googleveo-3.1-fast-generate-previewVeo 3.1 快速版,生成速度更快
Googleveo-3.0-generate-previewVeo 3.0,高保真视频
Googleveo-2.0-generate-001Veo 2.0,稳定版
阿里wan2.6-t2v通义万相最新版,音画同步
阿里wan2.5-t2v-preview通义万相 2.5,中文优化
阿里wan2.2-t2v-plus通义万相 2.2
即梦AIjimeng-3.0-pro即梦 3.0 Pro,1080P 高清
即梦AIjimeng-3.0-1080p即梦 3.0 1080P

图生视频(Image-to-Video)

厂商模型名称特点
阿里wan2.6-i2v通义万相最新版图生视频
阿里wan2.5-i2v-preview通义万相 2.5 图生视频
阿里wan2.2-i2v-plus通义万相 2.2 图生视频
图生视频需通过 input_reference 参数传入参考图片。

API 详细说明

请求头

Authorization: Bearer $AIHUBMIX_API_KEY
Content-Type: application/json

创建视频生成任务

POST /v1/videos

请求体

参数类型必填说明
modelstring模型名称,如 wan2.6-t2vsora-2
promptstring视频描述文本
secondsstring视频时长(秒),统一使用字符串类型,如 "5""8"(见各模型详解)
sizestring分辨率,格式 宽x高,如 1920x1080(各模型支持值不同)
input_referencestring/object参考图片(图生视频),支持 URL 或 base64
不同模型的响应格式略有差异,但都包含 id(video_id)和 status 字段。以 status 判断任务进度即可。

响应示例(通义万相/Veo/即梦AI

{
  "id": "eyJtb2RlbCI6IndhbjI...",
  "object": "video",
  "created": 1772460274,
  "model": "wan2.6-t2v",
  "status": "in_progress",
  "prompt": "一只猫在窗台上看雨",
  "duration": 5,
  "width": 1920,
  "height": 1080,
  "url": null,
  "error": null
}
响应示例(Sora)
{
  "id": "eyJtb2RlbCI6InNvcmEtMi...",
  "object": "video",
  "created_at": 1772451930,
  "status": "queued",
  "model": "sora-2",
  "progress": 0,
  "prompt": "A cinematic drone shot over mountains",
  "seconds": "8",
  "size": "1280x720"
}

通用状态值说明

状态说明
queued排队中(Sora 特有)
in_progress生成中
completed生成完成,可以下载
failed生成失败

查询视频状态

GET /v1/videos/{video_id}
轮询此接口检查任务是否完成。建议每 15 秒 查询一次。

响应示例(生成完成 - 通义万相)

{
  "id": "eyJtb2RlbCI6IndhbjI...",
  "object": "video",
  "status": "completed",
  "model": "wan2.5-t2v-preview",
  "duration": 5,
  "width": 1920,
  "height": 1080,
  "url": "https://aihubmix.com/v1/videos/eyJtb2RlbCI6IndhbjI.../content",
  "error": null
}

响应示例(生成完成 - Sora)

{
  "id": "eyJtb2RlbCI6InNvcmEtMi...",
  "object": "video",
  "created_at": 1772451930,
  "status": "completed",
  "completed_at": 1772452114,
  "expires_at": 1772538330,
  "model": "sora-2",
  "progress": 100,
  "prompt": "A cinematic drone shot over mountains",
  "seconds": "8",
  "size": "1280x720"
}
所有模型均通过 status == "completed" 判断完成状态,然后调用 /content 接口下载。

下载视频内容

GET /v1/videos/{video_id}/content
当状态为 completed 后,调用此接口下载 MP4 视频文件。 响应: 直接返回视频二进制流Content-Type: video/mp4)。
curl https://aihubmix.com/v1/videos/{video_id}/content \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  --output my_video.mp4
注意:视频下载链接通常有 24 小时有效期,请及时下载保存。

删除视频任务

该接口用于删除已创建的视频任务。
DELETE /v1/videos/{video_id}

各模型参数详解

OpenAI Sora

参数支持值
模型sora-2sora-2-pro
时长 (seconds)"4"(默认)、"8""12"
分辨率 (size)720x1280(默认)、1280x7201024x17921792x1024
图生视频支持,通过 input_reference 传入图片
提示:所有模型的 seconds 参数统一使用字符串类型传入(如 "8")。
示例
curl -X POST https://aihubmix.com/v1/videos \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2",
    "prompt": "A cinematic drone shot soaring over a misty mountain range at sunrise, golden light filtering through the clouds",
    "seconds": "8",
    "size": "1280x720"
  }'

Google Veo

参数支持值
模型veo-3.1-generate-preview(推荐)、veo-3.1-fast-generate-preview(快速)、veo-3.0-generate-previewveo-2.0-generate-001
时长 (seconds)Veo 3/3.1:"4""6""8";Veo 2:"5"~"8"(默认 "8"
分辨率 (size)720p(默认)、1080p4k(4K 仅 Veo 3+),或像素格式如 1280x7201920x1080
宽高比16:9(默认)、9:16
图生视频支持,通过 input_reference 传入首帧图片(Veo 3.1),使用时 seconds 固定为 "8"
示例
curl -X POST https://aihubmix.com/v1/videos \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1-generate-preview",
    "prompt": "一个宁静的日式庭院,樱花花瓣缓缓飘落,锦鲤在池塘中游动,背景传来悠扬的风铃声",
    "seconds": "8",
    "size": "1280x720"
  }'
提示:Veo 支持原生音频生成,可在 prompt 中描述音效,如”背景传来鸟鸣声”、“钢琴旋律”。

通义万相

参数支持值
文生视频模型wan2.6-t2v(推荐)、wan2.5-t2v-previewwan2.2-t2v-plus
图生视频模型wan2.6-i2v(推荐)、wan2.5-i2v-previewwan2.2-i2v-plus
时长 (seconds)因模型而异(见下方说明),默认 "5"
分辨率 (size)见下方表格,x* 分隔符均可(如 1920x10801920*1080
图生视频通过 input_reference 传入图片 URL 或 base64
各模型支持的时长
模型seconds 可选值默认值
wan2.6-t2v / wan2.6-i2v"2"~"15"(任意整数值)"5"
wan2.5-t2v-preview / wan2.5-i2v-preview"5""10""5"
wan2.2-t2v-plus / wan2.2-i2v-plus"5"(固定)"5"
支持的分辨率(宽*高)
清晰度可选分辨率
480P832x480480x832624x624
720P1280x720(默认)、720x1280960x9601088x832(4:3)、832x1088(3:4)
1080P1920x10801080x19201440x14401632x1248(4:3)、1248x1632(3:4)
注意:wan2.6 仅支持 720P 和 1080P;wan2.5 支持 480P、720P、1080P;wan2.2 仅支持 480P 和 1080P。
示例
curl -X POST https://aihubmix.com/v1/videos \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan2.6-t2v",
    "prompt": "一条蜿蜒的小溪穿过秋天的森林,金黄色的落叶飘落在水面上,阳光透过树叶洒下斑驳的光影",
    "seconds": "5",
    "size": "1920x1080"
  }'
提示:wan2.5 及以上版本默认生成有声视频(自动配音),中文 prompt 效果更佳。

即梦 AI

参数支持值
模型jimeng-3.0-pro(推荐)、jimeng-3.0-1080p
时长 (seconds)"5""10"(默认 "5"
分辨率 (size)支持宽高比格式或像素格式
图生视频支持,通过 input_reference 传入图片 URL 或 base64
支持的宽高比与对应分辨率
宽高比 (size)实际分辨率
16:91920x10801920×1088
9:161080x19201088×1920
4:31664x12481664×1248
3:41248x16641248×1664
1:11440x14401440×1440
21:92176x9282176×928
示例
curl -X POST https://aihubmix.com/v1/videos \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jimeng-3.0-pro",
    "prompt": "一位身穿汉服的少女在竹林间翩翩起舞,长裙随风飘动,背景是淡淡的晨雾",
    "seconds": "5",
    "size": "16:9"
  }'

完整调用示例

import requests
import time

API_KEY = "AIHUBMIX_API_KEY"
BASE_URL = "https://aihubmix.com"
HEADERS = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

# 第一步:创建视频生成任务
response = requests.post(
    f"{BASE_URL}/v1/videos",
    headers=HEADERS,
    json={
        "model": "wan2.6-t2v",
        "prompt": "一片星空下的沙漠,流星划过夜空,远处篝火的光芒在微风中摇曳",
        "seconds": "5",
        "size": "1920x1080"
    }
)
result = response.json()
video_id = result["id"]
print(f"任务已创建,video_id: {video_id}")

# 第二步:轮询查询状态
while True:
    status_response = requests.get(
        f"{BASE_URL}/v1/videos/{video_id}",
        headers=HEADERS
    )
    status_data = status_response.json()
    current_status = status_data["status"]
    print(f"当前状态: {current_status}")

    if current_status == "completed":
        print("视频生成完成!")
        break
    elif current_status == "failed":
        error_msg = status_data.get("error", {})
        if isinstance(error_msg, dict):
            error_msg = error_msg.get("message", "未知错误")
        print(f"生成失败: {error_msg}")
        break

    time.sleep(15)  # 每 15 秒查询一次

# 第三步:下载视频
video_response = requests.get(
    f"{BASE_URL}/v1/videos/{video_id}/content",
    headers=HEADERS
)
with open("output.mp4", "wb") as f:
    f.write(video_response.content)
print(f"视频已保存为 output.mp4({len(video_response.content) / 1024 / 1024:.1f} MB)")

FAQ

视频生成需要多长时间?

视频生成通常需要 1-5 分钟,具体时间取决于模型、分辨率和时长。建议设置 15 秒的轮询间隔。

input_reference 参数怎么用?

input_reference 用于图生视频场景,支持三种传入方式:
// 方式一:直接传入图片 URL
"input_reference": "https://example.com/image.jpg"

// 方式二:传入 base64 编码的图片(对象格式)
"input_reference": {
  "mime_type": "image/jpeg",
  "data": "<BASE64_ENCODED_IMAGE>"
}

// 方式三:传入 data URL
"input_reference": "data:image/jpeg;base64,<BASE64_ENCODED_IMAGE>"

视频下载链接有效期是多久?

生成的视频下载链接通常有 24 小时 有效期,请及时下载保存。

各模型seconds 参数有什么区别?

模型可选值默认值
Sora (sora-2 / sora-2-pro)"4", "8", "12""4"
Veo 3/3.1 (veo-3.1-generate-preview 等)"4", "6", "8""8"
Veo 2 (veo-2.0-generate-001)"5"~"8""8"
通义万相 wan2.6"2"~"15""5"
通义万相 wan2.5"5", "10""5"
通义万相 wan2.2"5"(固定)"5"
即梦AI (jimeng-3.0-pro 等)"5", "10""5"
> 提示:所有模型的 seconds 参数统一使用字符串类型传入(如 "8"),API 会自动处理。

不同模型size 参数格式有什么区别?

模型支持的 size 值
Sora1280x720720x12801024x17921792x1024
Veo像素格式1280x720 等)或分辨率标签720p1080p4k
通义万相像素格式x* 均可(如 1920x10801920*1080
即梦 AI宽高比格式16:99:16 等)或像素格式
### seconds duration 有什么区别? 两者含义相同,均表示视频时长。API 同时支持这两个参数名(Sora 除外,Sora 只接受 seconds)。推荐统一使用 seconds

如何编写更好的 prompt?

  • 描述具体场景:包含主体、动作、环境、光线、氛围
  • 指定镜头语言:如”特写”、“航拍”、“推镜头”、“慢动作”
  • 描述风格:如”电影感”、“纪录片风格”、“动画风格”
  • 中文模型用中文 prompt 效果更好:通义万相针对中文优化
  • Veo 支持音频描述:可在 prompt 中描述声音,如”鸟鸣声”、“钢琴旋律”

任务失败怎么处理?

statusfailed 时,响应中的 error 字段会包含错误信息:
{
  "status": "failed",
  "error": {
    "message": "Video generation failed due to content policy violation",
    "type": "video_generation_error"
  }
}
常见失败原因包括:内容违规、prompt 过长、图片格式不支持等。请根据错误信息调整后重试。