跳到正文

wassgha

rescript

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

README 已保存到本站,可直接阅读

Documentation snapshot

README 快照

本页保存的是公开项目资料快照,阅读过程不需要连接 GitHub。

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
  • 🧹 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

PieceTech
AppNext.js + React + TypeScript + Tailwind
Transcriptiontransformers.js running whisper-base_timestamped or whisper-small_timestamped (WebGPU with WASM fallback) in a Web Worker
Speaker labelspyannote-segmentation-3.0 (ONNX)
Media processingffmpeg.wasm (multi-threaded) for audio extraction and export
Statezustand

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 or Whisper Small 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.

Official distribution

获取与安装

暂未发现可确认的官方软件包地址

当前 README 快照没有出现 npm、PyPI、Crates.io、pub.dev 等官方包页链接。本站不会根据仓库名称猜测下载地址。

本站不托管项目文件;需要安装时,请以项目维护者发布的官方文档为准。

使用前核验

本站保存公开资料用于阅读,不代表安全审计或功能背书。安装前请核对许可证、依赖来源和发布签名,不要直接运行来源不明的二进制文件或高权限脚本。