Korean captions on slam return 400: caption_hangul_text_latin_style
Sending Hangul text to slam, punch or tiktok-green returns 400. Sume refuses rather than burn tofu boxes. Use black-outline or a Hangul style.

If you send Korean text to the slam, punch or tiktok-green caption styles, Sume returns 400 with caption_hangul_text_latin_style and does not create a job. Those styles use Latin display faces with no Hangul glyphs. The docs say a caption style you did not select is worse than an error, because the alternative is a video full of tofu boxes at the same price as a good video.
What to send instead
For Korean speech, the docs tell you to use one of the Hangul identities and not slam. If you send no style, Sume decides by the caption text: Korean text resolves to black-outline, and Latin text to slam. A style you select is always honored.
| Style | Look |
|---|---|
black-outline | White fill on a thick black outline, centered. The safe default. |
weight-shift | Phrase cards; the spoken word gets the heavy weight. |
highlight | An accent block moves in behind the spoken word. |
pill-karaoke | A dark pill card whose color changes with the voice. |
clip-wipe | Words wipe in from left to right; clearest at small phone sizes. |
editorial-emphasis | Left-aligned two-line card; last word of the phrase set large in a display face. |
korean-ad | Ad karaoke look: weight-shift with an accent color on the spoken word. |
Two related refusals
The font rule mirrors the style rule. If you send a Hangul font with a Latin style, the API returns 400 with caption_font_requires_hangul_style. Both checks happen at request time, so you pay nothing for a render that would have been wrong.
Setting language: "ko" does not fix either error. The docs say language only tells speech-to-text which language to expect; it never selects a style or a font.
Handling it in code
If your pipeline captions mixed-language batches, route by the transcript's script, not by a fixed default. A Hangul-bearing line goes to a Hangul style; a Latin line can still use slam. The korean-ad style needs language: "ko" and supports Korean script_text. Since the error comes back before a job exists, a try-then-fallback loop is safe, and it is free.
Why an error beats a fallback
Many tools quietly swap the font when a glyph is missing. Sume's design choice is the opposite: the job is not created, the style is not changed, and the message names the problem. For an API consumer that is easier to test, since a given request either returns a job or a stable code.
The price also stays honest. A tofu-box video would cost the same $0.20 as a good one under the standalone estimate, so the check saves money as well as a reshoot.
Sources
Related posts
More in Media tools
- Korean captions on a small phone: clip-wipe or black-outline?
Sume lists six Hangul caption styles. The docs call black-outline the safe default and clip-wipe the clearest at small phone sizes. Fonts and the 400 rule.
- LinkedIn Page video max ratio 2.4:1: crop a 32:9 recording
LinkedIn Pages accept video from 1:2.4 to 2.4:1 and up to 4096x2304. A 5120x1440 ultrawide capture fails both. Crop it with Sume video filter to fit.
- LinkedIn video ads need under 30 fps: render at 24 or 25 on Sume
LinkedIn's spec says frame rate must be less than 30 fps. Sume Timeline and trim accept 24, 25, 30 or 60, so only 24 and 25 fit. How to set it and check it.
- LinkedIn ratios 1:1, 4:5, 9:16: Sume video-filter crop fractions
LinkedIn lists 16:9, 1:1, 4:5 and 9:16 video. Centered crop fractions for a 16:9 or 9:16 source, plus a short Python function that prints the video-filter ops.
Written by Sume