Toolvore

Subtitle Converter

Convert plain SRT and WebVTT locally, with cue previews and no silent metadata loss.

This tool runs entirely in your browser. Your data is never uploaded, never stored, and never leaves your device.

Convert plain-text SRT and WebVTT locally, refusing unsupported metadata instead of silently stripping it.

How to use it

  1. 1Paste subtitle text or load a UTF-8 .srt or .vtt file and select its actual format.
  2. 2Convert, then inspect cue timing and any unsupported-feature error.
  3. 3Copy or download the other format and check it in your target player.

Example

Input
1 00:00:01,250 --> 00:00:03,000 Hello, world.
Output
WEBVTT 00:00:01.250 --> 00:00:03.000 Hello, world.

What happens to your data

Caption text is parsed in browser memory, without opening a video or uploading subtitles. The downloaded file contains your text; unsupported markup stops conversion rather than being erased.

Last updated October 2026

A video platform may accept SubRip subtitles while a web page needs a WebVTT text track. Change between those two delivery formats without uploading a video or sending caption text to a conversion service. Paste an existing subtitle file or load UTF-8 text, choose its actual format, inspect the cue preview and download the converted file. This is format conversion, not transcription, translation or caption generation.

A successful conversion should not hide lost information. WebVTT can carry positioning, voice markup, styles and other information that this plain-text SRT export cannot represent. Instead of silently deleting those features, the converter stops and explains the unsupported construct. Keep the original file and deliberately prepare a plain-text copy when that is what your receiving application requires.

How it works

Supported SRT input has a positive numeric counter, a start/end line and one or more nonempty text lines per cue. Timestamps use hours:minutes:seconds,milliseconds. A blank line separates cues. Counter spelling is not treated as a timing instruction: SRT → WebVTT uses cue order, and converting WebVTT back generates new counters starting at 1. Cue start times must be non-decreasing, and every end must be later than its own start. Overlapping cues are retained and reported because simultaneous speakers or descriptions may intentionally overlap.

WebVTT begins with WEBVTT and a blank separator. Its timestamp decimal separator is a period, and a zero-hour timestamp may omit the hours. The output always writes hours explicitly. Converting WebVTT → SRT accepts a bare header and cues with no identifiers, NOTE blocks or settings. STYLE and REGION blocks, extra header metadata and region settings are refused by the parser. Other cue identifiers, a header comment or NOTE blocks stop conversion because those would otherwise disappear. A text-only converter is not a substitute for a full subtitle authoring system.

Conversion accepts plain cue text rather than inline markup. Angle-bracket formatting, speaker tags and embedded timestamps stop the operation. An ampersand in plain SRT text is escaped as & for WebVTT. The reverse direction decodes the six WebVTT named character references: amp, lt, gt, nbsp, lrm and rlm. Decoded angle brackets are refused because a receiving SRT player might interpret them as markup. Unknown character references are not guessed. This deliberately narrow behavior avoids pretending that every SRT player's informal HTML conventions mean the same thing.

UTF-8 files may have one initial byte-order mark; it is removed with a notice. Invalid UTF-8 bytes are rejected rather than replaced. LF, CRLF and CR source line endings are accepted, while output is UTF-8 with LF. Line-ending normalization and regenerated SRT counters mean the result is not a byte-identical archival copy, even when the visible plain text and timings are retained. Leading/trailing spaces inside cue payload lines remain data. Blank lines separate cues, so paragraph breaks inside one cue are outside this supported subset.

The bounded input is 2 MiB, 60,000 physical lines and 10,000 cues. Timestamp hours can extend to 9,999. A timestamp field must use valid minute and second ranges and exactly three fractional digits. Bad timing, missing counters, empty cues or a missing blank separator stops the full operation; there is no partial file that looks complete. The first 20 cues appear in the preview and every accepted cue appears in the download.

Caption text and file parsing remain in browser memory. The tool does not open a video, inspect audio or contact a subtitle provider. Editing the format or text removes the previous result, and a late file read cannot overwrite a newer edit. Clear removes the current widget text; it cannot erase files already downloaded, copied elsewhere or retained by your device. Review the exported file in the actual player, including language, cue timing and any intended overlap. Conversion alone does not certify accessibility or the correctness of the transcript.

Worked example: Deliver an SRT cue as WebVTT

Input
1 00:00:01,250 --> 00:00:03,000 Hello, world.
Result
WEBVTT 00:00:01.250 --> 00:00:03.000 Hello, world.

The cue keeps its start, end and plain text. The SRT counter is replaced by WebVTT cue order.

Common use cases

  • Prepare an existing plain SRT caption file for an HTML video text track
  • Convert a plain WebVTT track for an application that requires SRT
  • Spot unsupported metadata before a conversion would discard it
  • Keep an unuploaded working copy of private interview or training captions

Frequently asked questions

Does this create subtitles from a video?+

No. Supply an existing SRT or WebVTT text file. No audio recognition, translation, video upload or burned-in caption export occurs.

Why does a styled or positioned WebVTT file fail?+

This is a plain-text conversion subset. It will not silently throw away voice/style tags, positioning, identifiers, NOTE blocks or header metadata. Retain your original and remove unwanted features deliberately in a copy, or use a full editor that supports them.

Are overlapping subtitle cues repaired?+

No. Overlap is retained and shown as a notice. It can be intentional. Cue start times must still be non-decreasing and each cue must have a positive duration.

Why do the counter numbers change on export to SRT?+

WebVTT identifiers need not be numeric, while this supported SRT shape uses sequential numeric counters. The converter generates 1, 2, 3 and so on without changing accepted cue times.

Can I load a Windows-1252 or UTF-16 subtitle?+

File import is strict UTF-8. Convert the text encoding deliberately with a suitable encoding tool first. An extension does not identify the underlying encoding, and invalid bytes are not silently replaced.

Does successful conversion guarantee player compatibility?+

No. Test the actual receiving application and video. Encoding, platform limits, accepted file conventions and transcript quality are separate from the supported conversion performed here.