Open Source
Explore the latest AI open-source projects from GitHub and HuggingFace.
Explore the latest AI open-source projects from GitHub and HuggingFace.
**Rescript** is an open-source, **transcript-based media editor** that runs entirely on the user's device — in a Chromium browser or as an Electron desktop app. Drop in a video or audio file, and it is transcribed locally with **per-word timestamps and speaker labels**. Delete words in the transcript and the corresponding span is cut from the media. Export the final cut without the file ever leaving the machine. The repository was created on **26 July 2026** and has accumulated roughly **614 stars and 70 forks** in its first two weeks, with the latest release (**v1.1.1**) shipped on 3 August. It is the work of a single maintainer, Wassim Gharbi. Text-based video editing is not a new idea — Descript built a business on it. What is new here is that the entire pipeline runs client-side with no server, no account, and no upload step. ## Architecture | Piece | Technology | |---|---| | App | Next.js + React + TypeScript + Tailwind | | Desktop | Electron + electron-builder (auto-update from GitHub Releases) | | Transcription | transformers.js running `whisper-base_timestamped` or `whisper-small_timestamped` | | Speaker labels | `pyannote-segmentation-3.0` (ONNX) | | Media processing | ffmpeg.wasm (multi-threaded) | | State | zustand | The pipeline has four stages. **ffmpeg.wasm** decodes the audio track to mono 16 kHz PCM. **Whisper** runs inside a Web Worker with `return_timestamps: "word"`, streaming text as it goes, while **pyannote** assigns a speaker to every word. Editing produces "cut ranges" over the original media rather than destructive edits — the preview player skips them in real time and the timeline renders them in red. On export, the kept ranges are trimmed and concatenated through an ffmpeg filter graph and re-encoded to `libx264`/`aac`, so cuts land on word boundaries. Inference uses **WebGPU when available and falls back to WASM** otherwise. The web app requires `SharedArrayBuffer` and therefore COOP/COEP headers; the desktop build bundles Chromium via Electron and sets the same isolation headers on its `app://` protocol. ## Editing Surface The word-level model is the headline, but the editor does not stop there: - **Filler removal** — one click cuts every detected "um", "uh" and similar token. - **Silence removal** — one click cuts pauses and dead air of **0.3 s or longer**. - **Word timing** — when ASR alignment drifts, zoom in and drag a word's edges directly. - **Cut edges** — drag either edge of a cut independently of Whisper's timestamps; double-click resets. - **Split & trim** — blade clips at the playhead and drag clip edges to refine beyond word boundaries. - **Timeline** — waveform, a wordbar with draggable timing handles, scroll-to-zoom and side-scroll-to-pan. Those last two matter more than they sound. Word-level ASR timestamps are routinely off by tens of milliseconds, and an editor that only exposes the transcript leaves the user stuck with whatever Whisper decided. Exposing frame-level handles on top of the text abstraction is the difference between a demo and something usable on real footage. Transcription can also be skipped entirely by **importing an existing SRT, VTT, or JSON caption file**. Export targets cover video (MP4/WebM, 720p–4K), audio (M4A/MP3/WAV), transcript (TXT/MD), and subtitles (SRT/VTT/JSON). ## Privacy Posture The project describes itself as private by design: no server, no auth, no uploads. The README is unusually precise about the limits of that claim. The AI models — Whisper Base at roughly 200 MB, or Small at roughly 600 MB, plus a small speaker model — are **downloaded from the Hugging Face Hub on first transcription** and cached thereafter. After that, transcription, editing, and export all work with the network fully disconnected. The one remaining third-party request is anonymous Google Analytics page analytics, which fails silently offline. Stating that plainly, rather than claiming absolute offline operation, is the right call and makes the rest of the claims easier to trust. ## Caveats **The license is not open source in the OSI sense.** Rescript is published under the **PolyForm Noncommercial License 1.0.0** — use, modification and sharing are permitted for noncommercial purposes only, with a required copyright notice, and commercial use including resale or paid redistribution is not permitted without contacting the author. Prior releases remain MIT **for those versions only**. Anyone planning to use this inside a business, or to fork it into a product, needs to read the license first; the "open source" framing in the description is doing some work. **Model ceiling is low.** Whisper Base and Small are the two options. They are fast and small enough to ship to a browser, but they are not the accuracy tier of large-v3 or Parakeet, and multi-speaker or noisy audio will expose that. **Browser requirements are strict.** Chromium is recommended, `SharedArrayBuffer` is required, and self-hosting the web app means serving COOP/COEP headers correctly. **It is very young.** Two weeks old, one maintainer, 6 open issues. There is no track record yet on maintenance or on how the export path behaves across unusual codecs and containers. ## Verdict Rescript is a well-executed take on a proven interaction model, and the engineering choice worth noting is that it pushes Whisper, pyannote, and ffmpeg into the browser rather than a backend — which is what makes the no-upload guarantee structural instead of a policy promise. Podcasters, interviewers, and anyone cutting talking-head footage who wants text-speed editing without handing raw media to a SaaS should try the hosted web build first, since there is nothing to install. Teams evaluating it for commercial work should treat the PolyForm license as the gating question, not the feature set.