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
- Bilingual captions crowd a vertical Reel: lay out two lines
Two caption tracks overfill a 9:16 frame. Keep cards short, centre them, and use Sume's caption design limits for words, width and height. Korean needs Hangul.
- Instagram feed video ad 1% ratio tolerance in pixels at 1080 wide
Meta lists a 1% aspect ratio tolerance for Instagram feed video ads. Read as relative, at 1080 wide that is about 1902-1938 px tall; Sume's 1080x1920 is exact.
- Write an instrumental ad bed prompt for Lyria 3.5 on Sume Music
A prompt pattern for a no-vocals music bed on Sume Music: 1 to 5,000 characters, no duration field, $0.125 per generation. What to put in the prompt.
- Is my Short silent? Check has_audio before detach or captions
Video inspect with frames off returns probe.has_audio. Check it before audio detach or speech captions, which refuse a clip with no audio track.
Written by Sume