Gemini API video upload limits vs how Sume takes media inputs

Gemini accepts video inline under 100 MB or through the File API up to 20 GB paid and 2 GB free. How Sume's video routes take URLs, and where they refuse.

4 min readSume
All posts

Google's Gemini API takes video three ways: inline data under 100 MB, the File API up to 20 GB on a paid project or 2 GB on a free one, and public YouTube URLs (free tier: 8 hours per day; paid tier: no length limit). Sume takes media by URL. Video generation inputs are given as URLs that must be reachable over public HTTPS, and video_inspect only reads a clip already hosted on media.sume.com for your workspace and rejects off-host URLs, so you import first.

Read on 2026-10-01: Gemini API video understanding, Sume's Video Generation and Video inspect docs.

What are the limits side by side?

The columns are not equivalent. Google's numbers are file size for an understanding request. Sume's are the shape of the request and the clip length.

From the two vendors' docs, read 2026-10-01.
PathGemini APISume
Inline bytesUnder 100 MBNot a documented input; send URLs
Uploaded fileFile API: 20 GB paid, 2 GB freeImport to media.sume.com with POST /v1/media-imports, then reference it
Public URLYouTube URLsReference images for generation must be public HTTPS
Length capContext window (1M-context models: up to 3 hours at low media resolution, 1 hour at high resolution)video_inspect: source at most 1800 seconds

What does the Sume flow look like?

For generation, put your first-frame or reference image on a public HTTPS URL and pass it in frame_images or input_references. Only models whose supported_input_references lists a type accept that type, so check GET /v1/videos/models first. For inspection, import the clip, then call POST /v1/video-inspect with the returned media.sume.com URL and an Idempotency-Key.

curl -X POST https://api.sume.com/v1/video-inspect \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: inspect-001" \
  -d '{"video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4", "frames": {"fps": 0.5}}'

Which path fits which job?

If the job is understanding a long recording and you are already on Gemini, the File API is the documented route for big files, and inline data is for small clips under 100 MB. If the job is generating a clip from a reference, Sume's generation routes want a URL, not bytes, so host the reference first and pass the link. If the job is sampling frames from a clip you generated or imported, video_inspect works on the hosted copy.

A practical check before any batch: send one real file through the whole path and note the error code if it fails. Sume's inspect refusals are stable codes such as source_not_found for a dead or foreign media.sume.com URL and frame_time_out_of_range for a timestamp past the end, which are easier to handle than a generic failure.

Limits

I did not find a documented maximum file size for Sume's import or generation inputs, so none is stated here. If you have large source files, test with one before building a pipeline, and check the error code in the response. Sume's inspect also refuses a clip over 1800 seconds.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume