Rescript open-source transcript-based video editor – offline, privacy‑first alternative to Descript

Rescript open-source transcript-based video editor – offline, privacy‑first alternative to Descript

Rescript: An Open‑Source, Offline‑First Transcript‑Based Video Editor

Rescript lets users edit video by editing its transcript directly in the browser, keeping all media and AI processing on‑device. This eliminates the $24 / month subscription model of services like Descript and guarantees privacy because no video ever leaves the user’s computer.


Core Value Proposition

Rescript delivers word‑level video editing without any server involvement. Users drop a video into the web app, the audio is transcribed locally with per‑word timestamps and speaker labels, and deleting words automatically cuts the corresponding video segments. The final edit can be exported to an MP4 file, all while the browser remains offline after the initial model download.


How Rescript Works End‑to‑End

  1. Audio Extractionffmpeg.wasm decodes the video’s audio track to mono 16 kHz PCM inside a Web Worker.
  2. Local Transcription – Whisper (whisper‑base_timestamped) runs via transformers.js with WebGPU acceleration (fallback to WASM). It streams word‑level timestamps and, together with the ONNX‑based pyannote‑segmentation‑3.0 model, assigns a speaker to each word.
  3. Editing Interface – The UI shows a waveform timeline with word labels. Deleting words creates cut ranges; the preview player skips those ranges in real time. A one‑click “Remove fillers” button cuts common filler words like “um” and “uh”.
  4. Export – Kept ranges are trimmed and concatenated using an ffmpeg filter graph, then re‑encoded with libx264/aac to produce a frame‑accurate MP4.

All steps run entirely in the browser; after the ~90 MB of AI models are cached on first use, the app works without an internet connection.


Technical Stack

Component Technology
Front‑end Next.js + React + TypeScript + Tailwind
Transcription transformers.js with Whisper base model (WebGPU / WASM)
Speaker Diarization ONNX pyannote‑segmentation‑3.0
Media Processing ffmpeg.wasm (multi‑threaded)
State Management Zustand

The project uses a Web Worker for heavy inference, isolates ffmpeg operations, and stores model files in browser storage to enable true offline usage.


Browser Compatibility

Rescript requires a Chromium‑based browser that supports SharedArrayBuffer (served with COOP/COEP headers) and, ideally, WebGPU for faster inference. In browsers lacking WebGPU, the app falls back to pure WASM execution.


Community Feedback from Hacker News

  • Name clash – A comment noted that Rescript collides with the OCaml‑derived language ReScript.
  • Cost vs effort – Some users argued that spending a weekend building a free alternative may not be the most efficient way to save a $24 / month subscription.
  • Performance concerns – Questions were raised about how the tool handles long videos on low‑end hardware and whether all processing truly stays local.
  • Feature gaps – Users pointed out missing audio‑only support, difficulty importing external transcripts, and occasional UI bugs that caused loss of edits.
  • Positive reception – A few commenters expressed enthusiasm for an open‑source, privacy‑first alternative to Descript, especially for those who dislike Descript’s pricing and dark‑pattern UI.

Current Roadmap (as of the latest comment)

  • Save and reopen projects (completed)
  • Import transcripts in SRT/VTT/JSON formats (completed)
  • Full audio/podcast support (completed)
  • Import plain‑text transcripts with automatic sync (planned)
  • Manual editing of word boundaries (planned)
  • Scene splitting and reordering (planned)
  • Desktop application wrapper (planned)
  • Integration with macOS Speech Analyzer to avoid model downloads (planned)

Limitations and Open Issues

  • Model download size – The initial ~90 MB download may be a barrier on limited connections.
  • Filler removal accuracy – The current “verbatim” mode is required to keep filler words for later deletion; otherwise, Whisper may drop them automatically.
  • Audio‑only editing – The UI currently expects a video file; audio‑only podcasts need to be wrapped in a video container.
  • Stability – Early users reported that multi‑word deletions sometimes truncate only part of the first word and that the preview can produce abrupt audio skips.

Getting Started

# Clone the repo
git clone https://github.com/wassgha/rescript.git
cd rescript

# Install dependencies (copies ffmpeg and ONNX runtimes into public/vendor)
npm install

# Run the development server
npm run dev

Open http://localhost:3000 in a Chromium‑based browser, drop a video file, and start editing.


Why Rescript Matters

Rescript demonstrates that sophisticated AI‑driven media workflows can be executed entirely in the browser, removing reliance on cloud services and recurring SaaS fees. By open‑sourcing the stack—Whisper, pyannote, ffmpeg.wasm, and a modern React UI—it provides a reference implementation for privacy‑first video editing and invites community contributions to improve performance, add features, and broaden platform support.


License

Rescript is released under the MIT license, allowing unrestricted reuse and commercial integration.


Quick Takeaway

Rescript is a fully offline, transcript‑driven video editor built in a weekend, offering word‑level cuts, filler removal, and speaker diarization without sending any media to a server, thereby providing a privacy‑preserving, cost‑free alternative to subscription‑based tools like Descript.

Sources