Skip to content

Remix video

Video videos().remix(VideoRemixParamsparams, RequestOptionsrequestOptions = RequestOptions.none())
POST/videos/{video_id}/remix

Create a video remix

ParametersExpand Collapse
VideoRemixParams params
Optional<String> videoId
String prompt

Updated text prompt that directs the remix generation.

maxLength32000
minLength1
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.

long createdAt

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

Optional<VideoCreateError> error

Error payload that explains why generation failed, if applicable.

String code

A machine-readable error code that was returned.

String message

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

Optional<Long> expiresAt

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

VideoModel model

The video generation model that produced the job.

Accepts one of the following:
SORA_2("sora-2")
SORA_2_PRO("sora-2-pro")
SORA_2_2025_10_06("sora-2-2025-10-06")
SORA_2_PRO_2025_10_06("sora-2-pro-2025-10-06")
SORA_2_2025_12_08("sora-2-2025-12-08")
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.

Accepts one of the following:
_4("4")
_8("8")
_12("12")

The resolution of the generated video.

Accepts one of the following:
_720X1280("720x1280")
_1280X720("1280x720")
_1024X1792("1024x1792")
_1792X1024("1792x1024")
Status status

Current lifecycle status of the video job.

Accepts one of the following:
QUEUED("queued")
IN_PROGRESS("in_progress")
COMPLETED("completed")
FAILED("failed")

Remix 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.VideoRemixParams;

public final class Main {
    private Main() {}

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

        VideoRemixParams params = VideoRemixParams.builder()
            .videoId("video_123")
            .prompt("x")
            .build();
        Video video = client.videos().remix(params);
    }
}
{
  "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": "4",
  "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": "4",
  "size": "720x1280",
  "status": "queued"
}