Translate to any language
Translate the SRT to 99 languages — one click, keep the timing
Last reviewed August 2026
Upload MP3, MP4, WAV, or paste a YouTube / podcast URL — get a ready-to-use .srt with speaker labels in 99 languages. Try 5 minutes right here, no account. Sign up — no card — for 30 free minutes and files up to 5 GB.
Your files are never used to train models.
An SRT generator is a tool that turns spoken audio into a .srt subtitle file — timestamped text cues you upload to YouTube, Vimeo, Premiere Pro, or any video editor. VexaScribe generates SRTs from any audio, video, or URL in 99 languages, with cue boundaries placed on millisecond-accurate word timings rather than interpolated across a block.
Drop your file here
or click to browse
Audio: MP3 · WAV · M4A · FLAC · OGG · AAC · AIFF · WMA · AMR · OPUS
Video: MP4 · MOV · AVI · MKV · WebM · FLV · WMV
Up to 200 MB · 5 min free preview
A standards-clean .srt: sequentially numbered cues, comma decimal separators in the timecodes as the format requires, and UTF-8 encoding without a BOM — so accented characters survive and no player chokes on the first cue index. Multi-speaker recordings carry speaker labels on every cue. The same processing also exports VTT for HTML5 video and plain TXT, at no extra cost.
1
00:00:00,220 --> 00:00:03,480
[SPEAKER_00] And so, my fellow Americans,
ask not what your country can do for you
2
00:00:03,480 --> 00:00:06,910
[SPEAKER_00] ask what you can do for your country.Cue boundaries sit on real word timestamps returned by the transcription engine — not interpolated across a segment — so the text appears and clears in sync with the speech.
Four steps from upload to finished .srt file. Nothing to install, works in any browser.
Drag in an MP3, WAV, M4A, MP4, MOV or any of 17 supported formats — or paste a YouTube, podcast or Google Drive link and skip the download.
The language is detected automatically and the audio transcribed across 99 languages, with every word timed. A one-hour file takes 5–10 minutes.
Fix a misheard name, nudge a start time, split or merge a cue — then re-export straight away.
Export SRT, VTT or TXT. Ready for YouTube Studio, Premiere Pro, Final Cut, DaVinci Resolve, CapCut, OBS or VLC.
The hard part of generating a usable SRT isn't transcription accuracy — it's cue timing. A 30-second monologue can't be one subtitle, and a two-word reaction shouldn't flash for a quarter of a second.
Four rules, applied in order. Cue boundaries land on the word-level timestamps the model returns rather than on interpolated guesses, so a cue starts and ends where the speech actually does — the difference between subtitles that track the audio and subtitles that drift a few frames further out with every cue.
| Rule | Value |
|---|---|
| Maximum characters per cue | 80 |
| Maximum cue duration | 6 seconds |
| New cue on speaker change | Always |
| New cue after silence longer than | 1 second |
| Cue boundaries | Word-level timestamps |
A very short trailing cue is merged into the one before it rather than left dangling, so the occasional cue runs slightly past those caps. Speaker changes always break, which is why multi-speaker recordings come back as readable exchanges instead of one wall of text with everyone's words run together.
Most tools stamp a block of speech every few seconds and cut cues on a fixed character count, wherever that lands. Splitting on word timings instead means a cue can end on the last word of a sentence rather than mid-clause, and a pause between speakers becomes a cue boundary rather than a gap inside one. It is the same word-level data that powers the JSON export and click-a-word playback in the editor.
These are industry reference points, not our settings — the figures broadcast and streaming captioning is graded against. Check the output against them when a cue looks dense, and split it in the editor before exporting.
| Standard | Recommended value |
|---|---|
| Adult reading speed (Netflix) | Max 17 CPS |
| Children's reading speed (Netflix) | Max 13 CPS |
| Minimum cue duration (Netflix) | 5/6 second (≈ 833 ms) |
| Maximum cue duration (Netflix) | 7 seconds |
| Conversational speech (BBC) | 160–180 WPM |
These figures come from the Netflix Timed Text Style Guide and the BBC Subtitle Guidelines, the two most cited references for caption timing in professional production. The practical result is an SRT that imports into Premiere Pro, Final Cut, DaVinci Resolve, CapCut and YouTube without manual cue-splitting cleanup. For how the underlying timestamps behave across audio conditions, see Whisper transcription accuracy.
No automatic transcription is reliably perfect, and the places it slips are predictable: proper names and brand names, homophones, speech where two people overlap, and lyrics under music. Budget a pass through the output before you publish — our free SRT editor opens the file in a browser tab for that pass, with reading speed and line length flagged per cue.
Review every cue in the editor, fix what's wrong, and export. Click a cue to correct the text, nudge its start or end time, or split it in two; changes save as you go and the re-export is immediate.
You already have the transcription. What this adds on top: cue splitting that breaks on speaker turns and word timings rather than on fixed-length chunks, speaker labels from diarization, 99 languages without a GPU, an editor for the fixes above, and clean SRT/VTT/TXT exports from one processing run.
One processing run, several outputs. Translate the subtitles into another language with the cue numbers and timecodes preserved, so the translated file drops into the same timeline. Generate an AI summary of the transcript, or ask questions about it in AI chat. Export DOCX to hand to an editor, VTT for HTML5 players, JSON with word-level timestamps for a developer pipeline, or plain TXT.
For the translation workflow in depth — including uploading an SRT you already have — see subtitle translator. For timestamp formats and the word-level JSON structure, see transcription timestamps.
Standard SubRip: sequential cue numbers, HH:MM:SS,mmm timecodes with a comma decimal separator, a blank line between cues, UTF-8 without a BOM. Speaker labels appear on multi-speaker recordings and are removable on export.
1 00:00:04,120 --> 00:00:07,940 Speaker 1: So the first thing we need to cover is the quarterly numbers. 2 00:00:08,010 --> 00:00:11,600 Speaker 2: Right, and that ties directly into the hiring question. 3 00:00:11,720 --> 00:00:13,880 Speaker 1: Exactly. Let me pull those up.
Note the cue boundaries: cue 1 ends on the last word of the sentence, and cue 2 starts on the next speaker rather than mid-exchange. That is the word-level timing described above, and it is what stops subtitles drifting out of sync as a file goes on.
There are genuinely free, genuinely unlimited SRT tools, and for a short one-off file they are a reasonable choice. The difference shows up in the cues rather than the words.
| Tool | Free tier | Cue quality | Speakers | Languages |
|---|---|---|---|---|
| VexaScribe | 5 min, no account | Split on speaker turns and word timings | Labelled per cue | 99 |
| Free unlimited web tools | Unlimited, short files | Often one block, or fixed-length chunks | Rarely | Varies |
| Whisper run locally | Unlimited, your own GPU | Fixed-length chunks by default | Needs a separate diarization step | 99 |
| Professional captioning | None | Hand-timed | Yes | Per quote |
The honest read: if you need one short file captioned and you are willing to fix the timings yourself, a free unlimited tool will do it. What you usually get back is the transcript as a single long cue, or cues cut on a fixed character count with no regard for who is speaking — fine to read, tedious to sync. Running Whisper yourself gives you better text but the same chunked cues, plus a separate diarization step if you want speaker labels. Our 5-minute preview exists so you can compare the actual output rather than take any of this on trust.
HTML5 video players consume .vtt via the <track> element, YouTube and Vimeo accept .srt directly through their CC upload UI, and HLS streams reference WebVTT segments from a subtitle playlist inside the master .m3u8.
<video> with <track>The W3C WebVTT 1 Recommendation defines the <track> element for native browser subtitle support. Use VTT, not SRT — HTML5 players will not parse SRT directly.
<video controls width="720" preload="metadata">
<source src="/videos/demo.mp4" type="video/mp4" />
<track
kind="subtitles"
src="/videos/demo.en.vtt"
srclang="en"
label="English"
default
/>
<track
kind="subtitles"
src="/videos/demo.es.vtt"
srclang="es"
label="Espanol"
/>
Your browser does not support HTML5 video.
</video>YouTube accepts .srt, .sbv, .vtt, and .ttml per the official YouTube help article. UTF-8 encoding is required.
For multi-language uploads, name files with BCP-47 tags: my-video.en.srt, my-video.es.srt, my-video.pt-BR.srt.
Open your video, then Settings → Distribution → Subtitles, click the + button, choose the language and upload your .srt. Vimeo regenerates its player within about 30 seconds with the new caption track behind the CC button.
HTTP Live Streaming uses segmented WebVTT referenced from the master playlist. Per the Apple HLS Authoring Specification, segments are typically around 30 seconds, UTF-8 encoded, served with a text/vtt MIME type.
Master playlist (master.m3u8):
#EXTM3U #EXT-X-VERSION:6 #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="en",URI="subs/en/index.m3u8" #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Spanish",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE="es",URI="subs/es/index.m3u8" #EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280x720,CODECS="avc1.4d401f,mp4a.40.2",SUBTITLES="subs" video/720p/index.m3u8
Generate the source-language SRT once, then translate the cue text while the timecodes stay exactly where they are. The translated file drops into the same timeline without re-syncing, which is the part that usually costs the most time.
Free translations are included with an account. Premium translation is the better choice for long recordings, where it keeps terminology and proper names consistent from the first cue to the last instead of drifting partway through.
my-video.es.srt is labelled Spanish automatically. For translating an SRT you already have, see the SRT translator; for other subtitle formats, the subtitle translator.When an SRT refuses to load, or loads with the accents mangled, it is almost always one of five things. Each has a distinctive symptom, so you can usually identify it without opening the file in a hex editor.
Symptom: Accented characters appear as ’ or ß in the player.
Fix: Re-save the .srt as UTF-8 (without BOM) using VS Code or Notepad++. VexaScribe always exports UTF-8 by default.
Symptom: Player shows the file as broken or skips cues.
Fix: SRT requires a comma decimal separator (00:00:01,200). VTT uses a period. Don't mix them.
Symptom: Multiple cues display merged on screen.
Fix: Every cue must end with a single blank line. A trailing CRLF is fine; a missing line break is not.
Symptom: First cue index appears as 1 instead of 1; some players reject the file.
Fix: Save without BOM. In VS Code: bottom-right encoding label → 'Save with Encoding' → 'UTF-8'.
Symptom: Two cues compete for the same moment, or cues display in the wrong order.
Fix: Each cue's start time must be greater than or equal to the previous cue's end time. VexaScribe's editor catches this automatically.
WCAG 2.1 Success Criterion 1.2.2 (Level A) requires synchronized captions for all prerecorded video audio. The U.S. DOJ ADA Title II rule sets binding deadlines: April 26, 2027 for state and local governments serving 50,000 or more people, and April 26, 2028 for smaller entities.
Beyond compliance, caption text is indexable, and a large share of social video is watched with the sound off — captions are what keep those viewers watching. See our editorial and accuracy standards for how we test.
Anyone publishing video needs subtitles. These are the most common workflows.
Auto-caption every upload. Captioned videos rank better in YouTube search and hold watch time.
TikTok, Instagram Reels, and YouTube Shorts — where most viewing happens with the sound off.
Udemy, Teachable, Skillshare, and Thinkific require accessibility-compliant subtitles. SRT is the standard.
Back catalogues and client deliverables, where the same file ships in several languages.
Drop up to 50 files in a single batch — mixed audio and video formats in the same upload, audio extracted from video automatically. Processing runs in parallel with a per-file status dashboard, and the batch comes back as one ZIP with your original filenames preserved plus a CSV manifest. Pick SRT, VTT, TXT or DOCX per batch and every file gets every format you selected.
Try 5 minutes right here, no account. Sign up — no card — for 30 free minutes and files up to 5 GB. All paid plans include unlimited SRT export: no per-export fees.
30 min total
No credit card
200 min/month
Solo creators
1,000 min/month
Regular publishers
Upload the file (17 formats, up to 5 GB) or paste a YouTube, podcast or Google Drive URL. Audio is extracted from video automatically. Our premium speech recognition model transcribes the audio in 5-15 minutes per hour, timing every word so cue boundaries land on real speech rather than interpolated guesses. Review in the editor, then download the .srt.
Audio: MP3, WAV, M4A, FLAC, OGG, AAC, AIFF, WMA, AMR, OPUS. Video: MP4, MOV, AVI, MKV, WebM, FLV, WMV. Up to 5 GB and 10 hours per file. Video audio is extracted automatically; the video file itself is not retained after transcription.
Try 5 minutes right here with no account. Sign up — no card — for 30 free minutes and files up to 5 GB. Paid plans start at $2/month for 200 minutes, and every plan includes unlimited SRT export with no per-export fees.
Yes. The built-in editor lets you correct text, adjust start and end timestamps, and split or merge cues, with the audio alongside for reference. Changes save automatically — click Download as SRT when you're done.
Yes. VexaScribe transcribes 99 languages with automatic detection — upload audio in any supported language and download the SRT in that language. You can also translate the finished subtitles into another language with the cue numbers and timecodes preserved.
The model returns each word's individual start and end time, and cue boundaries land on those real word timestamps rather than being interpolated across a segment. Subtitles sync to speech rather than drifting. Clear audio with minimal background noise gives the best results.
Because transcription costs real money to run, and someone pays for it either way. Tools that are unlimited and free usually cover it by capping quality, showing ads, or keeping rights to your audio. We would rather be straightforward: 5 real minutes with no account, 30 minutes free when you sign up, and plans from $2/month after that. Your audio is never used to train models.
Cues cap at 80 characters and 6 seconds, and always break on a speaker change or a silence longer than a second. A very short trailing cue is merged into the one before it, so an occasional cue runs slightly past those caps rather than flashing on screen.
Almost always a character-encoding mismatch — the file is not being read as UTF-8, so accented characters render as mojibake. Re-save it as UTF-8 without a BOM. Our exports are UTF-8 without a BOM already, so this usually happens after editing in a program that saved it as ANSI or UTF-16.
A comma. SRT uses HH:MM:SS,mmm with a comma decimal separator; WebVTT uses a period. Mixing them is one of the most common reasons a player rejects a subtitle file, so do not convert one into the other by changing the extension.
Yes. Translation replaces only the dialogue text, so cue numbers and timecodes stay exactly where they are and the translated file drops into the same timeline. Free translations are included with an account; premium translation holds terminology and names consistent across long recordings.
Yes. The export is standard SubRip — sequential cue numbers, HH:MM:SS,mmm timecodes, UTF-8 without a BOM — with timing on real word boundaries. Drag the .srt into the timeline in Premiere Pro, Final Cut Pro X or DaVinci Resolve; same for CapCut, OBS, VLC and YouTube. Long cues from long speaker turns can be split in the editor first.
Translate the SRT to 99 languages — one click, keep the timing
Get the 5 key moments — skip the full read
Ask questions like "when did they mention pricing?"
DOCX · VTT · JSON · CSV — one processing