Videos
视频生成接口采用 异步任务 模式:创建任务 → 轮询进度 → 下载内容。与 Chat Completions 不同,不会在一次请求中直接返回最终视频文件。
注意
视频接口为异步任务模式,请勿按文本接口方式期望同步返回完整内容。是否开放以 控制台 为准。
调用流程
| 步骤 | 方法 | 地址 |
|---|---|---|
| 1. 创建任务 | POST | https://raivip.com/v1/videos |
| 2. 查询进度 | GET | https://raivip.com/v1/videos/{video_id} |
| 3. 下载内容 | GET | https://raivip.com/v1/videos/{video_id}/content |
- 创建任务:
POST https://raivip.com/v1/videos,返回包含id(video_id)的任务对象。 - 查询进度:
GET https://raivip.com/v1/videos/{video_id},根据status、progress判断是否完成。 - 下载内容:任务
completed后,GET .../content下载视频或缩略图。
创建任务请求字段
| 字段 | 必填 | 说明 |
|---|---|---|
prompt | 是 | 描述要生成视频的文本 |
model | 否 | 视频模型,如 sora-2、sora-2-pro(默认 sora-2) |
seconds | 否 | 时长:4、8、12(默认 4) |
size | 否 | 分辨率:720x1280、1280x720、1024x1792、1792x1024(默认 720x1280) |
input_reference | 否 | 参考图,可为 image_url 或 file_id |
cURL 示例
bash
curl https://raivip.com/v1/videos \
-H "Authorization: Bearer sk-xxxxxxxx" \
-F model="sora-2" \
-F prompt="A calico cat playing a piano on stage" \
-F seconds="8" \
-F size="1280x720"Node.js SDK 示例
javascript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-xxxxxxxx",
baseURL: "https://raivip.com/v1",
});
const video = await client.videos.create({
model: "sora-2",
prompt: "A calico cat playing a piano on stage",
seconds: "8",
size: "1280x720",
});
console.log(video);TIP
安装 Node.js SDK:npm install openai
创建成功返回示例
json
{
"id": "video_123",
"object": "video",
"model": "sora-2",
"status": "queued",
"progress": 0,
"created_at": 1712697600,
"size": "1280x720",
"seconds": "8",
"quality": "standard"
}查询任务进度
建议每 10~20 秒 轮询一次 GET https://raivip.com/v1/videos/{video_id}。
| 字段 | 说明 |
|---|---|
id | 视频任务 ID |
object | 固定为 video |
status | queued、in_progress、completed、failed |
progress | 大致完成百分比 |
created_at | 创建时间(Unix 秒) |
completed_at | 完成时间(完成后返回) |
expires_at | 下载资源过期时间 |
prompt | 本次任务使用的提示词 |
error.code | 失败时的错误码 |
error.message | 失败时的错误说明 |
进度返回示例
排队中:
json
{
"id": "video_123",
"object": "video",
"status": "queued",
"progress": 0,
"created_at": 1712697600,
"model": "sora-2",
"seconds": "8",
"size": "1280x720"
}处理中:
json
{
"id": "video_123",
"object": "video",
"status": "in_progress",
"progress": 33,
"created_at": 1712697600,
"model": "sora-2",
"seconds": "8",
"size": "1280x720"
}已完成:
json
{
"id": "video_123",
"object": "video",
"status": "completed",
"progress": 100,
"created_at": 1712697600,
"completed_at": 1712697815,
"expires_at": 1712701415,
"model": "sora-2",
"prompt": "A calico cat playing a piano on stage",
"seconds": "8",
"size": "1280x720"
}失败:
json
{
"id": "video_123",
"object": "video",
"status": "failed",
"progress": 12,
"created_at": 1712697600,
"model": "sora-2",
"seconds": "8",
"size": "1280x720",
"error": {
"code": "invalid_reference_image",
"message": "Input images with human faces are currently rejected."
}
}说明
以上已完成、失败示例根据 OpenAI 官方返回字段整理,具体字段组合与数值请以实际接口返回为准。
下载视频内容
通过 variant 查询参数指定下载类型,默认返回 MP4 视频:
| 参数 | 说明 |
|---|---|
variant=video | 下载视频文件(默认) |
variant=thumbnail | 下载缩略图 |
variant=spritesheet | 下载精灵图 |
下载视频
bash
curl https://raivip.com/v1/videos/video_123/content \
-H "Authorization: Bearer sk-xxxxxxxx" \
--output video.mp4下载缩略图
bash
curl "https://raivip.com/v1/videos/video_123/content?variant=thumbnail" \
-H "Authorization: Bearer sk-xxxxxxxx" \
--output thumbnail.webp可选:Webhook 回调
除轮询外,可配置 Webhook 接收任务结果通知:
| 事件 | 说明 |
|---|---|
video.completed | 视频生成成功 |
video.failed | 任务失败 |
回调示例:
json
{
"id": "evt_abc123",
"object": "event",
"created_at": 1758941485,
"type": "video.completed",
"data": {
"id": "video_abc123"
}
}参考文档
返回 OpenAI API 概览。