Shotcut SRT to VTT: How to Get a WebVTT File

Sep 17, 2026

Shotcut will read a VTT file in, but it only ever writes SRT out. The user guide lists four import formats — "Supported subtitle import formats include: SRT, VTT, ASS, and SSA." — and then sums up the other direction in a single sentence: "Subtitles can be exported to a file. Subtitles are exported in SRT format."

That asymmetry is the whole story. If something downstream wants a .vtt file, the route is two steps: export SRT from Shotcut, then convert it somewhere else. This page covers both, plus the Subtitles panel rules that decide whether you get a usable SRT in the first place.

Before you start

Check your version. The guide states that "The Subtitles Panel was added in Shotcut 24.08". Everything below assumes that panel exists.

Finish your edit first. This is the most important sentence in Shotcut's subtitle documentation, and it is easy to skip past:

"Subtitles can only be added to the Timeline. They can not be added to the playlist or clips. We recommend to save subtitle editing until the timeline editing is complete because moving or cutting clips on the timeline will break the subtitle synchronization."

So subtitles are a timeline-level thing, and rearranging clips afterwards breaks their sync. Do the cutting, then the captions.

Step 1: get subtitles into the Subtitles panel

The export in Step 2 reads from the Subtitles panel, so something has to be in there. The guide describes several ways to fill it.

Author them by hand. Per the guide: "To start editing subtitles, click the "add" button and give the subtitle track and name and language." After that, "the subtitle track area will appear in the timeline above the top video track. Multiple subtitle tracks can be added. But only the currently selected subtitle track is shown in the Subtitle Panel and the Timeline."

Import an existing file. SRT, VTT, ASS and SSA all come in. One trap, stated plainly by Shotcut: "Subtitles are imported at the current cursor position.So be sure to place the cursor before importing subtitles from a file." (The missing space after the full stop is in the original.) Park the playhead where the subtitles should begin before you import, not after.

Generate them with Speech To Text. The guide says the feature "was added in version 24.10.29" and "uses AI based on OpenAI's Whisper, courtesy of the whisper.cpp project." It "creates two jobs that appear in the Jobs panel: one to export audio and another to convert to text. The results are added to the Subtitles panel as a new top-level Subtitle Track."

Two caveats Shotcut publishes itself, under its own Known Quirks heading: "Subtitle items sometimes start earlier than expected. Timing is provided by the model and tool, and we lack the skills and resources to improve this." and "Expect there to be occasional errors." Budget time for a clean-up pass before you export.

Pull them out of the source file. Properties has an Extract Subtitles item, and a release note for 25.12.30 records that support for mov_text and SSA was added there. Beyond that, the user guide lists the menu item without describing its behaviour.

Step 2: export the subtitle track to a file

With the track selected in the Subtitles panel, export it. Shotcut's description is the one-liner already quoted: subtitles can be exported to a file, and they are exported in SRT format. There is no format picker to hunt for.

One thing worth knowing before you convert: Shotcut's official documentation doesn't state which character encoding the exported SRT uses. That matters downstream, because WebVTT does pin its encoding. Open the file in a text editor and confirm it looks right rather than assuming — and check the official documentation if you need a definitive answer.

Do not confuse this export with embedding. Those are different outputs, covered in the mistakes section below.

Step 3: convert the SRT to VTT

Do not rename the extension. The two formats differ inside the file.

The W3C WebVTT specification (Candidate Recommendation Draft, 20 May 2026) requires a WebVTT file to begin with the string WEBVTT, and states that "A WebVTT file must consist of a WebVTT file body encoded as UTF-8 and labeled with the MIME type text/vtt." It also pins the character before the milliseconds to "A U+002E FULL STOP character (.)" — where SRT files conventionally use a comma. A renamed .srt has neither the header nor the right separator, which is why the rename trick fails without any obvious error.

Try it right here

Runs in your browser. Your file is not uploaded anywhere.

Loading tool…

In this direction the conversion is small and nothing is dropped: prepend the WEBVTT header, change the timestamp commas to full stops, leave the rest of the structure alone. The converter above does exactly that inside your browser tab — the subtitle file is read from disk and handed back without being uploaded to a server, which matters more for a transcript of your own footage than it does for most media files.

If you want the format comparison rather than the procedure, SRT vs VTT, compared covers what each one can and cannot carry.

What to check after converting

  • Open it in a text editor. First line should read WEBVTT, and a timing line should look like 00:00:01.000 --> 00:00:04.000, with full stops. Commas mean the file never converted.
  • Check how your server sends it. The spec expects a .vtt file to be labeled text/vtt. A server that serves it as text/plain is a real cause of a perfectly good file producing no captions in a track element.
  • Plan the round trip before you need it. Going back the other way is lossy: our VTT to SRT converter drops the WEBVTT header along with NOTE, STYLE and REGION blocks, renumbers the cues in order, and discards cue settings — the positioning and alignment values written after the arrow. That last loss is the format's, not the converter's: SRT has no field to put them in. The renumbering has its own reason — the spec makes the cue identifier optional ("Optionally, a WebVTT cue identifier followed by a WebVTT line terminator"), so a converter cannot assume the source carries numbers at all.

Common mistakes

  1. Hunting for a VTT option in the export dialog. There is not one. Export SRT, then convert.
  2. Editing the timeline after writing subtitles. Shotcut states that moving or cutting clips on the timeline will break the subtitle synchronization, and recommends leaving subtitle work until the timeline edit is done.
  3. Importing before positioning the playhead. Subtitles land at the current cursor position, so an unplaced cursor offsets the whole track.
  4. Expecting the Burn-In filter to produce a file. The Subtitle Burn-In filter "can overlay subtitles that have been authored in the Subtitles Panel", and the guide is explicit that "The filter can only be added to the Timeline Output." It draws the text onto the picture; the separate caption file still comes from Step 2.
  5. Mistaking embedded subtitles for a sidecar file. Shotcut states that "subtitles will be embedded in the output file if the file format supports it. Formats that commonly support subtitles include MKV, MOV and MP4." That puts the captions inside the video file, not next to it. A release note for 24.08.29 records the addition of an Export > Other > Disable subtitles checkbox.

FAQ

Can Shotcut export subtitles as VTT? No. The user guide's export section says subtitles are exported in SRT format. VTT appears only on the import side, alongside SRT, ASS and SSA.

Can I import a VTT file into Shotcut? Yes — VTT is one of the four listed import formats. Place the playhead first, since subtitles are imported at the current cursor position.

Can I just rename the file extension to .vtt? No. WebVTT requires the WEBVTT string at the start of the file and a full stop before the milliseconds, where SRT files use a comma. Run it through SRT to VTT instead.

Does converting SRT to VTT lose anything? Not in that direction. The header is added and the timestamp separators change; the cue text and timings carry across unchanged. The reverse direction is where things get dropped, as listed above.

My auto-generated subtitles start slightly early. Is that a bug? Shotcut documents it as a known quirk of Speech To Text, saying the timing comes from the model and the tool and that they lack the skills and resources to improve it. Correct the timings in the Subtitles panel before exporting.


Convert the file you just exported with SRT to VTT, or browse all Clapr tools — everything runs locally in your browser. More walkthroughs like this one live in how-to guides.

Shotcut behaviour cited from the official Shotcut User Guide (June, 2026), the Features page and the official release notes, checked 16 September 2026. WebVTT requirements cited from the W3C WebVTT specification, Candidate Recommendation Draft dated 20 May 2026.

Clapr team

Clapr team

Shotcut SRT to VTT: How to Get a WebVTT File | Clapr Blog