creatorvalet Search

Convert SRT to VTT

Convert strict UTF-8 SRT cues to WebVTT while preserving times, displayed text and line breaks.

  • SECURE
  • NO UPLOADS
  • NO SIGNUP
  • BROWSER BASED
  • FREE
  • FOREVER.

Support us with a link or a share

Drop an SRT file here

It becomes VTT in this tab — nothing is uploaded.

Convert SRT to VTT without rewriting the captions

SRT and WebVTT both describe timed text cues, but their timestamp punctuation and document framing differ. SRT commonly starts each cue with a sequence number and writes milliseconds after a comma. WebVTT begins with a WEBVTT signature and uses a period. This converter changes those structural details while keeping every parsed cue boundary and payload line.

Choose a local .srt file or paste SRT text. The parser requires strict UTF-8, a recognizable SRT signature, valid time tokens, an end after each start, and at least one payload line. A filename that says SRT while its content says VTT is reported as a mismatch rather than routed through a forgiving guess.

Every output cue is reopened and compared

Times are parsed as integer milliseconds. The output writer changes comma punctuation to WebVTT periods and emits an explicit hours field, then the completed VTT document is parsed again. Cue count, start time, end time, and joined payload lines must match the source. A mismatch produces no download.

SRT cue numbers are retained as WebVTT cue identifiers. Bold, italic, and underline tags carry over as the same WebVTT tags. Font color tags and X1/Y1 position coordinates have no WebVTT counterpart, so they are removed, and the receipt says how many cues had them instead of refusing the file. Every other ampersand, angle bracket, and arrow is escaped so WebVTT players show it as text rather than reinterpreting it as an entity, tag, or cue structure. Conversion does not translate captions, move them on the timeline, infer styling from markup-like text, or burn captions into video. Use the subtitle shifter when the actual job is timing correction.

A complete local file comes back

The preview is bounded for page performance, but the download contains the complete verified result. UTF-8 BOM state and the source's consistent CRLF choice are preserved; mixed or lone-CR input is normalized to LF so the result has one explicit newline style. The filename keeps the source stem and changes only the extension to .vtt.

Caption files often contain unreleased dialogue, names, or client material. Parsing, conversion, verification, preview, and Blob download creation all run in this tab. Nothing is written to a server, URL, or storage, which you can confirm without trusting us by recording network activity during a conversion. For the reverse direction, use VTT to SRT.

Have an idea for this tool?

Tell us what would make this tool more useful, or suggest another tool you would like us to build.

Questions

Does conversion change subtitle timing?

No. Every start and end time is parsed as integer milliseconds, written with WebVTT punctuation, reopened, and compared with the SRT source.

What happens to italics, font tags and positions?

Bold, italic and underline tags become the same WebVTT tags. Font color tags and X1/Y1 position coordinates have no WebVTT equivalent, so they are removed and the receipt counts the cues that had them. Other ampersands, angle brackets and arrows are escaped so a player shows them as text.

Can I paste or edit subtitles?

Yes. Pasted or edited text is a new strict UTF-8 source. The receipt does not claim that an original file name, BOM, or byte-for-byte line ending survived an edit.

Are subtitle files uploaded?

No. Reading stays in this tab, and parsing, conversion and verification run in a local background worker.