Netflix subtitle limit: 42 characters per line, and max_chars

Netflix's English timed text spec allows 42 characters per line and two lines. Sume's caption design.phrasing.max_chars accepts 4 to 60, so 42 fits.

4 min readSume
All posts

Netflix's English (USA) timed text spec sets a limit of 42 characters per line and a maximum of two lines. On Sume's video captions endpoint, the matching knob is design.phrasing.max_chars, which sets characters per on-screen phrase and accepts 4 to 60, so 42 is a valid value. The two limits are not the same thing, though: Sume burns captions into the picture, and Netflix specifies a timed text file.

The Netflix numbers come from Netflix's English (USA) Timed Text Style Guide, read 2026-10-02. The Sume side comes from the Video captions docs and the OpenAPI schema for VideoCaptionCreateRequest.

What does the Netflix guide say about line length?

The guide's character limitation rule reads "42 characters per line". Its line treatment rule reads "Maximum two lines", and adds that text should usually stay on one line unless it exceeds the character limit. It also asks for line breaks after punctuation and before conjunctions and prepositions.

The same page is the English (USA) guide. Netflix publishes a separate guide per language, so a Spanish or Korean deliverable has its own numbers on its own page.

Limits from the Netflix English (USA) guide and the Sume caption schema, read 2026-10-02.
SettingNetflix English (USA) guideSume video captions
Characters42 per linedesign.phrasing.max_chars, 4 to 60, per on-screen phrase
LinesMaximum twoNot a field; phrasing is set by max_words, max_chars and pause_seconds
WordsNot specified on that pagedesign.phrasing.max_words, 1 to 12
OutputA timed text file for deliveryA burned-in captioned video; SRT uploads are unsupported

How do I set 42 characters on a Sume caption job?

Send design.phrasing.max_chars on POST /v1/video-captions. Every design field is optional and merges over the style's own value, so this one key changes one thing. Numbers outside the documented range return 400 at request time instead of rendering wrong and billing.

A standalone caption job reserves and captures $0.20 for a video up to 60 seconds under the current fixed estimate; confirm live pricing in GET /v1/catalog. Remember design is not supported on the punch and tiktok-green styles.

curl -X POST https://api.sume.com/v1/video-captions \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: caption-42-chars-001" \
  -d '{
    "video_url": "https://media.sume.com/artifacts/example/clean.mp4",
    "style": "slam",
    "design": { "phrasing": { "max_chars": 42 } }
  }'

Does this make a file Netflix will accept?

No. The Sume docs describe a captioned video as the output and say SRT uploads are unsupported, so there is no timed text file to hand over. Treat max_chars: 42 as a readability setting that follows the same spirit as the Netflix rule, not as delivery compliance. If a platform asks for a sidecar subtitle file, that file has to come from your own tooling; the cue text and times can still come from speech-to-text sentence segments.

What should I do next?

Pick the limit from the platform page that governs your delivery, set max_chars to it, and render one short clip before the full batch. For wording that comes from a script rather than speech, see phrasing with max_words, max_chars and pause_seconds. The Sume docs do not say how a phrase longer than the limit is wrapped, so check a render for one that runs long.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume