Gemini Omni edit: direct Video Router call or a Sume Format run?

Use the Video Router edit call for one precise change to one clip. Use a Format run when the job has steps, a schema and a spend cap around the edit.

4 min readSume
All posts

For one change to one clip, call the Video Router edit route with gemini-omni-flash-1.1 and a video_url. For an edit that sits inside a longer job, such as trimming, voiceover, captions and a typed result, run a Format and let the recipe decide when to edit. A Format's model field will not select Omni, so a Format is not a way to force a specific edit model.

What the edit route takes

Google's guide says input videos for editing must be 10 seconds or less when uploaded, and that Omni Flash outputs 360p, 720p by default, 1080p or 4K at 9:16 or 16:9. Sume's catalog lists the same model as the only Video Router row with a general edit mode, with video_url as the source clip. The source sets the output, so Sume rejects aspect_ratio with a 400 on an edit.

The direct call

On the direct route the prompt carries the whole instruction. A request may include a duration, but on an edit it is only a hint for the reservation, with a default of 8 seconds, because the provider returns no output duration. You cannot combine video_url with image_url, an end image or reference lists. If you want the clip to guide a new generation instead, send it as a reference video.

import json, os, urllib.request

def main():
    body = {"model": "gemini-omni-flash-1.1",
      "prompt": "Replace the bottle with an apple. Keep everything else the same.",
      "video_url": "https://example.com/clip.mp4",
      "resolution": "720p", "mode": "async"}
    req = urllib.request.Request(
      "https://api.sume.com/v1/video-router/generate",
      data=json.dumps(body).encode(), method="POST",
      headers={"Authorization": "Bearer " + os.environ["SUME_API_KEY"],
               "Content-Type": "application/json",
               "Idempotency-Key": "apple-swap-clip-1"})
    with urllib.request.urlopen(req) as r:
        print(r.read().decode())

main()

The Format run

A Format run is a different kind of unit. It is one unattended agent turn in a fresh sandbox, with a webhook or a poll for the receipt, and runs that make video take minutes. Media URLs in input share a budget of 30 files, at most 10 of them video. The run is held under a spend cap you set, and you get a typed output plus every file in artifacts[].

Choosing between them

The two routes differ in who is in control, as the table shows.

Direct edit vs Format run (Sume docs read 2026-10-05, Google guide read 2026-10-05)
QuestionVideo Router editFormat run
Who picks the video modelYou, by model idThe Format's tools; the model field picks only the orchestrator
Source clipOne video_url, 10 s or less for Omni uploadsVideo URLs in input, up to 10 per run
Aspect ratioNot allowed on edit; source decidesWhatever the recipe produces
ResultOne job and its videoTyped output plus artifacts[]
Spend controlReserve at submit; send a max spendgeneration_spend_cap_usd per run
Good forA precise, repeatable swapA multi-step ad with an edit inside it

Limits to plan around

Google also states that editing uploaded video is unavailable in some regions, so check your audience before you plan an edit-first workflow. If a clip is longer than ten seconds, trim it before you edit, and run the edit on the short span you actually want to change.

Sources

Related posts

More in Formats

All Formats posts

Written by Sume