Rescript is a free, open-source video and audio editor that runs entirely in the browser, connects each word to its position in the recording, and removes the matching footage when you delete text from the transcript.
The first transcription requires an internet connection to download Whisper Base at roughly 200 MB or Whisper Small at roughly 600 MB, plus a speaker-detection model.
Media files and transcripts stay on your device during transcription, editing, and export. No account, no server required.
How it works
Rescript extracts audio from the imported file and runs Whisper locally inside a Web Worker. The generated transcript includes word-level timestamps, while an ONNX speaker model assigns words to individual speakers. text creates cut ranges in the original media.
The preview player skips those ranges during playback, and the timeline marks removed sections. This non-destructive editing model keeps the source recording intact until export.
The timeline also supports manual corrections beyond transcript deletion. You can split a clip at the playhead, drag clip edges, adjust individual word timings, and move either edge of a cut. These controls address transcription boundaries that land before or after the intended spoken phrase.
The final export joins the retained sections and re-encodes them through ffmpeg.wasm. Video projects export as MP4 with H.264 video and AAC audio. Audio-only projects export as M4A.
Rescript vs. Descript
Descript popularized transcript-based editing: delete text, delete the matching clip. Rescript uses the same editing model and moves the processing off Descript’s servers and onto the device running the browser tab.
| Rescript | Descript | |
|---|---|---|
| Primary Emphasis | Local, browser-based cutting from a transcript | Cloud-based editing with AI voice and screen-recording tools |
| Typical Workflow | Drop a file, transcribe or import captions, delete words, export | Upload to the Descript app, edit in the cloud, publish or export |
| Hosting / Runtime Model | Runs in the browser; transcription and export happen on-device | Runs through Descript’s hosted service and desktop app |
| Main Adoption Requirement | A Chromium-based browser with WebGPU or WASM support | A Descript account and, for most features, a paid subscription |
| Where Rescript Differs | No upload, no account, MIT-licensed source code | Overdub, Studio Sound, screen recording, and team collaboration tools that Rescript does not include |
Key Features
- Deletes the matching video or audio clip when a word is deleted from the transcript.
- Transcribes locally with per-word timestamps using Whisper Base or Whisper Small through transformers.js, running in a Web Worker with WebGPU acceleration and a WASM fallback.
- Groups the transcript by speaker using the pyannote-segmentation-3.0 model.
- Imports existing SRT, VTT, or JSON caption files as a substitute for on-device transcription.
- Removes filler words such as “um” and “uh” from the transcript and the timeline in one click.
- Displays a timeline with a waveform, a wordbar with draggable timing handles, a blade tool for splitting clips, and a playhead that supports zoom and pan.
- Trims cut edges independently of the Whisper timestamps by dragging either edge of a cut; a double-click resets the trim.
- Adjusts word timing directly by dragging a word’s edges when the automatic alignment drifts.
- Skips cut sections during playback in the live preview.
- Exports frame-accurate MP4 for video or M4A for audio using ffmpeg.wasm.
How to Use Rescript
1. Open the Rescript app in a Chromium-based browser. Drop a video or audio file onto the homepage, or click to browse for one.
2. Choose a transcription source: Whisper Base for a faster, smaller download, Whisper Small for higher accuracy, or Import Transcript to load an existing SRT, VTT, or JSON file and skip transcription. On the first run with Whisper, the browser downloads the model and caches it for later sessions.

3. Whisper transcribes the audio track and streams the text into the transcript panel as it completes each segment. The pyannote model tags each word with a speaker. Review the transcript, then select and delete the words to cut. The player skips the cut ranges in real time, and the timeline marks them in red.
4. Run Remove Fillers to cut every detected “um,” “uh,” and similar filler word in one pass. Use the blade tool to split a clip at the playhead, drag a clip edge to trim past a word boundary, or drag either edge of a cut to adjust the trim independently of the Whisper timestamps; double-click the edge to reset it.

5. Click Export to render the kept ranges into an MP4 for video or an M4A for audio. ffmpeg.wasm trims and concatenates the kept sections, then re-encodes the result with libx264 and AAC for a word-accurate cut.
Self-Hosting and Development
The repository builds with Next.js, React, TypeScript, and Tailwind CSS. State runs through zustand.
npm install # copies ffmpeg and onnxruntime WASM assets into public/vendor
npm run dev # starts the local dev server
npm run build # builds the production bundle
npm run lint # runs eslintOpen http://localhost:3000 and drop in a video with an audio track.
Pros
- Free hosted editor
- MIT-licensed source code
- No user account
- Local media processing
- Offline use after setup
- Word-level transcript cuts
- Imported transcript support
- Manual timing corrections
Cons
- Large initial model downloads
- Chromium browser only
- Hardware-dependent performance
- No packaged desktop release
- Smaller feature set than Descript
Alternatives & Related Resources
- 10 Best Free AI Tools for YouTube Creators
- Free Local AI Video Editor Powered by LTX-2.3 – LTX-Desktop
- Free, Private Audio Transcription with OpenAI Whisper – TalkToTextly
- 100% Free AI Video Subtitle Generator for TikTok & YouTube
- 10 Best Free AI Audio Transcription Tools









