Last updated June 6, 2026 (UTC)
Reading speed for captions — CPS and platform limits
Viewers read captions while watching the shot. If lines are too dense or change too fast, people drop off — and some platforms reject or flag uploads when reading rate is out of spec. This page is a practical field guide, not a medical standard: use it to catch problems before handoff.
The numbers people actually use
CPS (characters per second) per line is the usual engineering check: count visible characters on a line (including spaces) and divide by how long that line is on screen. WPM (words per minute) shows up in broadcast and some AI tools; it is a different lens on the same problem.
Run your file through CaptionPass — free caption converter with a full QA report.
Convert & fix free →For YouTube and most web VOD, teams often aim for roughly ~15–20 CPS for English on a single line, and avoid long two-line stacks unless the edit really needs them. If your lines routinely run hot, split cues or shorten copy before export.
TikTok and short vertical is unforgiving: the safe area is small, on-screen time is short, and aggressive CPS makes captions unreadable in a single beat. Favor short lines, fewer words per cue, and re-time rather than squeezing a paragraph into 1.2 seconds.
Line length and line breaks
A “slow” CPS on a very long line is still hard to read. Break at natural phrase boundaries, keep one thought per cue when you can, and watch for your NLE or export tool reflowing text into surprise two-line stacks after upload.
Platform QA that actually catches speed issues
- Spot-check the first and last 60 seconds of the piece — that is where handoff mistakes hide.
- Watch on a phone if the audience is mobile-first; small screens punish dense captions.
- If a preset or host warns about “reading rate” or “display rate,” believe it and split cues.
CaptionPass presets encode delivery rules (including line length and overlap repair) for each target. Run your file and read the validation report next to the download.
Related: SRT vs VTT, overlapping cues.
Convert your captions free
Upload on CaptionPass, pick a delivery preset, and download upload-ready output with optional enhanced formatting — free tier, no account required.
Convert & fix free →More guides
- Free online caption converter — SRT, VTT, and delivery QAHow CaptionPass works as a free caption converter with upload-ready and enhanced exports, platform presets, and explainable fixes. Try the same presets on the homepage tool or Quick fix before you open a Pro project.
- SRT to VTT converter guide — headers, timestamps, and pitfallsWhen to convert SRT to WebVTT, what breaks if you rename extensions, and how to validate before HTML5 or YouTube delivery. CaptionPass converts and validates both formats in the dashboard workbench and v1 API.
- SRT vs VTT — when each format silently failsComma vs dot timestamps, WEBVTT headers, and where YouTube, TikTok, and HTML5 bite. Run either format through the homepage tool or POST /api/v1/process to see explainable fixes before delivery.
- Caption file encoding — UTF-8, BOM, and garbled textWhy uploads show mojibake or blank cues: UTF-8 vs legacy encodings and quick fixes. CaptionPass ingest reports flag encoding issues in the workbench Checks tab and v1 processing errors.
- Burned-in vs soft subtitles — what to deliver whenOpen captions burned into the picture vs separate SRT/VTT tracks — tradeoffs for editors and clients. Pro users can mux or burn-in via v1 render jobs after sidecar QA in the workbench.
- YouTube caption upload issues — silent rejection and timingWhen Studio accepts a file but captions vanish: format, line length, drift, and how to validate before publish. Export with the YouTube preset from Deliver or v1 before you upload to Studio.
- YouTube rejected my SRT — invalid file and Studio errorsWhen YouTube Studio blocks an SRT upload: encoding, index gaps, bad timestamps, and how to validate before you retry. Quick fix and the homepage tool surface the same diagnostics as a failed v1 run.
- Caption timing drift after export from Premiere or DaVinciWhy captions slip after NLE export: frame rates, timecode starts, and how to normalize before YouTube or client delivery. Pro drift diff in the workbench compares revisions after you re-import from an NLE.
- CaptionPass vs generic subtitle convertersFormat swap tools vs delivery QA: explainable fixes, platform presets, and when each approach fits your workflow. CaptionPass adds Checks, receipts, and handoff packs on top of one-shot homepage conversions.
- CaptionPass vs Subtitle EditDesktop authoring vs delivery QA: when to use Subtitle Edit for editing and CaptionPass for platform-safe validation and API automation. Ship Subtitle Edit exports through the dashboard workbench or v1 API for final QA.
- Caption QA API for CI/CD pipelinesAutomate SRT and VTT validation in GitHub Actions or your build pipeline with POST /api/v1/process and Bearer API keys. Keys and usage meters live under dashboard Automate alongside export webhooks.
- TikTok subtitle format — short lines, CPS, and clean SRTVertical video reading speed, styling stripped on upload, and export settings that survive TikTok delivery. Use the social-shorts handoff profile or TikTok preset from Deliver before upload.
- Why your captions are not showing — a triage guideHTML5, YouTube, and TikTok checks when subtitles vanish after upload. Cross-check workbench preflight and History receipts to confirm what CaptionPass actually exported.
- Fix overlapping subtitlesWhat overlap means and why some players drop overlapping cues. CaptionPass flags overlapping_cues in Checks and can auto-fix via Fix again or v1 process.
- TTML and DFXP — broadcast-style timed text on the webNamespaces, timing, styling stripped in practice, and when TTML is the right interchange vs SRT or WebVTT. Convert inbound TTML through v1 or the homepage tool when clients deliver broadcast sidecars.
- CaptionPass JSON IR and the developer-json presetLossless-ish cue interchange for tooling: when to use JSON IR, version tag, and how it pairs with the HTTP API. Request the developer-json preset from POST /api/v1/process or export it from the workbench.
- Timecode, frame rate, and caption syncWhy captions drift or jump: drop-frame vs non-drop, fractional frame rates, and export settings that survive upload. Pro drift panel and v1 diff help confirm sync after re-export from an NLE.
- WCAG-minded captions — reading speed, sound tags, and burned-in contrastHow WCAG 1.2.x thinking maps to real files: CPS, line length, SDH-style cues, and contrast for open captions. Platform presets in the dashboard enforce readable CPS before you hand off to clients.
- Educators & classrooms — CaptionPass for instructionPartner program for instructors: API keys, workspace pilots, Learn guides, and classroom-appropriate access. Students can start with the free homepage tool before moving to dashboard projects.
Fix in CaptionPass
Free caption converter · Homepage tool · HTTP API (v1) · Pro workspace