EarScribe

SRT ⇄ VTT converter

Free SRT to VTT converter (and VTT to SRT)

SRT and WebVTT carry the same timed lines in slightly different syntax. Paste subtitles or drop a .srt or .vtt file: EarScribe detects the format, converts it in your browser and tells you when something couldn't be carried over.

  • Works both ways: SRT to VTT and VTT to SRT
  • Warns about positions and styles SRT can't keep
  • Nothing uploaded, no account

Runs in your browser. Files are not uploaded.

Convert to

Review the transcript before you export

Convert subtitles for free in three steps

1

Add the subtitles

Drop a .srt or .vtt file, choose one from your device, or paste the text. The format is detected automatically.

2

Check the output format

The other format is selected for you. Check the number of cues and any warning about dropped settings.

3

Copy or download

Copy the result, or download it with the original file name and the new extension.

SRT
1
00:00:00,000 --> 00:00:05,200
Welcome back to the show. Today we're talking
with a researcher who studies attention at work.

2
00:00:05,700 --> 00:00:11,180
Thanks for having me. The first thing I tell people
is that interruptions aren't <i>really</i> the problem.

3
00:00:11,580 --> 00:00:13,580
Really? Then what is?
WebVTT
WEBVTT

00:00:00.000 --> 00:00:05.200
Welcome back to the show. Today we're talking
with a researcher who studies attention at work.

00:00:05.700 --> 00:00:11.180
Thanks for having me. The first thing I tell people
is that interruptions aren't <i>really</i> the problem.

00:00:11.580 --> 00:00:13.580
Really? Then what is?

srt to vtt

What actually changes between SRT and WebVTT

The text and the timing survive a conversion unchanged. What differs is the syntax around them, plus a handful of WebVTT features that SRT has no way to express.

The syntax differences

An SRT file is a list of numbered blocks: a counter, a timing line with commas before the milliseconds, and one or more lines of text. WebVTT begins with the word WEBVTT, uses dots before the milliseconds, treats cue identifiers as optional, and allows the hours to be left out (01:02.500).

Converting SRT to VTT adds the header, swaps the separators and escapes the characters WebVTT reserves, such as & and <. Converting back renumbers the cues from 1.

Features SRT can't carry

WebVTT cue settings (position, line, align, size and vertical), STYLE and REGION blocks, and NOTE comments have no SRT equivalent. EarScribe drops them and shows a warning, so you know to check placement in your video editor.

Voice spans such as <v Anna> become a plain "Anna:" prefix, class spans and karaoke timestamps are removed, and <b>, <i> and <u> are kept because most SRT players understand them.

Encoding and line endings

Subtitles made years ago are often saved in Windows-1252, GB18030 or Shift_JIS rather than UTF-8. If a file isn't valid UTF-8, EarScribe decodes it with a common legacy encoding and tells you; you can pick a different one from the list.

Output is always UTF-8 with plain line breaks, which current players, browsers and editors read without trouble.

WebVTT
WEBVTT

NOTE Episode 12, exported from the editor

STYLE
::cue(v[voice="Host"]) { color: #7dd3fc; }

00:00:11.580 --> 00:00:13.580 line:10% align:start
<v Host>Really? Then what is?

00:00:13.580 --> 00:00:19.020
<v Guest>Getting back. After a short break,
most of us need a few minutes to find our place.
SRT
1
00:00:11,580 --> 00:00:13,580
Host: Really? Then what is?

2
00:00:13,580 --> 00:00:19,020
Guest: Getting back. After a short break,
most of us need a few minutes to find our place.

Review the transcript before you export

Before you upload the converted file

  1. 1

    Timing

    Spot-check the first and last cue against the video.

  2. 2

    Placement

    If the VTT had positioned cues, reposition them in your editor after converting to SRT.

  3. 3

    Characters

    Broken accents or symbols point to an encoding problem in the source.

  4. 4

    File name

    Keep a language code if your platform uses one, such as video.en.vtt.

What this converter doesn't do

  • It doesn't shift timing, merge cues or fix overlaps; the timing stays exactly as it is.
  • It reads and writes SRT and WebVTT only; formats such as ASS or TTML aren't supported.

Which format to use where

  • Web players built on the HTML5 <track> element read WebVTT. If subtitles don't show up in a web player, a VTT file is usually the fix.

  • Video editors such as Premiere Pro and DaVinci Resolve import SRT, and YouTube accepts both formats.

  • Keep the original file: converting VTT to SRT drops positioning and styling you can't get back.

Questions about this workflow

What's the difference between SRT and VTT?

Both list cues with a start time, an end time and text. WebVTT starts with a WEBVTT header, uses a dot before the milliseconds (00:00:01.000 instead of 00:00:01,000), doesn't need cue numbers, and supports positioning, styling and notes that SRT lacks.

Is anything lost when converting VTT to SRT?

Cue settings such as position and alignment, STYLE and REGION blocks, and NOTE comments have no SRT equivalent and are dropped. Speaker tags like <v Anna> become "Anna:" at the start of the line, while bold, italic and underline are kept.

My file shows strange characters. What happened?

Older subtitle files are often saved in a legacy encoding rather than UTF-8. EarScribe tries UTF-8 first, then falls back to a common legacy encoding; if characters still look wrong, choose the right encoding from the list. The result is always saved as UTF-8.

Are my subtitle files uploaded?

No. Reading and converting happen in your browser tab, so the file never leaves your device.

Related audio tools