Rescript: Free Local Video & Audio Editor (Open-source Descript Alternative)

Cut interviews, podcasts, and talking-head videos through a word-level transcript. Runs locally after its AI models download.

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.

RescriptDescript
Primary EmphasisLocal, browser-based cutting from a transcriptCloud-based editing with AI voice and screen-recording tools
Typical WorkflowDrop a file, transcribe or import captions, delete words, exportUpload to the Descript app, edit in the cloud, publish or export
Hosting / Runtime ModelRuns in the browser; transcription and export happen on-deviceRuns through Descript’s hosted service and desktop app
Main Adoption RequirementA Chromium-based browser with WebGPU or WASM supportA Descript account and, for most features, a paid subscription
Where Rescript DiffersNo upload, no account, MIT-licensed source codeOverdub, 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.

Rescript Select Model

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.

Rescript Editor UI

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 eslint

Open 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

Leave a Reply

Your email address will not be published. Required fields are marked *

Get the latest & top AI tools sent directly to your email.

Subscribe now to explore the latest & top AI tools and resources, all in one convenient newsletter. No spam, we promise!