How to merge Sora2 videos

Hi guys, just wondering how to generate longer videos than 12 seconds with Sora2.
must be with full context.
Thanks

2 Likes

You and me both. Our only use case for Sora 2 Pro requires a minimum of 60 seconds.

I think any increase in video duration will gradually happen over time. Merging videos smoothly may be problematic.

What do u mean ?
can i make 60 seconds video with Sora 2 pro ?

A minute of Sora? Only seen in early evaluators’ demos.

We can go right to the API reference - the validation done, to see what can be requested.

How about a better API reference for the video creation lifecycle?

Create (POST /videos)

parameter [optional /required] type [enum or range] description
model [optional] string
enum: sora-2,sora-2-pro
Video generation model; default sora-2.
prompt [required] string
length: 1–32000
Text prompt describing the video to generate.
input_reference [optional] binary file Optional guiding image; use multipart/form-data only.
seconds [optional] string
enum: β€˜4’,β€˜8’,β€˜12’
Target clip duration; default β€˜4’.
size [optional] string
enum: 720x1280,1280x720,1024x1792,1792x1024
Output resolution; default 720x1280.

GET/ POLL

get https://api.openai.com/v1/videos/{video_id}

Response object shape (Video job; for both create and retrieve)

field type [enum or range] description
id [required] string Unique job identifier.
object [required] string
const: video
Object type.
model [required] string
enum: sora-2,sora-2-pro
Echoed model.
status [required] string
enum: queued,in_progress,completed,failed
Lifecycle status.
progress [required] integer Approximate completion percent.
created_at [required] integer Unix timestamp (s).
completed_at [required] integer null
expires_at [required] integer null
size [required] string
enum: 720x1280,1280x720,1024x1792,1792x1024
Echoed resolution.
seconds [required] string
enum: β€˜4’,β€˜8’,β€˜12’
Echoed duration.
remixed_from_video_id [required] string null
error [required] object{code:string,message:string} null

Retrieve video content (GET /videos/{video_id}/content)

Request parameters

parameter [optional or required] type [enum or range] description
video_id [required] string PATH - The identifier of the video to download.
variant [optional] string
enum: video,thumbnail,spritesheet
QUERY - Which asset to return; default video.

200 OK response (by variant)

variant Content-Type body notes
video (default) video/mp4 binary Final MP4 render stream.
thumbnail image/webp binary Representative still image.
spritesheet image/webp binary Preview spritesheet image.
N/A (non-binary cases) application/json string May return textual JSON instead of bytes in edge conditions.

Remix (POST /videos/{video_id}/remix)

parameter [optional or required] type [enum or range] description
video_id [required] string Path parameter; the identifier of the completed video to remix.
prompt [required] string
length: 1–32000
Updated text prompt directing the remix generation.

Conclusion

Request other than 4, 8, or 12 seconds, you’re going to be errored out by the request validation.

To merge videos, you would want to use tools that can demux MP4 streams and re-combine them losslessly with append, rather than simply loading them up into Premiere and re-encoding. AVIDemux is in my start menu.

Thanks,
so what is the use of the remix endpoint ?

Don’t like your video? Prompt again with the previous video ID for a tune-up.

Thank you i appreciate it !

1 Like