OpenAI/Sora-2

本文介绍 sora-2 视频模型的4个核心 API(异步提交任务、查询任务状态、下载视频、remix),需特别说明:本接口与此前 submit 接口调用方式不同,与 OpenAI 官方接口调用方式完全一致,模型功能无差异。以下详细说明各接口的请求地址、输入输出参数、调用示例及响应说明,供接口使用时查阅参考。

1. 认证方式

所有接口均采用 API Key 认证,统一使用 Authorization 请求头,格式如下:

Authorization: Bearer $OPENAI\_API\_KEY

说明:将 $OPENAI\_API\_KEY 替换为您实际的 API Key 即可完成认证,确保接口调用权限。

2. 异步提交任务接口

该接口用于提交 sora-2 模型视频生成异步任务,支持传入提示词、首帧图、尺寸、时长等参数,提交成功后返回任务唯一标识及基础任务信息,后续可通过该标识查询任务状态、下载视频或进行 remix 操作。

2.1 接口地址

http://api.modelverse.cn/v1/videos

2.2 输入参数

参数 类型 是否必选 描述
model string 模型名称,固定为 sora\-2
prompt string 提示词,用于指导视频生成,需明确描述视频风格、人物动作、场景等要求
size string 生成视频的尺寸(分辨率),可选值:720x1280、1280x720,未传入时使用默认值
duration string 视频生成时长(单位:秒),可选值:4、8、12,未传入时使用默认值
input_reference string 首帧图,支持上传本地图片文件(如请求示例中所示)

2.3 调用注意事项

如果您使用 Windows 系统,建议使用 Postman 或其他 API 调用工具,避免命令行调用出现兼容问题。

2.4 请求示例(curl)

curl -X POST "http://api.modelverse.cn/v1/videos" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: multipart/form-data" \
  -F prompt="She turns around and smiles, then slowly walks out of the frame." \
  -F model="sora-2" \
  -F size="1280x720" \
  -F seconds="8" \
  -F input_reference="@sample_720p.jpeg;type=image/jpeg"

2.5 输出参数

参数 类型 描述
id string 异步任务的唯一标识,用于后续查询任务状态、下载视频、remix 操作
object string 任务类型,固定返回 video
model string 模型名称,返回 sora\-2
status string 任务状态,可选值:queued(排队中)、in_progress(执行中)、completed(完成)、failed(失败)
progress int 任务进度,取值范围 0-100,反映任务执行进度
size string 生成视频的分辨率,与请求时传入的 size 一致(未传入时为默认值)
seconds string 视频生成时长(单位:秒),与请求时传入的 duration 一致(未传入时为默认值)

2.6 响应示例

{
    "id": "video_456",
    "object": "video",
    "model": "sora-2",
    "status": "queued",
    "progress": 0,
    "created_at": 1712698600,
    "size": "720x1280",
    "seconds": "8"
}

3. 查询任务状态接口

该接口用于查询已提交异步任务的执行状态、进度及相关配置信息,需传入异步提交任务时返回的唯一标识(id)作为查询参数。

3.1 接口地址

https://api.modelverse.cn/v1/videos/<task_id>

说明:将 \&lt;task\_id\&gt; 替换为异步提交任务接口返回的实际 id(如 video_456),即可发起查询。

3.2 输入参数

输入参数通过 URL 路径参数传递,具体说明如下:

参数 类型 是否必选 描述
task_id string 异步任务的唯一标识,由异步提交任务接口返回,用于定位查询具体任务

3.3 请求示例(curl)

curl --location 'https://api.modelverse.cn/v1/videos/video_6982fa1cd4f081908b619dc53cfc2435' \
-H "Authorization: Bearer $OPENAI_API_KEY"

3.4 输出参数

输出参数与异步提交任务接口的输出参数一致,详细说明见 2.5 输出参数。

3.5 响应示例

3.5.1 成功响应示例

{
  "id": "video_456",
  "object": "video",
  "model": "sora-2",
  "status": "queued",
  "progress": 0,
  "created_at": 1712698600,
  "size": "720x1280",
  "seconds": "8"
}

3.5.2 失败响应示例

{
  "error": {
    "message": "error",
    "type": "invalid_request_error",
    "param": null,
    "code": null
  }
}

4. 下载视频接口

该接口用于下载已完成(status 为 completed)的视频生成结果,需传入任务唯一标识(task_id),仅当任务完成时可正常下载,未完成时返回异常信息。

4.1 接口地址

https://api.modelverse.cn/v1/videos/<task_id>/content

说明:将 \&lt;task\_id\&gt; 替换为异步提交任务接口返回的实际 id,且确保任务状态为 completed。

4.2 输入参数

输入参数通过 URL 路径参数传递,具体说明如下:

参数 类型 是否必选 描述
task_id string 异步任务的唯一标识,用于定位要下载的视频任务,且任务状态需为 completed

4.3 请求示例(curl)

curl --location 'https://api.modelverse.cn/v1/videos/<task_id>/content' \
-H "Authorization: Bearer $OPENAI_API_KEY"
--output video.mp4

4.4 响应说明

4.4.1 正常返回

当任务状态为 completed 时,接口返回视频二进制流,可通过 \-\-output 指令指定保存路径及文件名(如示例中的 video.mp4)。

4.4.2 异常返回

当任务未完成(状态为 queued、in_progress)或任务失败(status 为 failed)时,返回异常信息,示例如下:

{
    "error": {
        "message": "task is not completed yet, current status: Pending",
        "type": "invalid_request_error"
    }
}

5. remix 接口

该接口用于基于已有的视频任务(task_id)进行二次生成(remix),需传入新的提示词,生成新的视频任务,返回新的任务标识及基础信息。

5.1 接口地址

https://api.modelverse.cn/v1/videos/<task_id>/remix

说明:将 \&lt;task\_id\&gt; 替换为已存在的视频任务唯一标识,基于该任务进行 remix 操作。

5.2 输入参数

输入参数通过请求体(JSON 格式)传递,具体说明如下:

参数 类型 是否必选 描述
prompt string 新的提示词,用于指导 remix 视频生成(如修改视频风格、动作等),不可为空

5.3 请求示例(curl)

curl -X POST "https://api.modelverse.cn/v1/videos/<task_id>/remix" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "赛博朋克风格"
  }'

5.4 响应说明

5.4.1 正常返回

remix 任务提交成功后,返回新的视频任务信息,包含新的任务标识、状态及原任务标识,示例如下:

{
  "id": "video_456",
  "object": "video",
  "model": "sora-2",
  "status": "queued",
  "progress": 0,
  "created_at": 1712698600,
  "size": "720x1280",
  "seconds": "8",
  "remixed_from_video_id": "video_123"
}

说明:remixed\_from\_video\_id 字段表示当前 remix 任务基于的原视频任务标识。

5.4.2 异常返回

当输入参数不合法(如 prompt 为空)时,返回异常信息,示例如下:

{
    "error": {
        "message": "Invalid param: prompt is required",
        "type": "invalid_request_error",
        "param": "6217f8ed-396d-434a-9b78-96775c0d2f99",
        "code": "param_error"
    }
}