Guides
Sume guides: the API, Formats, agents, models, media tools and pricing, each answer dated and sourced.

Seedance 2.5 reference video: 15 assumed input seconds at 60%
A reference video makes Sume's Seedance 2.5 estimate add 15 assumed input seconds, then take 60 percent: a 10 s 720p clip goes from $5.78 to $8.67.

Seedance 2.5 token formula in Python: price any clip before you send
Seedance 2.5 bills by video tokens: width x height x seconds x 24 / 1024. A Python function that turns that into a Sume dollar quote for any size and length.

Text-to-speech cost per spoken minute: Sume, ElevenLabs v4 and MAI
Convert per-character TTS prices to dollars per finished minute, assuming 900 characters of script. Sume is $0.0428 a minute; vendor list prices compared.

A monthly AI video budget calculator in Python using Sume rates
Plan a month of 480p drafts, 720p posts and audio clips: $97.70 on Sume. A short Python calculator with per-second rates and captions you can edit.

Avatar handle rules: 2 to 30 characters, with a Python check
A Sume avatar_handle allows a-z, 0-9, dot and underscore, 2 to 30 characters, no edge or doubled separators. A short Python check, plus the reserved prefix.

Avatar video aspect ratio for YouTube: 16:9 vs Shorts at 9:16
Sume avatar videos default to 9:16. YouTube's help says a wider ratio such as 16:9 avoids Shorts classification. When each is the right choice for a 60 s clip.

YouTube AI label for a prompt-made AI presenter: three cases
A Sume avatar made from a prompt that looks like a real person sits on the disclose side of YouTube's rule. Three cases, what to tick and where.

curl a 30-second Sume clip: --speed-limit beats a blunt --max-time
A fixed --max-time kills a slow but healthy 30 s video download. Use --speed-limit with --speed-time to abort only stalled transfers, plus --retry.

Node stream.pipeline to save a Sume MP4 and catch truncation
Stream a finished Sume video to disk with stream.pipeline, then compare bytes written with content-length so a cut-off MP4 never reaches your users.

A daily 10-second news short for 30 days: what it costs on Sume
A 10-second Wan 3.0 clip at 720p, captions and a music bed cost $1.575 a day on Sume, or $47.25 over 30 days. A 480p version costs $28.50.

No language warning on Sume TTS? Raw voice ids skip the check
Sume's voice-language check needs library metadata. Send a raw voice id it cannot look up and no mismatch warning appears. How to add your own safety net.

Agency Black Friday: a team-owned Format needs a workspace key
A personal API key cannot run a Format that a team workspace owns. Sume answers 403 workspace_key_required, so issue the key inside the team before launch.

AI API pricing units decoded: credits, tokens, characters, hours
Five vendors, five units. Convert Runway credits, Google tokens, ElevenLabs and MAI characters and per-hour rates into dollars, with a Python helper.

AI backdrops for TikTok Shop: staging must match what you sell
TikTok Shop's page says LIVE backgrounds and staging items must match the products sold. How to review a generated backdrop and use video filter dim or crop.

AI music as the main focus of a Short: YouTube says to disclose it
YouTube lists music that is the main focus of a video as altered or synthetic content to disclose. How that applies to a Short built on a Sume music track.

Which video models can my agent call? video-router_models
Sume's MCP server has video-router_models to list video ids, limits and prices, and generate_video to create clips. How an agent should use them, in order.

Audio detach range without end: take the rest of a track
In Sume audio detach, range.end is optional: a start-only range runs to the end of the track. How it meets the 900 s output cap and 1800 s source cap.

Avatar script too long? The 4 to 60 second window and how to split it
Sume accepts an avatar talking video only when the script estimates 4 to 60 seconds. Split longer scripts into scenes or jobs; costs from $0.74 to $33.

Avatar video 429: rate_limited vs queue_full, and which retry to use
Both are HTTP 429 on avatar video submit. rate_limited uses retry-after; queue_full means no accepted capacity. A small Python helper to pick the wait.

Preview regenerate too early: 409 avatar_video_preview_busy, no charge
Calling regenerate on an avatar video preview that is still queued or processing returns 409 avatar_video_preview_busy and refunds the reservation. What to do.

product_image 400: must be a fetchable public image URL
Sume avatar video rejects a product_image or scene image that is not a direct public image. What the 400 says, and why share links and HTML pages fail.

Avatar voice not ready: 409 avatar_not_ready, voice_not_ready
A video request can fail with 409 avatar_not_ready because the avatar's voice is not ready. How this differs from a plain not-ready avatar, and the retry hint.

Black Friday bulk queue: reconcile webhooks received against counts
A bulk queue has no webhook, and canceled runs send none. Count terminal events per item, then compare them with the queue's counts to find what is missing.

Black Friday code freeze checklist for a Sume Format integration
Before the freeze: key scopes, spend caps, idempotency keys, a webhook test, queue failure handling and the rate-limit budget, all drawn from the Sume docs.

