Python: which Sume video models take 20 seconds at 1080p?

A short Python script reads GET /v1/videos/models and filters by duration and resolution, so new launches never break a hard-coded model list.

4 min readSume
All posts

Which Sume video models can render 20 seconds at 1080p? Do not guess from launch posts; ask the catalog. GET /v1/videos/models returns supported_durations and supported_resolutions for every model, so a filter of a few lines answers the question for whatever is listed at that moment.

The script

It requires SUME_API_KEY and exits with a message when the key is missing or empty.

import os, sys, httpx

key = os.environ.get("SUME_API_KEY", "")
if not key:
    sys.exit("Set SUME_API_KEY first")

seconds, res = 20, "1080p"
r = httpx.get(
    "https://api.sume.com/v1/videos/models",
    headers={"Authorization": f"Bearer {key}"},
    timeout=30,
)
r.raise_for_status()
for m in r.json()["data"]:
    ok_d = seconds in (m.get("supported_durations") or [])
    ok_r = res in (m.get("supported_resolutions") or [])
    if ok_d and ok_r:
        print(m["id"], m.get("pricing_skus"))

What it should print

From the catalog I read today, models with a 1080p tier and a duration range that includes 20 seconds are the long-form rows.

Expected matches for 20 s at 1080p from the catalog, read 2026-10-06
Model idDuration range1080p listed
seedance-2.54-30 sYes
wan-3.02-30 sYes
h3-max-recast5-30 sYes (768p and 1080p)

Notes

Models capped at 15 seconds, such as kling-3, minimax-h3-max and the Seedance 2 family, drop out. Gemini Omni stops at 10 seconds per clip. h3-max-recast is a person-swap model, not a general text-to-video one, so filter on supported_input_references before you use it for a plain prompt.

Print pricing_skus as above to compare costs; the billed amount is the list price times 1.25, rounded up to cents. Your account may also list higgsfield-genjutsu, which appears only when its provider is configured, but it tops out at 480p and 720p so this filter skips it.

Turning it into a fallback

Once the filter works, sort the matches by the price field you care about and keep the first as primary and the next as fallback. Re-run the script on a schedule or at deploy time so that a model added or removed from the catalog changes your choice without a code change.

The script uses httpx, which you can install with pip. It exits before sending any request when the key is empty, so it is safe to run in CI.

Why not hard-code the list

Launch posts move faster than blog posts. Within a few weeks of this one, Seedance, Wan, MiniMax and Gemini each shipped a new generation, and the spec for each was different. A script that asks the catalog avoids the stale-list problem, and the output stays honest about your account, since a model only appears when it is listed for you.

If nothing prints, relax one condition. Try 15 seconds, or 720p, and see which rows come back. An empty result means no listed model matches both constraints, and the fix is to split the job into two clips and join them on a timeline.

The response also reports supported_aspect_ratios and generate_audio, so you can extend the same loop to require 9:16 or native audio without another request.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume