Subtitle Converter (SRT, VTT, ASS)
Turn any text subtitle file into the format your player, editor or platform needs.
Your subtitles
Convert to
Notes on this conversion
Preview
| # | Start / end | Text |
|---|
About the Subtitle Converter (SRT, VTT, ASS)
Convert subtitles between SubRip (SRT), WebVTT (VTT), ASS and SSA, YouTube SBV, TTML/DFXP, MicroDVD (SUB) and LRC lyrics, or turn them into a plain-text transcript. Drop a file or paste the text: the format is recognised from the content, the cues are listed with a preview of how each one looks on screen, and the converted file is ready to copy or download.
Old subtitle files are often saved in a legacy code page such as Windows-1250 (Polish, Czech), Windows-1251 (Russian) or Shift_JIS (Japanese) instead of UTF-8, which turns letters into gibberish like “é”. The converter detects the encoding, fixes mixed or broken line endings, and writes clean UTF-8. When the target format cannot hold something — colours in SBV, exact positions from ASS, end times in LRC — it tells you what was changed instead of dropping it silently.
How to use it
- Choose or drop a subtitle file, or paste subtitles into the text box. The page shows the format it recognised, the number of cues and the text encoding.
- If letters look wrong in the preview, choose the correct Text encoding. For a MicroDVD .sub file, check the Frame rate (it must match the video).
- Pick the output format. Leave Keep styling and placement on to carry over bold, italics, colours and top-of-screen placement where the format allows.
- Read the notes under the result: they list repairs (such as cues that ended before they started) and anything the new format cannot store.
- Press Download (or Copy). The file keeps your original name with the new extension.
Examples
1
00:00:01,000 --> 00:00:04,000
<i>Hello</i> & welcome
{\an8}Sign at the topWEBVTT 00:00:01.000 --> 00:00:04.000 line:0 <i>Hello</i> & welcome Sign at the top
The comma becomes a full stop, the {\an8} placement becomes the cue setting line:0, and & is escaped as &.
Style: Thoughts,Arial,58,&H0000FFFF,…,0,-1,…,8,…
Dialogue: 0,0:00:02.00,0:00:04.00,Thoughts,,0,0,0,,Thinking {\b1}hard1
00:00:02,000 --> 00:00:04,000
{\an8}<font color="#ffff00"><i>Thinking </i></font><font color="#ffff00"><b><i>hard</i></b></font>The style “Thoughts” (yellow, italic, alignment 8 = top centre) is applied to the text. Fonts, outlines and \pos positions cannot be expressed in SRT; the notes say so.
{1}{1}25
{25}{100}First line|Second line1 00:00:01,000 --> 00:00:04,000 First line Second line
The first line says 25 frames per second, so frame 25 is 1.000 s and frame 100 is 4.000 s; “|” separates lines.
[00:12.00]First line [00:15.30]Second line [00:20.00]
1 00:00:12,000 --> 00:00:15,300 First line 2 00:00:15,300 --> 00:00:20,000 Second line
LRC stores only start times, so each line lasts until the next time tag; the empty tag at 0:20 ends the last one.
Common uses
- Uploading captions to YouTube, Vimeo or a course platform that accepts only SRT, VTT or SBV.
- Adding subtitles to an HTML5
<video>element, which needs WebVTT. - Bringing fan subtitles from Aegisub (ASS) into a TV or editor that reads only SRT.
- Repairing a downloaded .srt that shows garbled accents, Cyrillic or Greek letters.
- Turning subtitles into a readable transcript or lyric sheet, with or without times.
The formats
- SubRip (.srt): numbered cues with
00:01:02,345 --> 00:01:04,000times; most players read<b>,<i>,<u>and<font color>, and many read{\an8}for text at the top. - WebVTT (.vtt): the W3C format for HTML5 video. Times use a full stop, cue settings such as
line:0andalign:leftplace the text,<v Name>marks the speaker, and colours use classes such as<c.yellow>. - ASS and SSA (.ass, .ssa): SubStation Alpha scripts with styles and override tags such as
{\i1}. ASS (v4.00+) is what Aegisub writes; SSA (v4.00) is the older version. Times are in hundredths of a second. - YouTube SBV (.sbv):
0:00:01.000,0:00:04.000followed by the text; no styling. - TTML and DFXP (.ttml, .dfxp, .xml): the W3C Timed Text XML format used by streaming services and broadcasters. DFXP is the TTML 1 profile under its older name; both are written as the same TTML 1 document.
- MicroDVD (.sub):
{start frame}{end frame}text, with|between lines. Frames only become times with the frame rate, so the page asks for it. SubViewer 2 .sub files are also read. - LRC (.lrc): lyrics with
[mm:ss.xx]start times, used by music players;[offset:]tags are applied. - Plain text (.txt): one line per cue, optionally starting with its time and the speaker; transcripts copied with timestamps can also be read.
What carries over
Bold and italics survive in every format except SBV, LRC and plain text. Underline is kept in SRT, WebVTT, ASS, TTML and MicroDVD; strike-through in SRT, ASS, TTML and MicroDVD (WebVTT has none). Colours are kept in SRT, ASS, SSA, TTML and MicroDVD, and in WebVTT through classes. Top, middle and side placement is kept in SRT (as {\an} tags), WebVTT, ASS, SSA and TTML.
Speaker names — WebVTT voices such as <v Anna> and the Name field of ASS — are kept in WebVTT, ASS/SSA and plain text; the other formats have no place for them, and the notes say so.
ASS-only features — fonts and sizes, outlines, exact \pos positions, movement, fades, karaoke and drawings — have no equivalent in the other formats. An exact position is turned into top, middle or bottom, and the notes count each feature that was dropped. Converting between ASS and SSA keeps every event exactly as written.
How the text encoding is found
A byte-order mark identifies UTF-8, UTF-16 and UTF-32. UTF-16 without one is recognised by its zero bytes, and text that is valid UTF-8 is UTF-8. Otherwise the lines with accented or non-Latin bytes are decoded with each legacy code page — Windows-1250 to 1258, ISO-8859, KOI8, Shift_JIS, EUC-JP, EUC-KR, GBK and Big5 — and scored: common words of the languages that use that code page count for it; control characters, symbols inside words, words that mix alphabets and lower-to-upper-case jumps count against it. The guess is shown with the preview; if it is wrong, choose the encoding by hand. The result is always saved as UTF-8 (optionally with a byte-order mark for old Windows players).
Frame rates for MicroDVD
A frame number becomes a time as time = frame ÷ frame rate (and back as frame = time × frame rate, rounded). 23.976 fps is exactly 24000/1001, 29.97 is 30000/1001 and 59.94 is 60000/1001. With the wrong rate the subtitles drift further from the speech as the video goes on: at 25 instead of 23.976 fps a cue at one hour is off by about 2.5 minutes. Many .sub files start with a line such as {1}{1}23.976 that names their rate; the page reads it and writes one into the files it makes.
Limitations
- Only text subtitles are converted. Picture subtitles — VobSub (.sub with .idx), Blu-ray PGS (.sup) and image-based TTML — need OCR first.
- The converter keeps times as they are; it does not shift or stretch them.
- ASS styling beyond bold, italics, underline, strike-through, colour and placement cannot be expressed in the other formats (see the notes after each conversion).
- Encoding detection is a guess for legacy files; very short files with few accented letters can be ambiguous — check the preview.
- Files up to 20 MB (well over 100,000 cues) are handled; for very long files the text boxes show only the beginning, while the whole file is converted, downloaded and copied. One file at a time.
Privacy
Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot.
Frequently asked questions
How do I convert SRT to VTT?
Drop the .srt file, choose WebVTT as the output and press Download. The page adds the WEBVTT header, changes the time separator to a full stop, escapes & and <, and turns {\an8} placement into a line:0 cue setting.
Why do letters look like “é” or “пр” in my subtitles?
The file was read with the wrong text encoding. “é” instead of “é” is UTF-8 read as Windows-1252, and so is “при” instead of “при”; “ïðèâåò” instead of “привет” is a Windows-1251 file read as Windows-1252. Drop the file here: the encoding is detected, you can correct it in the list, and the result is saved as UTF-8, which every modern player reads.
Which frame rate should I choose for a .sub file?
The frame rate of the video the subtitles were made for. Most downloaded films are 23.976 fps, European TV is 25 fps and North American TV is 29.97 fps. If the subtitles start in sync and then drift, the frame rate is wrong.
What does {\an8} at the start of an SRT line mean?
It is an ASS alignment tag that places the subtitle at the top centre (the numbers follow a phone keypad: 1–3 bottom, 4–6 middle, 7–9 top). Players built on the common subtitle libraries, such as VLC, mpv and MPC-HC, read it in SRT files; some simpler players and TVs show it as text — turn off Keep styling and placement for those.
Can it convert VobSub (.idx/.sub) or Blu-ray .sup subtitles?
No. Those subtitles are pictures of text, not text, so they need optical character recognition before they can become SRT. The page recognises such files and says so.
Is my file uploaded?
No. The file is read and converted by this page in your browser; nothing is sent to a server, and the page works offline once loaded.