Gemini Omni videos over 4MB: poll to ACTIVE vs a Sume result URL

Gemini Omni returns large videos as a URI you poll until ACTIVE. Sume results are durable media.sume.com URLs with no ACTIVE state and no expiry to manage.

4 min readSume
All posts

The Gemini Omni guide says to set delivery="uri" in response_format for videos larger than 4MB, which returns a Google-hosted URI that you poll until the video is ACTIVE before downloading. Sume has no ACTIVE step: you poll the job until it is terminal, then read result_url, and the media URLs in the result are durable media.sume.com HTTPS URLs.

Sources: the Gemini Omni guide and Sume's Jobs and results, read 2026-10-01.

What does the Gemini URI flow involve?

Per the guide: request delivery="uri", then loop on the Files API until the state is ACTIVE (a FAILED state raises), then download. It is recommended for large videos to avoid payload size limits.

What is the Sume equivalent?

Submit with mode: "async", poll status_url until terminal, and fetch result_url. The submit response carries request_id (the job id), status_url, result_url and next_poll_after_seconds. GET /v1/jobs/:id/result is only for completed jobs.

Large-video retrieval, Gemini guide vs Sume docs, read 2026-10-01.
StepGemini Omni (uri delivery)Sume
Ask for a linkdelivery="uri"Always a URL; no size switch in the docs
Wait for readinessPoll Files API to ACTIVEPoll status_url to terminal
FetchDownload from the URIGET result_url once result_ready

Do Sume media URLs expire?

The docs say they do not: media URLs are durable media.sume.com HTTPS URLs, and expires_at is null for them. Store the URL against your own record and render it later; there is no refresh step. They are also public to anyone holding the URL, so proxy or copy them if you need per-customer access control.

What if I call the result too early?

You get a 409 job_not_completed. Read the failure off the job record instead, and see this walkthrough.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume