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 video

Video videos().create(VideoCreateParamsparams, RequestOptionsrequestOptions = RequestOptions.none())
POST/videos

Create a new video generation job from a prompt and optional reference assets.

ParametersExpand Collapse
VideoCreateParams params
String prompt

Text prompt that describes the video to generate.

minLength1
maxLength32000
Optional<InputReference> inputReference

Optional reference asset upload or reference object that guides generation.

Optional<VideoModel> model

The video generation model to use (allowed values: sora-2, sora-2-pro). Defaults to sora-2.

Optional<VideoSeconds> seconds

Clip duration in seconds (allowed values: 4, 8, 12). Defaults to 4 seconds.

Optional<VideoSize> size

Output resolution formatted as width x height (allowed values: 720x1280, 1280x720, 1024x1792, 1792x1024). Defaults to 720x1280.

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 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.VideoCreateParams;

public final class Main {
    private Main() {}

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

        VideoCreateParams params = VideoCreateParams.builder()
            .prompt("A calico cat playing a piano on stage")
            .build();
        Video video = client.videos().create(params);
    }
}
{
  "id": "video_123",
  "object": "video",
  "model": "sora-2",
  "status": "queued",
  "progress": 0,
  "created_at": 1712697600,
  "size": "1024x1792",
  "seconds": "8",
  "quality": "standard"
}
Returns Examples
{
  "id": "video_123",
  "object": "video",
  "model": "sora-2",
  "status": "queued",
  "progress": 0,
  "created_at": 1712697600,
  "size": "1024x1792",
  "seconds": "8",
  "quality": "standard"
}