Sora 2 异步 API 提供异步调用模式,适合批量处理、后台任务等场景,无需等待视频生成完成即可返回。

适用场景

  • 批量生成:一次提交多个视频生成任务
  • 后台处理:不阻塞主流程,后台完成生成
  • 长视频:生成时间较长的高质量视频
  • 队列管理:需要管理多个任务的场景

工作流程

1. 提交任务 → 获取任务 ID
2. 轮询状态 → 等待完成
3. 获取结果 → 下载视频

API 接口

提交任务

POST https://api.weelinking.com/v1/videos/generations
请求参数
参数类型必填说明
modelstringsora_video2sora_video2-landscape
promptstring视频描述
durationinteger视频时长(秒),5/10/15/20
asyncboolean设为 true 启用异步模式
响应
{
  "id": "task_xxxxxxxx",
  "status": "pending",
  "created_at": 1234567890
}

查询状态

GET https://api.weelinking.com/v1/videos/generations/{task_id}
状态值
状态说明
pending排队中
processing生成中
completed已完成
failed生成失败

使用示例

Python

import openai
import time

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.weelinking.com/v1"
)

# 1. 提交异步任务
response = client.post(
    "/videos/generations",
    body={
        "model": "sora_video2",
        "prompt": "一只猫在草地上奔跑,阳光明媚,慢动作",
        "duration": 10,
        "async": True
    }
)

task_id = response["id"]
print(f"任务已提交: {task_id}")

# 2. 轮询状态
while True:
    status = client.get(f"/videos/generations/{task_id}")

    if status["status"] == "completed":
        print(f"视频已生成: {status['video_url']}")
        break
    elif status["status"] == "failed":
        print("生成失败")
        break
    else:
        print(f"状态: {status['status']}")
        time.sleep(10)

定价

时长价格
5 秒$0.08/次
10 秒$0.15/次
15 秒$0.30/次
20 秒$0.50/次

最佳实践

轮询间隔

  • 短视频(5-10秒):每 5-10 秒轮询
  • 长视频(15-20秒):每 15-30 秒轮询

错误处理

try:
    status = client.get(f"/videos/generations/{task_id}")
    if status["status"] == "failed":
        error_msg = status.get("error", "未知错误")
        # 处理错误
except Exception as e:
    # 处理网络错误
    pass

常见问题

任务超时

长时间未完成的任务会自动取消,请检查提示词是否合规。

查询不到任务

任务 ID 有效期为 24 小时,过期后无法查询。