Skip to content
Primary navigation

Create an extension of a completed video.

$ openai videos extend
POST/videos/extensions

Create an extension of a completed video.

ParametersExpand Collapse
--prompt: string

Updated text prompt that directs the extension generation.

--seconds: "4" or "8" or "12"

Length of the newly generated extension segment in seconds (allowed values: 4, 8, 12, 16, 20).

--video: string or object { id }

Reference to the completed video to extend.

ReturnsExpand Collapse
video: object { id, completed_at, created_at, 10 more }

Structured information describing a generated video job.

id: string

Unique identifier for the video job.

completed_at: number

Unix timestamp (seconds) for when the job completed, if finished.

created_at: number

Unix timestamp (seconds) for when the job was created.

error: object { code, message }

Error payload that explains why generation failed, if applicable.

code: string

A machine-readable error code that was returned.

message: string

A human-readable description of the error that was returned.

expires_at: number

Unix timestamp (seconds) for when the downloadable assets expire, if set.

model: string or "sora-2" or "sora-2-pro" or "sora-2-2025-10-06" or 2 more

The video generation model that produced the job.

"sora-2"
"sora-2-pro"
"sora-2-2025-10-06"
"sora-2-pro-2025-10-06"
"sora-2-2025-12-08"
object: "video"

The object type, which is always video.

progress: number

Approximate completion percentage for the generation task.

prompt: string

The prompt that was used to generate the video.

remixed_from_video_id: string

Identifier of the source video if this video is a remix.

seconds: string or VideoSeconds

Duration of the generated clip in seconds. For extensions, this is the stitched total duration.

"4"
"8"
"12"
size: "720x1280" or "1280x720" or "1024x1792" or "1792x1024"

The resolution of the generated video.

"720x1280"
"1280x720"
"1024x1792"
"1792x1024"
status: "queued" or "in_progress" or "completed" or "failed"

Current lifecycle status of the video job.

"queued"
"in_progress"
"completed"
"failed"

Create an extension of a completed video.

openai videos extend \
  --api-key 'My API Key' \
  --prompt x \
  --seconds 4 \
  --video 'Example data'
{
  "id": "id",
  "completed_at": 0,
  "created_at": 0,
  "error": {
    "code": "code",
    "message": "message"
  },
  "expires_at": 0,
  "model": "string",
  "object": "video",
  "progress": 0,
  "prompt": "prompt",
  "remixed_from_video_id": "remixed_from_video_id",
  "seconds": "string",
  "size": "720x1280",
  "status": "queued"
}
Returns Examples
{
  "id": "id",
  "completed_at": 0,
  "created_at": 0,
  "error": {
    "code": "code",
    "message": "message"
  },
  "expires_at": 0,
  "model": "string",
  "object": "video",
  "progress": 0,
  "prompt": "prompt",
  "remixed_from_video_id": "remixed_from_video_id",
  "seconds": "string",
  "size": "720x1280",
  "status": "queued"
}