The long-recording release: mark up a stream in one pass, let the app find the moments you shouted at, and tell it which of your audio tracks is actually you.
Labels, for the pass where you decide what matters
Select any stretch of transcript and label it, with ⌘⇧L (Ctrl+Shift+L on Windows) or the selection popover. Give it a name, add a note if you want. Labels sharing a name are a group, so the Labels card lists them together, with a filter over names and notes, click to jump, inline rename, and delete. Unlike the single clip, labels pile up: they may overlap and nest, and tagging one sentence twice is the normal case. The selection survives an add, so the next tag is one keystroke. Labeled words carry a faint tint in the reader, and the ranges follow your edits: cutting inside a label shrinks it, and deleting all of its text leaves it flagged as orphaned rather than quietly disappearing.
The app finds the moments you reacted to
A new Reactions card scans your voice track for the moments your own energy spikes: the screams, the laughs, the hype. These are the highlights transcript search can never find, because there are no words in them. Each proposal comes back as a clip of the length you pick (15, 30, or 60 seconds) with the moment two thirds of the way in, so the payoff lands in the final third. Nothing is placed for you: review a proposal, then dismiss it or accept it, and accepting labels the whole clip “reaction” in a single undo step so your label triage takes over from there. The scan runs when you ask for it, with a real percentage and a Cancel rather than an indeterminate spinner. If your source is one mixed track, it says so: a levelled mix leaves only 4 to 5 dB between typical and peak, less than a reaction needs to clear, and detection wants the mic.
Which track is your voice
Import a multi-track OBS recording and the app asks once, right then, which track is you. It lists every track with its codec, channels and rate, the title and language tags OBS wrote, and a short audition waveform to listen against. When detection is confident it simply picks, transcribes that track, and tells you on the rail card with a Change link, so the transcript and the waveform can never end up reading different tracks. Separately, Project Settings gains an Export audio track section for multi-track sources, deciding which stream every export writes and which one the loudness chip measures. That is deliberately a different choice from the voice track: on a typical OBS layout, track 1 is the mix your viewers should hear and track 2 is the mic transcription should read.
Correct every match at once
Correct mode gains a Correct-all card: a find and a replace field, a live list of every match with click to jump and a checkbox to exclude any you want left alone, and one button that corrects all the rest as a single undo step. Phrases spanning several words work, and a replacement with a different word count is aligned deterministically rather than guessed at. Alongside it, each project now keeps a term list: comma separated product names and brand spellings that bias the recognizer at every transcribe, so the name you say forty times stops coming back forty different ways. The Parakeet family honors the list; the whisper models ignore it without complaint.
Import the markers you already made
If you hit a marker hotkey while recording, that work now comes into the editor. Import chapter markers reads the source’s own embedded chapters, the output of the OBS 30.2+ hybrid MP4 and MOV marker hotkey, whose timestamps are recording relative by construction, so there is no offset to work out. From file (CSV)… reads Twitch marker exports and the CutCue and Premiere marker family, recognized by content rather than by file extension, with a signed seconds offset for the usual case where the stream started before the recording did. Every marker arrives as a label, a point marker becoming a 30 second window with the timestamp two thirds in, all as one undo step with the imported and skipped counts reported. They are proposals: nothing is struck, kept, or clipped on your behalf.
The waveform draws itself while it scans
A whole-file waveform scan takes about 11 seconds on stream-length footage, and until now that was 11 seconds of uniform skeleton. The core hands the peaks over as they close, so real bars fill in over the part that has been decoded and the skeleton covers only what is left. The waveform is its own progress indicator, which is how the audio tools you already use do it. The same groundwork gives every heavy read-only scan a percentage and a Cancel, and a scan you cancel stops decoding rather than running on unseen.
Transcription memory stops tracking recording length
Transcription used to hold the entire decoded audio in memory for the length of the run, roughly 230 MB per hour of source. It now streams the decode to a temporary file and reads it back through a memory map, so the engines see byte-identical audio while the resident cost stops scaling with duration. On a three hour recording that is 722.8 MB of peak memory down to 40.5 MB, with an identical transcript. Every engine benefits, since they all sit on the same feed.
Variable frame rate exports stay in sync
Matroska reports the frame rate the encoder was nominally set to, not the rate it actually delivered, and the exporter believed it. On variable frame rate captures from OBS and ShadowPlay, that compressed the video against the audio: a 30 second test file came out with 9.9 seconds of video against 29.0 seconds of audio, and a real recording dropping around 1% of its frames drifted about 70 seconds across a two hour VOD. Frames are now timed from their own presentation intervals instead of a frame counter, on both the CPU and the zero-copy export paths. Constant frame rate sources export bit for bit as before.
Also in this release
- Panes are separated by a single hairline with a 12px drag zone on it, the reader’s line length widens with the window (roughly 50, then 60, then 71 characters), and the app opens at 1152×720.
- Undo and redo moved out of the top bar and into the transcript toolbar, alongside the edit history they belong to. The keyboard shortcuts are unchanged.
- The re-transcribe model picker goes wide rather than tall, so its buttons stay on screen on a short window.
- A model file left over from an earlier catalog pin is caught by its size and re-fetched, instead of being used as though it still matched.
- Matroska opens cap their analysis budget in the audio decode lane, the one scrubbing, zooming, and auditioning pay over and over.
- The in-app Help dropdown is gone: macOS and Windows both have a native Help menu, and it carries the same links.
- A transitive PostCSS dependency is bumped past a published advisory.