YouTube Shorts series: cut a long video into 3-minute episodes
A Shorts series needs Shorts only, portrait or square, up to 180 s. Plan windows of 170 s and send one Sume video-trim per episode with start and duration.

For a YouTube Shorts series, every episode must be a Short, so portrait or square and at most 180 seconds. The practical plan with Sume is to compute episode windows, then send one POST /v1/video-trim per window, each with a start and a duration of 170 seconds or less. YouTube's page says the playlist for a Shorts series must contain only Shorts and that a season number is required (YouTube Help, read 2026-10-05).
Sume's trim route cuts one clip per job, up to 900 seconds of output from a source of up to 1800 seconds, at $0.02 per job in the public pricing constant.
Series rules from YouTube
The Create shows page lists the constraints that matter for a cut plan.
| Rule | Detail |
|---|---|
| Content | only Shorts, portrait or square, up to 180 seconds |
| Season | a season number is required |
| Order, non-serial show | newest to oldest |
| Order, serial show | oldest to newest |
| Thumbnails | custom thumbnails per Short are allowed in a series |
Compute the windows
A 12 minute source cut into 170 second episodes gives five windows with a short last episode. Using 170 seconds instead of 180 leaves headroom, because an exact re-encode can land a frame off. The script prints each trim body; it does not call the API or read any key.
import json
def windows(total, step=170, min_tail=20):
out, start = [], 0
while start < total:
length = min(step, total - start)
if length >= min_tail:
out.append({"start": start, "duration": length})
start += step
return out
for i, w in enumerate(windows(720), 1):
body = {"video_url": "https://media.sume.com/artifacts/artf_demo/long.mp4", **w}
print(i, json.dumps(body))Cut each episode
Send each body to POST /v1/video-trim with its own Idempotency-Key, for example one per episode number, and poll GET /v1/jobs/:id/status and /result, because the trim route has no GET resource route. Default precision is exact, a frame-accurate re-encode. keyframe is faster but can start a group of pictures early, and the result reports actual_start_seconds. The video trim docs list both. A trim does not change the aspect ratio; a 16:9 source cut this way is still 16:9, and still not a Short.
Costs and checks
Five episodes cost five trim jobs, so $0.10 at the public rate of $0.02 per job; confirm the live price in GET /v1/catalog. Before cutting, a probe-only call to video inspect with frames: false tells you the source duration and whether it has audio, so the window list is built from the real length and not a guess. After cutting, probe a finished episode once to confirm it is within 180 seconds. A series with an episode that is 181 seconds long is no longer all Shorts, and the playlist rule then fails.
When not to use this
Cut at story beats, not at fixed windows, if the content has natural breaks; use a transcript to find them. This plan only prepares clips. Creating the series, choosing the season number and uploading are done in YouTube, and the rollout of Shorts series is announced on YouTube's own blog.
Sources
Related posts
More in Use cases
- YouTube's AI label for unrealistic content: the expanded description
YouTube puts a label on realistic AI content, but unrealistic AI content is disclosed in the expanded description. The realistic test and the API field.
- AI album cover generator: square art at 3000×3000
Generate square album art, then upscale: Apple recommends at least 3000×3000. On Sume, generate 2400×2400 and upscale it 1.25× to reach 3000×3000.
- AI avatar for online course videos: build and update lessons
Use an AI avatar as your online course instructor: one reusable avatar, a short talking video per section, captions, and one Timeline join per lesson.
- Talking avatar for PowerPoint presentations, slide by slide
Make a talking avatar presenter for PowerPoint: one Sume clip per slide, up to 60 seconds each, in 16:9 or 4:3 to match the slide, inserted as MP4.
Written by Sume