YouTube Shorts series: pin one caption look for every episode

Shorts series run from 2026-09-23. Omit style and Sume picks one from the text. Pin style, font and design in one config so ten episodes look the same.

5 min readSume
All posts

To keep every episode of a YouTube Shorts series looking the same, send the same style and design object on every Sume caption call, and never rely on the default. If you omit style, Sume chooses one from the caption text: slam for Latin, black-outline for Korean. A bilingual season would then change look between episodes without a single line of your code changing. Keep one config, and send it with every request.

The reason to care now is that YouTube Shorts series (seasons, episodes, custom thumbnails and sequential playback) started rolling out on 2026-09-23 on web, mobile and TV, according to the Orthotropy October update (read 2026-10-06). A series is watched in order, so a changing caption style from one episode to the next is easy to see.

What to pin

The video-captions endpoint takes a public HTTPS video_url, a style (slam, punch, tiktok-green, korean-ad, black-outline, weight-shift, highlight, pill-karaoke, clip-wipe or editorial-emphasis), an optional Hangul font and a design object that overrides colors, typography, placement, phrasing and motion for one request. language is only a hint for speech-to-text. It never picks the style or font. Two styles, punch and tiktok-green, ignore design entirely, so do not choose them if you need a tuned look.

One config, every episode

import json, os, urllib.request as u

LOOK = {"style": "black-outline",
        "design": {"colors": {"active": "#22D3EE"}, "placement": {"anchor_ratio": 0.72},
                   "phrasing": {"max_words": 4}}}
EPISODES = ["https://example.com/s1e1.mp4", "https://example.com/s1e2.mp4"]

def submit(i, url):
    body = {"video_url": url, **LOOK}
    req = u.Request("https://api.sume.com/v1/video-captions", data=json.dumps(body).encode(),
        headers={"Authorization": "Bearer " + os.environ["SUME_API_KEY"],
                 "Content-Type": "application/json", "Idempotency-Key": f"season1-caption-v1-{i}"})
    return json.load(u.urlopen(req))["data"]

for i, url in enumerate(EPISODES, start=1):
    job = submit(i, url)
    print(f"episode {i}:", job["request_id"], job["status_url"])

What can fail, and how to change the look later

Check the same few things on every episode. A number outside a documented range gives a 400 at request time, so a wrong look fails before it is paid for. Korean text on a Latin style returns 400 caption_hangul_text_latin_style; Hangul faces on a Latin style return 400 caption_font_requires_hangul_style. And when the spoken words are not the words you want shown, send script_text: Sume keeps the speech-to-text timings and aligns your text to them.

Changing the look later is a restyle, not a re-transcription. Send source_caption_id and the new style, and Sume reuses the source video and word timings. The price does not change, because a restyle is still a render. See restyle ad captions without a second transcription.

Caption cost for a Shorts season (read 2026-10-06)
Episodes (60 s or less)Caption jobsCost at $0.20 per jobWith one full restyle
1010$2.00$4.00
2424$4.80$9.60
5252$10.40$20.80

Budget

The $0.20 is per accepted standalone caption job for a video of at most 60 seconds, from the video-captions docs and the pricing page (read 2026-10-06). Check the live figure at GET /v1/catalog before you budget a large batch. If a season is also voiced by TTS, render the voice first and caption the finished clip; the order is covered in AI voiceover for Shorts.

A good habit for a season is a golden episode. Caption episode one, look at it on a phone, and fix the look in LOOK before you submit the other episodes. The mistakes that matter on a small screen are placement (the line sits behind the Shorts interface), line length (a phrase that wraps to three lines) and contrast (the accent color vanishes on a bright scene). Each is one field in design, and a restyle of a single episode costs the same $0.20 as a new job.

Keep the config in version control next to the episode list. When a season two starts, copy the file, change the accent color and nothing else, and the family resemblance is built in. If a later episode is in Korean, use the Hangul styles and a Hangul font in a second config rather than patching the first, because Hangul text on a Latin style is rejected.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume