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.

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.
| Model id | Duration range | 1080p listed |
|---|---|---|
| seedance-2.5 | 4-30 s | Yes |
| wan-3.0 | 2-30 s | Yes |
| h3-max-recast | 5-30 s | Yes (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
- Python pre-flight for a Short: catch Timeline schema errors offline
A Python check for a Sume Timeline body: even width and height, allowed fps, 1 to 1800 seconds, fade limits and start order. Run it before the plan call.
- Python: run one prompt on four AI video models and save the clips
A Python script that sends one prompt to Wan 3.0, Seedance 2.5, Kling 3 and MiniMax H3 on Sume, polls all four jobs and saves each MP4, with costs.
- Python TTS cost calculator: Sume job rounding vs per-character rates
A runnable Python function that prices narration lines on Sume (cent rounding, 1-cent minimum) and at flat per-million rates for MAI-Voice-2.1 and Flash.
- Python video fallback ladder when a model id is gone
A short Python ladder posts to Sume's /v1/videos with the first id that exists and moves on after a 404 model_not_found. Needs SUME_API_KEY, and runs.
Written by Sume