Rescript: Open-Source Descript Alternative That Runs Entirely in Your Browser
Descript charges $24/month for transcript-based video editing. Rescript does the same thing for free, entirely in your browser, with your files never leaving your device.
The concept is simple: drop in a video, it transcribes locally, you edit the text, and the video cuts follow. Delete a word from the transcript and the corresponding clip is removed. Export when done.
What Makes This Different
Most “free Descript alternatives” are either cloud-based (your files go somewhere) or require local installation. Rescript is neither:
- Runs in the browser — no install, no account, no server
- Transcription happens on-device — Whisper runs via WebGPU/WASM in a Web Worker
- Media never leaves your machine — the only external request is anonymous analytics (which fails silently offline)
After the AI models download once (~200MB for Whisper Base, ~600MB for Whisper Small), everything works fully offline.
The Stack
| Component | Tech |
|---|---|
| App | Next.js + React + TypeScript + Tailwind |
| Transcription | transformers.js running Whisper (WebGPU with WASM fallback) |
| Speaker labels | pyannote-segmentation-3.0 (ONNX) |
| Media processing | ffmpeg.wasm (multi-threaded) |
| State | zustand |
Key Features
Word-level editing — Select words in the transcript, press delete, the cut follows. The timeline shows cut regions in red, and the preview player skips them in real time.
Filler removal — One-click removal of “um”, “uh”, and similar fillers. Useful for cleaning up interview footage or podcast recordings.
Speaker diarization — Transcript is grouped by speaker, so you can see who said what.
Import existing transcripts — If you already have an SRT, VTT, or JSON caption file, skip Whisper entirely and edit directly.
Frame-accurate export — The kept ranges are trimmed and concatenated with an ffmpeg filter graph and re-encoded (libx264/aac).
How It Works
- Extract — ffmpeg.wasm decodes audio to mono 16kHz PCM
- Transcribe — Whisper runs in a Web Worker with word-level timestamps; pyannote assigns speakers
- Edit — Deletions create “cut ranges” that the player skips in real time
- Export — Kept ranges are trimmed and concatenated, then re-encoded to MP4 (video) or M4A (audio)
Browser Requirements
Needs SharedArrayBuffer (requires COOP/COEP headers), so Chromium-based browsers work best. WebGPU is used when available for faster inference, with WASM fallback otherwise.
The Weekend Build
The creator built this in a single weekend after looking at Descript’s pricing. That’s the power of modern browser APIs and pre-trained models — what required a cloud service and subscription a few years ago can now run client-side for free.
Try it: wassgha.github.io/rescript
GitHub: github.com/wassgha/rescript
License: MIT
If you edit podcasts, interviews, or any spoken content and don’t need Descript’s full feature set (overdub, stock media, collaboration), this handles the core use case — text-based editing with zero cost and full privacy.