Sora-2 Video API

用 UniKeyX 生成 Sora-2 视频

Sora-2 视频生成是异步任务。提交提示词和视频规格后会返回任务 ID,客户端轮询状态,完成后再下载 MP4。 所有示例默认使用 https://api2.unikeyx.com/v1

Base URL
https://api2.unikeyx.com/v1
认证
Authorization: Bearer YOUR_UNIKEYX_API_KEY
创建任务
POST /videos
1

Official shape

Azure 官方接口定义怎么映射到 UniKeyX

Azure 原生 REST 预览接口 POST {endpoint}/openai/v1/video/generations/jobs?api-version=preview

请求体使用 promptmodelwidthheightn_secondsn_variants。 查询任务和下载内容分别使用 job ID 与 generation ID。

UniKeyX 对外兼容接口 POST https://api2.unikeyx.com/v1/videos

对终端用户隐藏 Azure 资源端点和 Azure API key,只保留 OpenAI 兼容的视频接口: 创建任务、按 ID 查询状态、按 ID 下载内容。

本文档按 UniKeyX 用户侧接口编写

Azure 官方文档中 Sora-2 属于预览能力,并提供原生 job API 与 OpenAI 兼容 SDK 示例。 UniKeyX 用户只需要使用本站的 /v1/videos 路径和 Bearer Token。

参考:Microsoft Learn Sora-2 概览Azure OpenAI v1 preview REST reference

2

Before request

调用前准备好 Key、模型名和视频规格

请求从服务端发起,不要把 API Key 放进浏览器前端。

用户侧只需要使用 UniKeyX API Key、选择模型、填写提示词和视频规格。视频生成是异步任务,创建后保存任务 ID 再轮询状态。

当前模型 sora-2

适合常规文生视频。建议先使用 720x12801280x720、4 到 8 秒。

3

Create video

创建 Sora-2 视频任务

文字生成视频
curl https://api2.unikeyx.com/v1/videos \
  -H "Authorization: Bearer YOUR_UNIKEYX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2",
    "prompt": "A cinematic vertical video of a futuristic city street after rain, neon reflections, slow camera push forward",
    "seconds": "4",
    "size": "720x1280"
  }'

成功响应

{
  "id": "task_xxxxxxxxxxxxx",
  "task_id": "task_xxxxxxxxxxxxx",
  "object": "video",
  "model": "sora-2",
  "status": "queued",
  "progress": 0,
  "seconds": "4",
  "size": "720x1280"
}

保存任务 ID

后续查询和下载都使用返回的 id。不要把用户 API Key 放到浏览器前端,也不要依赖供应商侧内部任务 ID。

4

Fetch result

查询状态并下载视频

查询任务状态
curl https://api2.unikeyx.com/v1/videos/task_xxxxxxxxxxxxx \
  -H "Authorization: Bearer YOUR_UNIKEYX_API_KEY"
下载 MP4
curl -L https://api2.unikeyx.com/v1/videos/task_xxxxxxxxxxxxx/content \
  -H "Authorization: Bearer YOUR_UNIKEYX_API_KEY" \
  -o sora-output.mp4
完成状态响应
{
  "id": "task_xxxxxxxxxxxxx",
  "task_id": "task_xxxxxxxxxxxxx",
  "object": "video",
  "model": "sora-2",
  "status": "completed",
  "progress": 100,
  "created_at": 1785000000,
  "completed_at": 1785000070,
  "expires_at": 1785086400,
  "seconds": "4",
  "size": "720x1280"
}
轮询间隔建议 10 到 20 秒

视频生成通常需要几十秒到数分钟。状态进入 completed 后请尽快下载或转存,生成任务和结果不会无限期保留。

5

Parameters

常用请求参数

model 必填。当前使用 sora-2
prompt 必填。建议用英文或拉丁字符语言描述主体、动作、镜头、场景、风格和限制。
seconds 可选。官方 Sora-2 预览能力支持 1 到 20 秒;建议先用 "4""8" 验证。
size 可选。建议使用 720x12801280x720
status 常见状态:queuedin_progresscompletedfailed

Troubleshooting

常见错误与处理

返回 401 或 Invalid token

检查请求头是否包含 Authorization: Bearer YOUR_UNIKEYX_API_KEY,并确认 API Key 没有被禁用。

提示 model not found 或模型不可用

检查 model 是否填写正确、API Key 是否有该模型调用权限,以及账户额度是否充足。

提示 size invalid

先使用 720x12801280x720,不要使用未列出的尺寸。

任务进入 failed

读取响应里的 error.message。常见原因包括内容安全策略拦截、提示词不合规、规格不支持或余额不足。

任务完成后下载失败

优先使用 /v1/videos/{id}/content 下载。结果可能有有效期,完成后建议尽快转存。