Free subtitle tools

Caption utilities,
no signup.

Convert between subtitle formats, fix timing, and audit reading speed. Everything runs in your browser — files never leave the page.

Extract

YouTube transcript

Paste a YouTube link, get the full transcript as SRT, VTT, or plain text — every available language.

Generate

Text to SRT

Paste plain text, get a timed .srt or .vtt. Pick fixed seconds or scale by reading speed.

Sync

Shift subtitle timing

Captions out of sync? Push every cue forward or back by any offset. Works on .srt and .vtt.

Sync

Frame-rate converter

Fix progressive subtitle drift by rescaling between 23.976/24/25/29.97/30/60 fps.

Combine

Merge subtitle files

Combine multiple .srt or .vtt files into one. Auto-chain or set per-file offsets.

Audit

Reading speed checker

Find cues exceeding Netflix's 17 CPS or BBC's 15 CPS. Switch presets for kids' TV or short-form.

Audit

CPS calculator

Single-cue checker. Type a line, set the duration, see CPS / WPM against Netflix, BBC, TED presets.

Format

Subtitle line splitter

Reflow long lines to fit Netflix's 42-char or BBC's 37-char standard. Two-line cues balance automatically.

Convert

SRT to VTT

Turn .srt subtitles into WebVTT for HTML5 <track>. Adds the WEBVTT header, fixes timestamp punctuation.

Convert

VTT to SRT

Get a clean .srt from a WebVTT file — drops cue tags so it imports into Premiere, CapCut, and DaVinci.

Convert

ASS to SRT

Drop styling from an Aegisub-style .ass file and get a portable .srt.

Convert

SRT to ASS

Wrap a plain .srt in an ASS template — ready to open and restyle in Aegisub.

Convert

ASS to VTT

Strip ASS override codes and get a clean WebVTT for HTML5 <track>.

Convert

VTT to ASS

Bring a .vtt into Aegisub via a Default-styled ASS wrapper.

Convert

SRT to plain text

Strip timestamps and indices from an .srt to get a paste-ready transcript.

Convert

VTT to plain text

Pull just the words out of a WebVTT file — useful for show notes, blog posts, or feeding to an LLM.

Convert

SRT to SBV

Turn a standard .srt into the YouTube SBV format — comma timestamps, no cue numbers.

Convert

SBV to SRT

Convert a YouTube .sbv export into a clean .srt that drops into Premiere, CapCut, DaVinci.

Convert

SRT to JSON

Get a structured JSON array of cue objects — start, end, text — ready for any captions pipeline.

Convert

JSON to SRT

Paste a Whisper-style JSON of cues, get a clean .srt back. Round-trips losslessly.

Convert

SRT to CSV

Open subtitles in Sheets or Excel. One row per cue, columns for index, start, end, text.

Convert

CSV to SRT

Edit captions in a spreadsheet, then turn the CSV back into a standard .srt file.

Convert

SRT to TTML

Generate TTML / IMSC XML from a plain .srt for streaming or broadcast ingest.

Convert

TTML to SRT

Strip the XML envelope from a .ttml, .dfxp, or IMSC file and get a portable .srt.

Reference
Subtitle terms, defined.
SRT vs VTT vs ASS, CPS, WPM, SDH, hardcoded captions — plain English.
Open glossary
Need to make the captions in the first place?
Drop a video in the SoCaptions editor — AI transcription, viral styles, MP4 export. Five minutes free.
Open editor