Stitch 10-second AI clips into a 3-minute Short with Timeline 1.0
YouTube's AI Shorts clips top out at 10 seconds, but a Short can run 3 minutes. Join clips and a voice track in Timeline 1.0 within its 200 slots and 1,800 s.

YouTube's help page says its generative tools make standalone clips "up to 10 seconds long" for Shorts, and the Shorts length page says a Short can be up to three minutes. Bridging those is an assembly job.
The arithmetic
A 180-second Short built from 10-second clips needs 18 slots with no overlap. Timeline 1.0 takes 1 to 200 video[] slots and an audio.duration_seconds from 1 to 1,800, so 18 slots sit well inside it.
| Item | Value |
|---|---|
| Short length cap (YouTube) | 3 minutes |
| Clip length (YouTube tool) | up to 10 seconds |
| Slots needed for 180 s | 18 |
| Timeline slot limit | 200 |
| Timeline duration limit | 1,800 s |
Rules that bite
Per the Timeline docs, video[0].start must be 0, later starts must increase, and coverage can stop at most 0.5 s before the end of the spine. Above 12 slots, render.strategy: single is refused, so leave it on auto. The default output is 1080 by 1920.
Plan first
The unbilled plan call returns billable_minutes before you spend. Build the slots, then check the plan.
import json, os, urllib.request
slots = [
{"source_url": f"https://media.sume.com/artifacts/example/clip{i}.mp4",
"start": i * 10, "duration": 10}
for i in range(18)
]
body = {
"audio": {"mode": "silence", "duration_seconds": 180},
"video": slots,
}
req = urllib.request.Request(
"https://api.sume.com/v1/timeline-1.0/plan",
data=json.dumps(body).encode(),
headers={
"Authorization": "Bearer " + os.environ["SUME_API_KEY"],
"Content-Type": "application/json",
},
method="POST",
)
print(urllib.request.urlopen(req).read().decode())Sources
Related posts
More in Developers
- Stitch AI clips into one MP4 with Sume Timeline in Python
POST /v1/timeline-1.0/render with audio mode silence joins clips into one MP4 for $0.10 a minute. A short Python script, with the plan call first.
- Stitch three STT chunks: add each range start to word times
Sume STT times count from each chunk's own start, so add the chunk's range start to every word and sentence. A short Python function that does it.
- Stop an Omni draft batch at $5: sum usage.cost from each poll
A Python loop that submits 360p Omni drafts one at a time, adds the Sume usage.cost of each finished job, and stops before the next one would cross a $5 cap.
- Can Strands Decider 2B pick which Sume MCP tool to call?
Strands Decider 2B scores options you give it. Build them from Sume's tools_list, then check the pick with tools_schema and dry_run before any paid call.
Written by Sume