Trim a 4-minute video to a 180 s YouTube Short: start 30, duration 180
YouTube's Shorts page allows up to 3 minutes. Sume video trim cuts 180 seconds from a 240 second source for $0.02. The request, the limits and the refusals.

To turn a 4 minute video into a Short that fits YouTube's 3 minute ceiling, send Sume video trim a start and a duration of 180 seconds. A request with start 30 and duration 180 on a 240 second source returns a new MP4 that runs from 0:30 to 3:30, billed at $0.02. YouTube's Shorts help page (read 2026-10-08) says Shorts can be up to 3 minutes long, so 180 seconds is the longest cut that stays inside it.
The request
Video trim reads one media.sume.com clip of your workspace. Import the file first with POST /v1/media-imports, then send video_url, start, and exactly one of end or duration. An Idempotency-Key header is required.
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-short-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4",
"start": 30,
"duration": 180
}'Limits that apply
The docs set the bounds in the table. A 240 second source is far below the 1800 second source cap, and 180 seconds is below the 900 second output cap.
| Item | Value |
|---|---|
| Source length | 1800 s or less |
| Output length | 0.2 s to 900 s |
| duration field | 0.2 to 900 |
| Precision | exact (default, frame-accurate re-encode) or keyframe (stream copy) |
| Price | $0.02 per job |
| Default mode | async; mode: sync waits up to 30 s |
Choosing end or duration
Send end if you know the out-point and duration if you know the length. Sending both returns video_trim_range_conflict, and sending neither returns video_trim_range_required. If end is past the source, the value clamps and the result carries the warning trim_clamped_to_source. That matters here: asking for start 30, duration 180 on a source shorter than 3:30 would give a shorter file, not an error.
Use precision exact for a Short. Keyframe mode copies the stream and the cut can start a GOP early, so the real start is reported in actual_start_seconds and your 180 seconds may not be exact. Exact mode re-encodes and keeps the length you asked for.
The result at GET /v1/jobs/:id/result has kind video_trim, a new video_url, and duration_seconds. Check duration_seconds is 180 or less before you upload. The trim keeps the geometry of the source, so a landscape source stays landscape. If you need a vertical Short from a landscape file, see the crop post. A longer source case is in the webinar post.
Two mistakes to avoid
The first mistake is sending end and duration together. The API returns video_trim_range_conflict, and no job is created. Pick one. The second is trusting the requested length when the source is shorter than start plus duration: the range clamps and you get a shorter file with the trim_clamped_to_source warning, so a 3:20 source with start 30 and duration 180 gives a 170 second file, not an error.
Also remember that a trim is not a crop. The output keeps the geometry of the source. If the 4 minute file is landscape, the Short will be landscape, and YouTube's page says Shorts are vertical videos. Fix the frame with a Timeline slot (fit cover) or a video filter crop before or after the trim.
Sources
Related posts
More in Media tools
- Video trim caps: 1800 s in, 900 s out, and the 901 s refusal
Sume video-trim accepts a source up to 1800 seconds and an output up to 900 seconds. The refusal codes you get past either cap and how to split a long cut.
- video-inspect vs video-frames: which returns the still you need
Video inspect gives a probe, 8 default stills at 768 px and optional STT for clips up to 1800 s; video frames gives exact stills at source size up to 300 s.
- Sentence segments from video inspect: caption lines with no gaps
Sume video inspect with transcribe true can return gapless sentence segments, with silence_split_seconds from 0.2 to 3. Feed them to captions as cues.
- wav or mp3 for joined audio: priming padding at every edge
Sume timeline audio outputs wav by default and mp3 as an option. Keep wav if you join again or lip-sync: mp3 adds priming padding at every edge.
Written by Sume