Edit a video with Seedance 2.0 by regenerating from frames of it
Edit a video you already have stored with Ideogram by replacing part of it. Reference the source video with video_asset_identifier and mark the span to replace with start_frame_time and end_frame_time, in seconds. Seedance 2.0 generates a new clip for that span from your prompt, and the result is the source video with the generated clip spliced in over the span: everything before start_frame_time, then the generated clip, then everything from end_frame_time on. That edited video is the asset the request produces.
is_start_frame_included and is_end_frame_included anchor the generated clip on the span's own end frames, so it joins the surrounding footage instead of cutting to something unrelated. Anchoring the start opens the clip on the frame already at start_frame_time; anchoring the end lands it on the frame at end_frame_time; anchoring both joins at each seam. At least one must be anchored.
The generated clip is used at its own length, which the model rarely makes exactly the span's, so the edited video is usually a different length from the source. Request a duration close to the span to keep them near each other. The clip is scaled and cropped to fill the source's frame and conformed to its frame rate, so resolution and aspect ratio follow the source rather than being requested.
Video generation always runs asynchronously: the response returns as soon as the request is accepted and carries only a generation_id. Poll for completion and results with GET /v1/generations/{generation_id} using that id, or supply a webhook_url to have the finished result POSTed to your server instead.
Video links are available for a limited period of time; download the video if you want to keep it.
Request body
Example request
{
"duration": 5,
"private": true,
"end_frame_time": "",
"is_end_frame_included": false,
"webhook_url": "https://api.example.com/webhooks/ideogram",
"video_asset_identifier": "",
"target_collection_id": "target_collection_id",
"generate_audio": false,
"is_start_frame_included": true,
"prompt": "The camera pushes in as the dancer turns towards the light.",
"resolution": "",
"start_frame_time": ""
}Response
An acknowledgement to poll with GET /v1/generations/{generation_id}.
Example response
{
"generation_id": "generation_id",
"created": "2000-01-23T04:56:07+00:00"
}