How many 6-second clips fill a 3-minute Short, Reel or TikTok ad?
A 3-minute Short needs 30 six-second clips, a 20-minute Reel 200, a 10-minute TikTok ad 100. Slot limits, chunked renders and Timeline cost for each.

A 3-minute Short takes 30 clips of 6 seconds, a 20-minute Reel takes 200, and a 10-minute TikTok in-feed ad takes 100. Those are the arithmetic answers (length divided by clip length), and they matter because Sume Timeline accepts 1 to 200 video[] slots per render and refuses the single-pass strategy above 12 of them.
The three ceilings come from the platforms' own pages: YouTube says Shorts are up to 3 minutes, Instagram says you can record clips that add up to 20 minutes, and TikTok's in-feed page gives up to 10 minutes for non-Spark ads. This post turns each into a slot count, a cost and a render strategy.
The three ceilings
YouTube's Shorts page says Shorts are "up to 3 minutes long", and its three-minute Shorts page requires a square or vertical aspect ratio. Instagram's Reels page says "You can record one or multiple clips that add up to 20 minutes", and adds that Reels over 3 minutes won't be recommended to new audiences. TikTok's auction in-feed page lists duration "up to 10 minutes" for non-Spark ads, while Spark Ads have no duration restriction.
Timeline's own ceilings sit above all three: audio.duration_seconds up to 1800 (30 minutes) and up to 200 video slots.
| Target | Length | Clips of 6 s | Clips of 10 s | Timeline minutes | Cost at $0.10/min |
|---|---|---|---|---|---|
| YouTube Short | 180 s | 30 | 18 | 3 | $0.30 |
| Instagram Reel (in-app max) | 1,200 s | 200 | 120 | 20 | $2.00 |
| TikTok in-feed ad (non-Spark) | 600 s | 100 | 60 | 10 | $1.00 |
Slots and the 12-segment line
A render with render.strategy set to auto (the default) chunks past 12 segments. If you ask for single above 12 slots, Sume refuses with render_strategy_unsafe. So for 30 clips leave the strategy alone, and expect the render to take longer than a 10-second ad.
There are other limits to respect. At most 8 adjacent fades may be chained (too_many_chained_transitions), each transition is at most 1 second and at most 50% of the shorter neighbour, and coverage may stop at most 0.5 seconds before the end of the spine. With 6-second clips, a 1-second fade is fine; a 3-second fade is refused.
Costs of the clips themselves
The Timeline numbers above cover assembly only. The clips come from video models, billed separately and per model, and the Timeline job uses no provider inference, only worker ffmpeg. Check the catalog price of your model before you multiply by 200.
A cheaper structure exists for the long targets: reuse a few clips with different source_in points, or lay a voiceover over fewer, longer slots. A 20-minute Reel does not need 200 unique clips; it needs 1,200 seconds of picture.
Plan first
Before you submit, run the free plan call with your real slot list. It returns segment_count, duration_seconds and billable_minutes, and a filtergraph_summary, and it creates no job. A 10-minute ad that comes back with billable_minutes 11 tells you the slots overshoot the spine by a few seconds.
The sketch below builds a body with 30 six-second slots for a 180-second Short and posts it to the plan route. Note start values must increase, with the first at 0.
import json, os, urllib.request
def main():
slots = [
{"source_url": "https://media.sume.com/artifacts/artf_demo/clip.mp4",
"start": i * 6, "duration": 6}
for i in range(30)
]
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",
},
)
with urllib.request.urlopen(req) as res:
print(json.load(res))
main()What the limits do not tell you
Fitting inside a ceiling is not the same as being worth watching at that length. Instagram's page says Reels over 3 minutes won't be recommended to new audiences, so a 20-minute Reel is permitted but is aimed at people who already follow you. YouTube's three-minute Shorts page applies only to a square or vertical video up to three minutes; a wider video stays long-form.
TikTok's in-feed page splits the rule by ad type: non-Spark ads allow up to 10 minutes, and Spark Ads state no duration restriction. The ten-minute figure is therefore a statement about uploaded creative, not about organic posts.
Using the count in a plan
Use the clip count as a budget check before you generate anything. Divide the target length by the clip length, round up, and compare the answer with the 200-slot limit on video[]. Then run the plan call: its segment_count should equal your slot count, and billable_minutes should match the ceil of the output length in minutes.
If you plan more than 12 segments, leave render.strategy on auto; the render is chunked and then joined, while single above 12 is refused with render_strategy_unsafe.
Sources
Related posts
More in Media tools
- What prompt makes a 15-second Black Friday ad track?
Write the track as three timed sections: build, drop, sting. The Music Router takes it for a flat $0.125; the whole 15-second ad is $2.305 on Sume.
- Move burned-in captions up or down: restyle with source_caption_id
Change caption placement with design.placement.anchor_ratio and restyle with source_caption_id: the same word timings, no second speech-to-text run.
- One lip-sync model per video: Fabric runs at 25 fps, measure H3 Max
Mixing Fabric and MiniMax H3 Max lip-sync clips in one Sume video risks a frame-rate mismatch. Pick one per run and check fps with ffprobe on the first clip.
- How to assemble a long-form video with the Timeline 1.0 API
Timeline 1.0 renders one audio spine plus 1 to 200 ordered video slots into one MP4. Every URL must be Sume-hosted; the plan preflight is unbilled.
Written by Sume