Skip to content

Videos

视频生成接口采用 异步任务 模式:创建任务 → 轮询进度 → 下载内容。与 Chat Completions 不同,不会在一次请求中直接返回最终视频文件。

注意

视频接口为异步任务模式,请勿按文本接口方式期望同步返回完整内容。是否开放以 控制台 为准。

调用流程

步骤方法地址
1. 创建任务POSThttps://raivip.com/v1/videos
2. 查询进度GEThttps://raivip.com/v1/videos/{video_id}
3. 下载内容GEThttps://raivip.com/v1/videos/{video_id}/content
  1. 创建任务POST https://raivip.com/v1/videos,返回包含 idvideo_id)的任务对象。
  2. 查询进度GET https://raivip.com/v1/videos/{video_id},根据 statusprogress 判断是否完成。
  3. 下载内容:任务 completed 后,GET .../content 下载视频或缩略图。

创建任务请求字段

字段必填说明
prompt描述要生成视频的文本
model视频模型,如 sora-2sora-2-pro(默认 sora-2
seconds时长:4812(默认 4
size分辨率:720x12801280x7201024x17921792x1024(默认 720x1280
input_reference参考图,可为 image_urlfile_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
statusqueuedin_progresscompletedfailed
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 概览

Rai VIP API 文档