Festive caption colors for holiday ads: slam style design overrides
TikTok's holiday guide asks for bold captions and festive overlays at peak. One caption job with design colors burns a red-and-green slam line for $0.20.

TikTok's holiday guide says that during peak holiday weeks you should ramp up promotions with bold captions, countdown stickers, and festive overlays (TikTok Ads guide, read 2026-10-05). Sume's caption job covers the first of those: POST /v1/video-captions with style: "slam" and a design.colors override burns a holiday palette into the clip for $0.20 per job, and a countdown line is one authored cue.
What design overrides change
A style is a set of design tokens, and design overrides them for one request. Each field is optional and merges over the style's value. The colors group has base, active, stroke, accent, accent_deep and card, and colors are hex, rgb or rgba, or transparent. Other CSS syntax is rejected, and a number outside its range returns a 400 before any render is paid for. punch and tiktok-green do not support design, so use slam when you need your own colors.
| Holiday need | TikTok guide | Sume field |
|---|---|---|
| Bold caption | Bold captions | style: slam |
| Festive colors | Festive overlays | design.colors.base, active, stroke |
| Countdown line | Countdown stickers | One cue per variant, text such as 3 days left |
| Readable on a phone | Short bold text | design.phrasing.max_words |
One request
curl -X POST https://api.sume.com/v1/video-captions \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: festive-cue-001" \
-d '{
"video_url": "https://example.com/clean.mp4",
"style": "slam",
"cues": [{"text": "3 days left", "start": 0.5, "end": 3.5}],
"design": {"colors": {"base": "#FFFFFF", "active": "#E11D48", "stroke": "#14532D"}}
}'
A countdown set
Countdown stickers themselves are a TikTok feature, not a Sume output. What you can do is burn the number of days into the clip. Five variants (5, 4, 3, 2, and 1 days left) are five caption jobs, 5 x $0.20 = $1.00, all on the same caption-free source.
Plan the cue timing against the clip. A cue is text with start and end in seconds. Put the countdown in the first three seconds, where a muted viewer is still watching, and leave the last seconds clear for the platform's own button.
Test two palettes on the same source clip, since the cost of the second is only another $0.20. A warm red and green set and a gold and white set can be compared in the ad manager as two creatives, with the same footage underneath, so any difference you see is the caption design and not the shot.
Phrasing is the other lever. design.phrasing.max_words sets how many words stay on screen at once, which matters for a short line like a deadline. Keep a holiday line to a few words and let the picture carry the rest.
Keep contrast in mind. A red active word on a white base reads well on a dark or mid-tone frame; on a bright background, the dark green stroke does the work. Check one frame of each product before you run the whole set, and keep the cue to a few words.
Sources
Related posts
More in Use cases
- 15 listing tours in five languages: 75 caption jobs, $15.00
Burning translated room labels on 15 listing tour videos in Spanish, Portuguese, French, German and Italian is 75 Sume caption jobs at $0.20 each, $15.00.
- Add one real shot: how a filmed clip changes an AI Short
One filmed shot of your own among generated clips gives an AI Short a part nobody else has. What YouTube's pages say, the label question, and a Timeline build.
- Find each script line in a recorded read: match STT words to script
Transcribe a studio read with Sume STT, then match its words to your script lines to get start and end seconds per line for cutting takes. Python.
- Fit a voiceover to a 30-second ad: measure pace, then set TTS speed
Send timestamps.words, read the last word end time, and rescale generation_config.speed (0.6 to 1.5) until a Sume TTS take fits its slot. Two takes, 2 cents.
Written by Sume