Seedance 2.5 reference video over 30 s: trim it first with Video Trim
fal lists Seedance 2.5 reference video and audio at 30 seconds in total. Cut a longer source to fit with Sume's video-trim, $0.02 a job, before you generate.

fal's Seedance 2.5 page says reference video and reference audio are each capped at 30 seconds in total, so a longer source has to be cut before you send it. On Sume, POST /v1/video-trim cuts a range from a clip you already hold on media.sume.com and costs $0.02 a job.
This keeps the choice of which 30 seconds in your hands, instead of letting a longer upload fail or be cut for you.
The limits as listed
The fal page lists up to 50 references in total: up to 30 images, 10 videos and 10 audio clips. It adds that video and audio are each capped at 30 seconds in total. It lists 4 to 30 seconds of output at 480p or 720p, with first and last frame pins for image-to-video.
Sume's catalog lists seedance-2.5 at 480p, 720p and 1080p for 4 to 30 seconds, and accepts image, video and audio references on /v1/videos through input_references. Check supported_input_references for the id before you send them; the post on how many references Sume takes goes through it.
| Reference type | Count on the fal page | Length cap on the fal page |
|---|---|---|
| Images | up to 30 | not stated |
| Videos | up to 10 | 30 s in total across videos |
| Audio clips | up to 10 | 30 s in total across audio |
| All types together | up to 50 | not applicable |
Cut the reference with Video Trim
Video Trim takes one workspace clip, a start in seconds, and exactly one of end or duration. It returns a new MP4 and leaves the source alone. The source must already be on media.sume.com, so import it first. Off-host URLs are refused at admit.
Use precision: exact (the default) when the reference shows a precise move, because it re-encodes frame-accurately. Use keyframe only for a quick cut, since the cut can start a GOP early. Set audio to drop if the clip is a video reference and you will send a separate audio reference.
curl -X POST https://api.sume.com/v1/video-trim \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: trim-ref-001" \
-d '{"video_url":"https://media.sume.com/artifacts/artf_demo/talk.mp4","start":4,"duration":12,"audio":"drop"}'Budget the total, not each clip
The cap is on the total across clips of a type. Three 12-second video references already add up to 36 seconds and break a 30-second total. Plan the sum before you trim. A 12 s, a 10 s and an 8 s clip total 30 s and fit.
The trimmed MP4 is a new artifact. Use its video_url from the job result as the reference. The docs for Video Trim list the result fields and the refusal codes.
What a reference video changes
A reference video conditions a new generation. It is not an edit of that clip. If you want to change one thing inside an existing video, that is a different route, covered in the video-url edit comparison.
A short checklist
Run these checks before you spend on a long reference job.
- Measure first: use video inspect to read the real duration of every reference clip.
- Sum by type: video references share one 30-second total, and audio clips share another.
- Trim to the part that matters: the move, the pose or the line of dialogue, not the whole shot.
- Keep the source: Video Trim writes a new file, so you can cut again with different times.
- Use stable names for jobs: send a distinct
Idempotency-Keyfor each trim so a retry does not queue a second one.
Sources
Related posts
More in Developers
- Send a WAV file to MAI-Transcribe-2-Streaming: PCM16, no WAV header
MAI streaming wants raw PCM16 mono at 16 or 24 kHz as base64 in 10-20 ms chunks, no header. Python's wave module strips it; Sume's STT shape is 16 kHz mono.
- service_account_callback_domain_not_allowed 403: fix the callback host
The 403 means webhook_url's host is outside the key's allowed callback domains. An exact host or any subdomain of an allowed domain passes.
- Sume 429 concurrency cap or queue cap: which service-account limit?
service_account_concurrency_cap_exceeded counts active jobs; service_account_queue_cap_exceeded counts queued ones. Both are 429. Wait for a job to finish.
- service_account_idempotency_required 400: send an Idempotency-Key
Some service-account keys require an Idempotency-Key on every paid submit. The 400 means the header is missing; add a stable key per intent and resend.
Written by Sume