Caption utilities,
no signup.
Convert between subtitle formats, fix timing, and audit reading speed. Everything runs in your browser — files never leave the page.
YouTube transcript
Paste a YouTube link, get the full transcript as SRT, VTT, or plain text — every available language.
Text to SRT
Paste plain text, get a timed .srt or .vtt. Pick fixed seconds or scale by reading speed.
Shift subtitle timing
Captions out of sync? Push every cue forward or back by any offset. Works on .srt and .vtt.
Frame-rate converter
Fix progressive subtitle drift by rescaling between 23.976/24/25/29.97/30/60 fps.
Merge subtitle files
Combine multiple .srt or .vtt files into one. Auto-chain or set per-file offsets.
Reading speed checker
Find cues exceeding Netflix's 17 CPS or BBC's 15 CPS. Switch presets for kids' TV or short-form.
CPS calculator
Single-cue checker. Type a line, set the duration, see CPS / WPM against Netflix, BBC, TED presets.
Subtitle font picker
Preview Anton, Bebas Neue, Montserrat, Oswald & Inter with Outline, Box, Karaoke & Shadow styles on a dark background. Instant font comparison for TikTok, Reels & Shorts.
YouTube Shorts length checker
Check your clip against the 3-minute Shorts limit and see ideal length tiers for tips, tutorials, and stories.
Safe zone preview
TikTok, Reels, and Shorts overlay at 1080×1920 — see where UI covers text and where to place captions.
SRT duration calculator
Paste SRT or VTT to get total subtitle span, cue count, and average characters per second.
Subtitle line splitter
Reflow long lines to fit Netflix's 42-char or BBC's 37-char standard. Two-line cues balance automatically.
SRT to VTT
Turn .srt subtitles into WebVTT for HTML5 <track>. Adds the WEBVTT header, fixes timestamp punctuation.
VTT to SRT
Get a clean .srt from a WebVTT file — drops cue tags so it imports into Premiere, CapCut, and DaVinci.
ASS to SRT
Drop styling from an Aegisub-style .ass file and get a portable .srt.
SRT to ASS
Wrap a plain .srt in an ASS template — ready to open and restyle in Aegisub.
ASS to VTT
Strip ASS override codes and get a clean WebVTT for HTML5 <track>.
VTT to ASS
Bring a .vtt into Aegisub via a Default-styled ASS wrapper.
SRT to plain text
Strip timestamps and indices from an .srt to get a paste-ready transcript.
VTT to plain text
Pull just the words out of a WebVTT file — useful for show notes, blog posts, or feeding to an LLM.
SRT to SBV
Turn a standard .srt into the YouTube SBV format — comma timestamps, no cue numbers.
SBV to SRT
Convert a YouTube .sbv export into a clean .srt that drops into Premiere, CapCut, DaVinci.
SRT to JSON
Get a structured JSON array of cue objects — start, end, text — ready for any captions pipeline.
JSON to SRT
Paste a Whisper-style JSON of cues, get a clean .srt back. Round-trips losslessly.
JSON to LRC
Turn timed JSON cues into synchronized .lrc lyrics for players and karaoke workflows.
SRT to CSV
Open subtitles in Sheets or Excel. One row per cue, columns for index, start, end, text.
CSV to SRT
Edit captions in a spreadsheet, then turn the CSV back into a standard .srt file.
SRT to TTML
Generate TTML / IMSC XML from a plain .srt for streaming or broadcast ingest.
TTML to SRT
Strip the XML envelope from a .ttml, .dfxp, or IMSC file and get a portable .srt.