v1.3.0Subtitles that were never spoken. On a clip with no speech in it — a landscape shot, a music bed, room tone — Whisper does not stay quiet. It falls back on the phrases that fill the end of every video it was trained on, so you would get a line reading “Thank you.” and another containing nothing but a full stop, with the page cheerfully reporting two lines done. Now the audio is checked for the rise and fall of actual speech before anything is transcribed, and anything that does slip through is measured against how much text it carries for how long it sits on screen: a lone full stop held for seven seconds is not a subtitle. If a file turns out to have no speech in it, the page says so, and says why, instead of handing you invented lines. You can still override it — the judgement is not infallible, and there is a link to transcribe anyway. Also in this release: the bar behind burned-in subtitles no longer clips the descenders on letters like g and y, its corners are properly rounded, and you can now set the text and bar colours. The export buttons have a hierarchy again — Export SRT is the one button that matters, the rest moved into a menu. Two more things worth knowing about. You can now list the names and terms that come up in your video — colleagues, products, jargon — before you generate. The model has never heard of any of them and guesses; told in advance, it gets them right far more often, and the list is remembered for next time. And the two small numbers beside each line finally say what they are: reading speed and duration. Too fast to read is flagged as before; too slow is now flagged as well, because a handful of characters sitting on screen for seven seconds usually means the timing is stretched, or that nobody said it. Long recordings now show how much time is left rather than a bare percentage — on a slow machine the wait can run into many minutes, and a progress bar with no end in sight is the point at which people close the tab.
Changelog
Every release is written down here, newest first. A version number means a deployment; entries without one are smaller fixes rolled in along the way.
v1.2.0Export Video. Until now this site could write you a subtitle file; it could not hand back the thing most people actually came for — the video with the subtitles on it. Export Video now burns them into the picture and gives you a finished file to download, with a small panel for size, position and whether there is a dark bar behind the text; the preview above uses exactly the same geometry, so what you see is what you get. The audio is copied across untouched rather than re-encoded. Two notes worth knowing before you use it: burning re-encodes the whole video, so it is slow and costs a little quality, and the viewer can never turn the subtitles off — wherever a platform accepts a subtitle file, Export SRT is still the better answer, which is why it is still the main button. Also fixed: pressing Enter while typing in a subtitle used to split it in half at the playhead, so typing "5555" and hitting Enter left you with two lines reading "55". Enter now moves to the next line, Shift+Enter breaks the line, and Ctrl/⌘+Enter splits. And importing a subtitle file alongside a video now reads the audio in the background, so the waveform is there for you to fix timings against instead of an empty strip.
v1.1.0Right-click menus. On the timeline, right-clicking gives you the subtitle at that moment — edit it, split it where you clicked, or delete it — and on empty audio, a way to add one there. In the list, right-clicking a line offers insert above, insert below, split, merge and delete. Inserting looks for a real gap first and, when the lines are packed together, borrows a little time from the neighbour rather than creating an overlap; it says so, and it is undoable. A newly inserted line no longer flags itself as empty while you are still typing into it.
v1.0.3Recognition works. It was failing on every video with an error only visible in the console: word-level timestamps require a model exported with cross-attentions, and the standard Whisper exports do not have them. The editor now falls back to sentence-level timing automatically when a model cannot do word-level, instead of giving up. The default model is also the small one now — the previous default downloaded 199 MB before it could say anything, which is a long wait and enough memory pressure to crash a tab. Sizes are shown next to each model, and the language menu no longer claims to auto-detect when it actually assumes English.
v1.0.2Two fixes found by a reader. Speech recognition failed to start outside of a production build, because the engine was being loaded in a way that the development server refuses and that would not have resolved its own dependencies anyway; it is now bundled normally. And the illustrations beside the four use cases were invisible — white artwork on a background whose colour rule no longer matched — leaving a blank panel on each card.
v1.0.1Fixed the video preview. Loading a clip used to leave a black rectangle: the browser had the duration and the dimensions but had not decoded a frame, and even when it had, plenty of real videos simply start on black. The editor now probes three points in the clip and parks the playhead on the brightest one, so you see your footage as soon as it loads. The setup step also shows the preview, the duration and the resolution instead of just a filename, and the waveform now appears as soon as the audio is read rather than after recognition finishes.
v1.0.0First release. Browser-side speech recognition (Whisper via WebGPU with a WebAssembly fallback), a three-pane editor with an audio waveform timeline, split/merge/shift/find-and-replace, reading-speed and overlap warnings, SRT / VTT / plain-text export, SRT and VTT import, and local autosave so a refresh does not cost you the session.