跳到主要内容

Sora 2 异步 API

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 小时,过期后无法查询。