Shorts episode title card: a 2-second still, then the clip
Open each Shorts episode on a held title still with Timeline 1.0: slot math, the 0.5 s coverage rule, what stills ignore, and one render body you can copy.

How to open every episode on a title card
Put the card in as the first video[] slot of a Timeline 1.0 render. A still is a legal slot source: it is held as a static frame for the duration you give it. The card has to be a media.sume.com artifact of your workspace, which is true of anything a Sume image job returns and of anything you import with POST /v1/media-imports. Give it start: 0 and a 2-second duration, start the clip at 2, and the output opens on the card and cuts to the episode.
This is more relevant than usual because YouTube's Shorts series feature, rolling out from 23 September 2026 per the October platform roundup, puts episodes in a numbered, sequential season. A viewer who lands on episode 7 from a thumbnail benefits from a card that says which episode it is.
The rules that decide whether it renders
video[0].start must be 0 or the job refuses with timeline_must_start_at_zero. Starts must increase, and the declared starts are authoritative: the compiler compensates for crossfades and never pre-shifts your clock. A transition belongs only on slots after the first, so the fade in the example sits on the clip, not on the card (transition_on_first_segment otherwise). The transition is 1 second at most and at most half of the shorter neighbor, which is why a 0.25-second fade on a 2-second card is fine.
Coverage can stop at most 0.5 seconds before the end of the spine. In the body below the spine is 32 seconds and the two slots cover 0 to 32, so the check passes. If your clip is shorter than the spine remainder, Sume pads or loops a short source and reports it as a soft warning. A plan cannot predict that warning, so read warnings[] on the result.
What a still ignores, and the voice question
Stills take no motion. If you send motion on a still the job accepts it, ignores it and reports motion_ignored, so do not design a slow zoom on the card and expect it. The fit field is cover by default and also takes contain, stretch and blur; for a card that is already 1080 by 1920, cover is a no-op, and for a card at another ratio you choose how it meets the frame.
The spine plays from time 0, so a voiceover spine also plays under the card. There is no documented way to delay the spine inside the same render. Two honest options: write episodes so the first spoken line fits a 2-second title beat, or make the card's seconds part of the spine by joining a short lead-in file in front of the voice with timeline audio concat, which is a sample-domain join with no re-synthesis.
A body to copy
This render is 32 seconds, a 2-second card and a 30-second clip, so it reserves one output minute ($0.10 per ceil minute under the documented rate; the docs say to confirm the live rate in GET /v1/catalog).
curl -X POST https://api.sume.com/v1/timeline-1.0/render \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: s1-ep03-card-001" \
-d '{
"audio": {"url": "https://media.sume.com/artifacts/artf_demo/ep03-voice.wav",
"duration_seconds": 32},
"video": [
{"source_url": "https://media.sume.com/artifacts/artf_demo/ep03-card.png",
"start": 0, "duration": 2},
{"source_url": "https://media.sume.com/artifacts/artf_demo/ep03-clip.mp4",
"start": 2, "duration": 30, "fit": "cover",
"transition": {"type": "fade", "duration": 0.25}}
],
"output": {"width": 1080, "height": 1920, "fps": 30}
}'Numbers from the docs for planning cards
These are the limits that apply to this pattern.
| Field | Limit | What happens outside it |
|---|---|---|
| video[] slots | 1 to 200 | Request refused |
| Slot duration | 0.2 s minimum | invalid_segment_timing |
| Transition | 1 s max, half of the shorter neighbor | transition_too_long |
| Stills | Static hold, motion ignored | motion_ignored warning |
| Output size | Even integers 256 to 2160 | Request refused |
| Default output | 1080x1920 MP4 | Set output.width and height to change |
Where the card image comes from
Make it in your design tool and import it, or generate it with a Sume image job and use the returned artifact URL directly. If the episode number is text, render the text into the image: the timeline has no text layer, and the filter surface excludes drawtext. If you want the number burned in over the video itself, use video captions with authored cues instead, which burn exact text at exact times without speech-to-text.
Sources
Related posts
More in Media tools
- Shorts spec sheet against Sume Timeline output: what is confirmed
YouTube lists 3 minutes, 1080p and a 100-character title for Shorts. Sume Timeline renders 1080x1920 by default. A table of what is confirmed and what to check.
- Speed up a Reel? Sume has no speed field, so shorten the cut
Sume's trim, filter and timeline docs list no playback-speed control. Here is what to use to hit a Reel or Short length instead, with the exact limits.
- Timeline transition_not_frame_aligned: why a 0.01 s fade fails
A Timeline fade under half a frame rounds to zero frames and is refused with transition_not_frame_aligned. How many frames a fade is at 24, 25, 30 and 60 fps.
- transition_snapped_to_frame: a 0.3 s fade at 25 fps is 8 frames
Timeline rounds a fade to whole frames and reports transition_snapped_to_frame as a warning, not a failure. What 0.3 s becomes at 24, 25, 30 and 60 fps.
Written by Sume