Skip to content
For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Primary navigation

Create an extension of a completed video.

Video videos().extend(VideoExtendParamsparams, RequestOptionsrequestOptions = RequestOptions.none())
POST/videos/extensions

Create an extension of a completed video.

ParametersExpand Collapse
VideoExtendParams params
String prompt

Updated text prompt that directs the extension generation.

minLength1
maxLength32000
VideoSeconds seconds

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

Video video

Reference to the completed video to extend.

ReturnsExpand Collapse
class Video:

Structured information describing a generated video job.

String id

Unique identifier for the video job.

Optional<Long> completedAt

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

formatunixtime
long createdAt

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

formatunixtime
Optional<VideoCreateError> error

Error payload that explains why generation failed, if applicable.

Optional<Long> expiresAt

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

formatunixtime
VideoModel model

The video generation model that produced the job.

JsonValue; object_ "video"constant"video"constant

The object type, which is always video.

long progress

Approximate completion percentage for the generation task.

Optional<String> prompt

The prompt that was used to generate the video.

Optional<String> remixedFromVideoId

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

VideoSeconds seconds

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

The resolution of the generated video.

Status status

Current lifecycle status of the video job.

Create an extension of a completed video.

package com.openai.example;

import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.videos.Video;
import com.openai.models.videos.VideoExtendParams;
import com.openai.models.videos.VideoSeconds;
import java.io.ByteArrayInputStream;
import java.io.InputStream;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        OpenAIClient client = OpenAIOkHttpClient.fromEnv();

        VideoExtendParams params = VideoExtendParams.builder()
            .prompt("x")
            .seconds(VideoSeconds._4)
            .video(new ByteArrayInputStream("Example data".getBytes()))
            .build();
        Video video = client.videos().extend(params);
    }
}
{
  "id": "id",
  "completed_at": 0,
  "created_at": 0,
  "error": {
    "code": "code",
    "message": "message"
  },
  "expires_at": 0,
  "model": "sora-2",
  "object": "video",
  "progress": 0,
  "prompt": "prompt",
  "remixed_from_video_id": "remixed_from_video_id",
  "seconds": "4",
  "size": "720x1280",
  "status": "queued"
}
Returns Examples
{
  "id": "id",
  "completed_at": 0,
  "created_at": 0,
  "error": {
    "code": "code",
    "message": "message"
  },
  "expires_at": 0,
  "model": "sora-2",
  "object": "video",
  "progress": 0,
  "prompt": "prompt",
  "remixed_from_video_id": "remixed_from_video_id",
  "seconds": "4",
  "size": "720x1280",
  "status": "queued"
}