TranscribeTok Blog
← All Articles

Home › TikTok Transcript Generator

How-To··7 min read

SRT to VTT: Convert Subtitle Files in 10 Seconds

Convert SRT to VTT in about ten seconds: add a WEBVTT header and swap the timecode commas for periods. Both directions explained, plus why files fail to load.

Get any TikTok transcript instantly

2 free transcripts a day · No signup · Copy or download as TXT, DOCX, SRT

Try Free →

You exported subtitles, renamed the file from .srt to .vtt, and the browser refuses to show them. Nothing is broken. The two formats look nearly identical when you open them, but they differ in three small ways, and a renamed file gets all three wrong.

Here is the whole difference, and the ten-second fix.

SRT vs VTT: the three differences

VTT requires a header line, SRT has none. A WebVTT file must begin with the exact word WEBVTT on the first line, followed by one blank line. Without it, the file is not a valid WebVTT file and browsers reject it silently.

The timecode separator is different. SRT writes milliseconds after a comma — 00:00:04,500. VTT writes them after a period — 00:00:04.500. This is the single most common reason a subtitle file fails to load, and it is invisible unless you know to look for it.

Cue numbers are required in SRT, optional in VTT. SRT puts a sequential number above every caption block. WebVTT allows an identifier but ignores it, so you can keep the numbers or delete them and the file plays either way.

SRT WebVTT
File header None Must start with WEBVTT + blank line
Timecode 00:00:04,500 00:00:04.500
Separator before ms Comma Period
Cue numbers Required Optional, ignored
Styling and positioning None STYLE, REGION, cue settings
Comments Not supported NOTE blocks
Encoding Varies, often Windows-1252 UTF-8 only
Used by Video editors, social platforms, desktop players HTML5 <track>, web video
Extension .srt .vtt

Read that table and the conversion is obvious: it is a header line and a find-and-replace. No tool required.

Converting SRT to VTT by hand

Open the .srt in a plain text editor — Notepad, TextEdit set to plain text, VS Code, anything that does not add formatting. Do not use Word or Google Docs; they will inject formatting and break the file.

Type WEBVTT on the very first line and press Enter twice, so there is one completely blank line between the header and the first caption. Then run a find-and-replace on the comma in the timecodes: search for , and replace with . — but only inside timecodes. If your captions contain commas in the dialogue, search for the pattern with the digits around it rather than the bare comma, or your subtitles will lose their punctuation.

A safer find-and-replace, if your editor supports regular expressions, is to search for (\d{2}:\d{2}:\d{2}),(\d{3}) and replace with $1.$2. That matches only timecodes and leaves dialogue commas alone.

Save the file as UTF-8, without a byte order mark, and change the extension to .vtt. The BOM matters: a few browsers see those invisible leading bytes and fail to recognise the WEBVTT header immediately after them.

Before:

1
00:00:00,000 --> 00:00:03,200
Right, so the thing nobody tells you

After:

WEBVTT

1
00:00:00.000 --> 00:00:03.200
Right, so the thing nobody tells you

That is the entire conversion.

Need the subtitle file in the first place? Paste any public TikTok link into TranscribeTok and export the transcript as SRT, with timecodes on every caption line. Two free every day, no signup, no card. → Get a TikTok SRT at TranscribeTok.com

Converting VTT back to SRT

The reverse conversion is the same edit backwards, with one extra step. Delete the WEBVTT line and the blank line beneath it. Replace every period in the timecodes with a comma. Then check that each caption has a sequential number above it — if the VTT omitted them, you must add them, because SRT genuinely requires them and many players will refuse a file without them.

One thing that does not survive the trip back: WebVTT styling. STYLE blocks, REGION definitions, NOTE comments and inline cue settings such as align:start position:10% have no SRT equivalent. Delete them. If your captions relied on positioning, that positioning is gone, and there is no workaround — SRT simply has no concept of it.

Where TranscribeTok fits

TranscribeTok exports TXT, DOCX and SRT. It does not export VTT. If your workflow needs VTT, you will do the ten-second edit above yourself, and we would rather say that plainly than let you find out after exporting.

The SRT we produce is timed per caption line, not per word. That is the right granularity for subtitles and for citing a moment in a video; it is not fine enough for karaoke-style word highlighting. TikTok transcripts with timestamps goes into what the timing actually looks like and which export carries it, and downloading TikTok captions and subtitles covers getting a standards-compliant SRT out of a TikTok in the first place.

If VTT specifically is a hard requirement and you would rather not touch a text editor, some competitors export it directly — VexaScribe and WayinVideo both do. The best TikTok transcript tools compared lays out who exports what.

Common failures and what causes them

The file loads but no captions appear. Almost always the timecodes still use commas. The browser parsed the header, found no valid cue timings, and rendered nothing.

The browser reports an invalid WebVTT file. Either the WEBVTT header is missing, there is no blank line after it, or a byte order mark is sitting in front of it. Re-save as UTF-8 without BOM.

Captions appear but drift out of sync. This is not a format problem — the conversion does not touch timing values. Drift means the source transcript was timed against a different cut of the video, or the video was sped up after the subtitles were made.

Accented or non-Latin characters render as symbols. The file was saved in a non-UTF-8 encoding. WebVTT is UTF-8 only. Re-save with UTF-8 encoding, and note this bites hardest on non-English subtitles — the Arabic, Spanish and Ukrainian guides all deal with scripts where a bad encoding is immediately obvious.

Only the first caption shows. A caption block is missing its blank-line separator, so the parser read the rest of the file as part of cue one.

Which format to keep

Keep the SRT. It is accepted by every major video editor, every social platform that takes subtitle uploads, and every desktop player. VTT is accepted by browsers and by fewer editors. Since converting SRT to VTT takes ten seconds and converting back loses styling, the SRT is the better master file.

The exception is if you are publishing HTML5 video yourself. The <track> element requires WebVTT, full stop, so VTT is the delivery format and you will generate it from your SRT each time.

Related guides

Working with non-English subtitles? The TikTok transcript by language hub lists every per-language guide, and encoding problems show up fastest on Arabic and Japanese text.

Frequently asked questions

What is the difference between SRT and VTT? VTT starts with a WEBVTT header line and a blank line; SRT has no header. VTT timecodes use a period before the milliseconds, SRT uses a comma. SRT requires numbered cues, VTT treats them as optional.

How do I convert SRT to VTT without a tool? Open the SRT in a plain text editor, add WEBVTT and a blank line at the top, replace the timecode commas with periods, save as .vtt. Ten seconds, no software.

Why won't my VTT file load? Usually a missing WEBVTT header or timecodes still using commas — both happen when an SRT is renamed rather than edited. A UTF-8 byte order mark before the header causes the same failure.

Can I convert VTT back to SRT? Yes. Remove the header, swap periods for commas, add sequential cue numbers, save as .srt. Any STYLE, REGION or NOTE blocks must be deleted — SRT has no equivalent.

Does TranscribeTok export VTT? No. TranscribeTok exports TXT, DOCX and SRT. Converting the SRT to VTT is the manual ten-second edit described above.


Nearly every "subtitle file won't load" problem in this category comes down to a comma that should be a period. Once you have seen it once, you will spot it in a second, and you will never need a converter tool for it again.

→ Get a timed TikTok SRT free at TranscribeTok.com

Related guides

Ready to get your TikTok transcript?

Paste any TikTok link and get the full text in seconds — two free transcripts every day, no account required.

Get TikTok Transcript Free →