Black Friday webhooks: staging and production URLs for a Sume Format
Webhook URLs must be public HTTPS and are re-checked at delivery. Use a separate URL per environment and send a test delivery before a bulk queue goes out.

Black Friday spike: your webhook returns 503, what Sume retries
If your endpoint sheds load on Black Friday, Sume retries a terminal webhook up to 10 times with doubling backoff. Know the schedule and what to do after.

Bulk queue concurrency 16 but fewer runs start: workspace concurrency
Concurrency 16 is a ceiling on the queue, not a promise. Workspace generation concurrency still applies to every child, so some start late or fail to start.

Burn an 'AI-generated' disclosure line into a clip with caption cues
YouTube asks creators to disclose realistic AI content. Add an authored on-screen line with Sume caption cues, no speech-to-text, that travels with the file.

Burn captions: pick one of script_text, words, cues or segments
Sume video captions accepts one wording source per job: script_text, words, cues or segments. When each fits and which ones skip speech-to-text.

No generate_video tool for Sume in ChatGPT or Claude: Write is off
A Sume OAuth session with only mcp:read hides write and paid tools like generate_video. Reconnect with Write on, or use an API key; confirm in tools_list.

ChatGPT confirms write tools; Sume MCP also gates them by scope
ChatGPT developer mode asks before write actions. Sume's hosted MCP adds a second gate: OAuth mcp:write, an idempotency_key and an optional max_spend_usd.

Christmas shipping cutoff videos: put the last order date in input
A last-order-date promo is wrong the day the date moves. Keep the cutoff in each bulk item's input, derive it from one config, and re-run only what changed.

Claude 'Allow always' on a paid Sume tool: what still caps spend
Claude custom connectors let you approve a tool once and keep approving it. For a paid Sume tool, the scope, idempotency key and max_spend_usd still apply.

createSumeClient custom fetch: log ratelimit-remaining as you go
Pass your own fetch to createSumeClient to warn when ratelimit-remaining runs low, without wrapping every SDK call. Works on Node 18+, Bun, Deno, Workers.

Crop 21:9 to 9:16: a 608 px strip, then scale to 1080x1920
Cropping 2560x1080 ultrawide to 9:16 leaves a 608 px wide strip. The Sume video filter crop fractions, the scale step to 1080x1920, and the sharpness trade-off.

Crop 2560x1080 ultrawide to 16:9: video filter width 0.75
A 21:9 clip at 2560x1080 crops to exactly 1920x1080 with one Sume video filter crop op, width 0.75 and x 0.125. The math, the request, and rounding.

Cut a 3-minute Short from a longer render with video trim
YouTube Shorts and Instagram's recommended Reel length both stop at three minutes. Cut 180 seconds from a longer clip with video trim, using start and duration.

Cyber Monday price changed after render: rerun one SKU or continue it?
One SKU's price changed after its video rendered. Send a new run with new input, or continue the old run with previous_run_id. Here is when each fits.

Dim or crop a clip: does YouTube need an altered-content label?
YouTube exempts color adjustment, beauty and effects filters. Whether a Sume video filter dim or crop falls under that, and what the exemption does not cover.

Burned-in captions and YouTube AI disclosure: captions are exempt
YouTube's disclosure page names caption creation among edits that need no altered-content label. What that covers when Sume burns captions into a Short.

Does the Sume run spend cap include the LLM turn? No, only generation
On a Sume run receipt, billable_amount_usd_micros is generation spend only; the agent's LLM turn bills a separate Agent wallet. How to budget both.

Embargoed Black Friday reveal: Sume media URLs are public, copy first
Format artifacts sit on durable public media.sume.com URLs with no expiry. For an embargoed drop, copy the file to your own storage and never log the URL.

Estimate a Sume video request first: rate x seconds x 1.25
Per-second models bill list price times 1.25 times seconds. A small Python estimator, three 10-second examples and how reserve and usage.cost relate.

Five generate_image calls in one turn: Sume MCP create budget
Hosted Sume MCP gives paid creates their own budget (20 per principal, 64 per process) and queues a call up to 20 seconds before wait_busy.

Run stuck queued? queue.state waiting vs runtime_unavailable
queue.state waiting is normal pickup; runtime_unavailable means nothing claimed the run. Position is always null. Back off, then contact support.

Gemini Omni reference clips: 3 videos, 3 seconds each, VIDEO_REF_0
On Sume, Gemini Omni Flash reference-to-video takes up to 10 images and 3 clips of at most 3 s each, addressed as IMAGE_REF_0 and VIDEO_REF_0 in the prompt.

Gemini Omni Flash edit on Sume: the 8-second reserve hint
A Gemini Omni edit has no duration input, so Sume reserves against a hint: 8 seconds by default, up to 30 if you send one. At 720p, that is $1.00 held.

generate-video 409s: preview_not_ready vs preview_image_not_ready
generate-video on an avatar preview can return two 409s: the job is unfinished, or a public preview image is missing. How to tell them apart.