Skip to content

视频生成

视频生成为异步任务模式:提交任务后获得任务 ID,通过轮询查询状态,完成后下载视频内容。

完整流程

提交任务 → 获得 task_id → 轮询状态 → 状态变为 completed → 下载视频

第一步:提交任务

POST /v1/videos

请求参数

参数类型必填说明
modelstring视频生成模型,如 sora-2kling-v2wan-2.1
promptstring视频内容描述提示词
secondsstring视频时长(秒),如 "5""8""10"
sizestring视频分辨率,如 "1920x1080""1280x720"
image_urlstring参考图片 URL(图生视频时使用)

示例

bash
curl https://api.idreame.com/v1/videos \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxx" \
  -d '{
    "model": "kling-v2",
    "prompt": "一只柯基犬在夕阳下的海滩上冲浪,慢动作,电影质感",
    "seconds": "8"
  }'

响应示例

json
{
  "id": "video_abc123",
  "object": "video",
  "status": "pending",
  "created": 1752600000,
  "model": "kling-v2",
  "prompt": "一只柯基犬在夕阳下的海滩上冲浪,慢动作,电影质感"
}

第二步:轮询状态

GET /v1/videos/{video_id}

bash
curl https://api.idreame.com/v1/videos/video_abc123 \
  -H "Authorization: Bearer sk-xxxxxxxx"

任务状态说明

status含义
pending排队等待中
processing生成中
completed已完成,可下载
failed生成失败,查看 error 字段

完成时的响应

json
{
  "id": "video_abc123",
  "object": "video",
  "status": "completed",
  "created": 1752600000,
  "completed_at": 1752600120,
  "model": "kling-v2",
  "prompt": "一只柯基犬在夕阳下的海滩上冲浪,慢动作,电影质感",
  "video_url": "https://cdn.idreame.com/videos/video_abc123.mp4",
  "duration": 8,
  "usage": { "total_credits": 10 }
}

第三步:下载视频

bash
curl https://api.idreame.com/v1/videos/video_abc123/content \
  -H "Authorization: Bearer sk-xxxxxxxx" \
  --output my_video.mp4

Python 完整示例

python
import time
import httpx
from openai import OpenAI

API_KEY = "sk-xxxxxxxx"
BASE_URL = "https://api.idreame.com/v1"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json",
}

# 1. 提交任务
resp = httpx.post(
    f"{BASE_URL}/videos",
    headers=headers,
    json={
        "model": "kling-v2",
        "prompt": "一只柯基犬在夕阳下的海滩上冲浪,慢动作,电影质感",
        "seconds": "8",
    },
)
video_id = resp.json()["id"]
print(f"任务已提交,ID: {video_id}")

# 2. 轮询状态
while True:
    status_resp = httpx.get(
        f"{BASE_URL}/videos/{video_id}",
        headers={"Authorization": f"Bearer {API_KEY}"},
    )
    data = status_resp.json()
    status = data["status"]
    print(f"状态: {status}")

    if status == "completed":
        print(f"视频 URL: {data['video_url']}")
        break
    elif status == "failed":
        print(f"生成失败: {data.get('error')}")
        break

    time.sleep(5)  # 每 5 秒轮询一次

可用视频模型

模型最大时长分辨率特点
kling-v210s1280×720 / 1920×1080运动流畅,写实风格
wan-2.18s720×480 – 1280×720中文提示词优化
sora-220s480p – 1080pOpenAI 官方,高质量

TIP

视频生成耗时通常为 30 秒到 3 分钟不等,具体取决于模型和视频时长。建议轮询间隔设为 5–10 秒。

基于 OpenAI 兼容协议 · 多模态算力网关