Video Stitch
const url = 'https://example.com/api/video/stitch';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"clips":["example"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/video/stitch \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "clips": [ "example" ] }'Join finished clips into one video, in the order given.
The other half of shot chaining: last-frame lets each clip start where the last one ended, and this puts them back together as a single take. A project render does the same thing for a whole movie, but building a project to join two clips is more scaffolding than the job needs.
Clips are normalised to the first one’s frame size and frame rate before concatenation, so mismatched shots join without the stream-copy artefacts that a raw concat produces. The first clip sets the rate because resampling generated footage to some other number duplicates frames unevenly and shows up as judder in exactly the motion the clip was made for.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”The clips to join, in playing order, named by prompt_id or by filename.
object
Examplegenerated
{ "clips": [ "example" ]}Responses
Section titled “Responses”Successful Response
object
Examplegenerated
{}Validation Error
object
object
Examplegenerated
{ "detail": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ]}