Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Β 
Β 

Repository files navigation

Rescript logo

Rescript

Edit video and audio like you edit text β€” fully offline, in your browser.

✨ Try it now: wassgha.github.io/rescript

Follow @wassgha on X

Rescript Demo

Rescript is an open-source, transcript-based media editor. 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 clip is cut from the media. Export the final cut β€” without your file ever leaving your device.

  • πŸ”’ Private by design β€” no server, no auth, no uploads; all media processing happens on-device
  • πŸ“ Word-level editing β€” select words, press ⌫, the cut follows the text
  • πŸ“₯ Import your own transcript β€” skip Whisper and edit with an SRT, VTT, or JSON caption file
  • 🧹 Filler removal β€” one-click cut of "um", "uh", and similar fillers
  • πŸ—£οΈ Speaker diarization β€” the transcript is grouped by speaker
  • 🎬 Timeline β€” waveform, word labels, cut regions, playhead, zoom
  • ⚑ Live preview β€” playback skips your cuts in real time
  • πŸ“¦ In-browser export β€” frame-accurate MP4 (video) or M4A (audio) with ffmpeg.wasm
  • 🎧 Audio files β€” edit podcasts, voice notes, and interviews the same way as video

Stack

Piece Tech
App Next.js + React + TypeScript + Tailwind
Transcription transformers.js running whisper-base_timestamped or whisper-small_timestamped (WebGPU with WASM fallback) in a Web Worker
Speaker labels pyannote-segmentation-3.0 (ONNX)
Media processing ffmpeg.wasm (multi-threaded) for audio extraction and export
State zustand

Development

npm install     # also copies ffmpeg/onnxruntime WASM into public/vendor
npm run dev     # dev server
npm run build   # production build
npm run lint    # eslint

Open http://localhost:3000 and drop in a video with an audio track.

Note on "offline": the AI models (Whisper Base ~200 MB, or Small ~600 MB, plus a small speaker model) are downloaded from the Hugging Face Hub the first time you transcribe, then cached in browser storage. After that, everything β€” transcription, editing, export β€” works with the network fully disconnected. Your media and transcript never leave the device; the only third-party request the app makes is anonymous page analytics (Google Analytics), which fails silently when offline.

How it works

  1. Extract β€” ffmpeg.wasm decodes the audio track to mono 16 kHz PCM.
  2. Transcribe β€” Whisper runs in a Web Worker with return_timestamps: "word", streaming text as it goes; pyannote assigns a speaker to every word. Choose Whisper Base, Whisper Small, or Import transcript (SRT / VTT / JSON) on the homepage.
  3. Edit β€” deleting words produces "cut ranges" of the original media. The preview player skips them in real time and the timeline shows them in red. Remove fillers cuts every detected "um" / "uh" / etc. in one click.
  4. Export β€” the kept ranges are trimmed and concatenated with an ffmpeg filter graph and re-encoded (libx264/aac), so cuts are word-accurate.

Browser support

A Chromium-based browser is recommended. The app requires SharedArrayBuffer (served with COOP/COEP headers) and uses WebGPU for inference when available, falling back to WASM otherwise.

License

MIT


Built by @wassgha β€” follow along on X for updates.

About

🎬 Open source, transcript-based video/audio editor that lives in the browser.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages