wassgha/rescript

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

Rescriptは、文字起こしベースのメディアエディタです。 動画や音声ファイルを読み込むと、デバイス上で文字起こしが行われ、単語ごとのタイムスタンプと話者ラベルが生成されます。あとはテキストを編集するだけです。文字起こし内の単語を削除すると、対応するメディア部分がカットされます。最終結果をエクスポートすれば完了です。ファイルがマシンから外部へ送信されることはありません。

どのような問題を解決しますか?

従来の動画編集はタイムラインベースで、トラック上でクリップをドラッグする必要がありました。Rescriptはその常識を覆します。単語を編集すれば、カットは自動的に行われます。また、すべてがローカルで動作するため、クラウド文字起こしサービスにおけるプライバシーの懸念もありません。

主な機能 (READMEより)

  • プライバシー設計 — 認証やアップロードは不要。すべてのメディア処理はデバイス上で完結します。
  • 単語レベルの編集 — 単語を選択してDeleteキーを押すと、テキストに合わせてカットされます。
  • 独自の文字起こしをインポート — 文字起こしプロセスをスキップし、SRT、VTT、JSON字幕ファイルを使って編集できます。
  • エクスポートハブ — 動画 (MP4/WebM, 720p–4K)、音声 (M4A/MP3/WAV)、文字起こし/字幕 (TXT/MD/DOCX/PDF/SRT/VTT/JSON)、またはNLE/DAWタイムライン形式 (Resolve/Premiere/FCP/AAF/Reaper/Samplitude EDL) に対応。
  • フィラー除去 — 「えー」「あの」などをワンクリックでカット。
  • 無音除去 — 0.3秒以上の休止をワンクリックでカット。
  • 話者分離 — 話者ごとにグループ化された文字起こし。
  • タイムライン — 波形表示、ドラッグ可能なタイミングハンドル付きワードバー、分割、カット領域、再生ヘッド。スクロールでズーム、サイドスクロールでパンが可能。
  • 分割とトリミング — 再生ヘッドでクリップをカット。クリップの端をドラッグして、単語の境界を超えた微調整が可能。
  • 単語のタイミング — 音声認識のズレがある場合、ズームインして単語の端をドラッグして調整。
  • カットの端 — カットの端をドラッグして、ASRタイムスタンプとは独立してトリミング可能。ダブルクリックでリセット。
  • ライブプレビュー — 再生時にカット箇所をリアルタイムでスキップ。
  • ブラウザ/デスクトップエクスポート — ffmpeg.wasmによるフレーム精度の再エンコード。
  • NLE/DAWタイムラインエクスポート — DaVinci Resolve / Premiere XML, Final Cut FCPXML, Pro Tools/Logic AAF, Reaper .rpp, Samplitude .edl。
  • 音声ファイル — ポッドキャスト、ボイスメモ、インタビューなども動画と同様に編集可能。
  • デスクトップアプリ — Electron経由でmacOS、Windows、Linuxに対応 (Macでは署名・公証済み)。

仕組み (4ステップ)

  1. 抽出 — ffmpeg.wasmが音声をモノラル16kHz PCMにデコードします。
  2. 文字起こし — WhisperがWeb Worker内で動作し、単語ごとのタイムスタンプ付きでテキストをストリーミングします。pyannoteが各単語に話者を割り当てます。Whisper Base、Whisper Smallを選択するか、独自の文字起こしをインポートできます。
  3. 編集 — 単語を削除すると、元のメディアの「カット範囲」が生成されます。プレビュープレイヤーはリアルタイムでそれらをスキップし、タイムラインでは赤色で表示されます。フィラーや無音をワンクリックで削除します。
  4. エクスポート — 残った範囲がトリミングされ、ffmpegフィルターグラフで連結・再エンコード (libx264/aac) されるため、単語単位で正確なカットが可能です。

技術スタック

コンポーネント 技術
アプリ Next.js + React + TypeScript + Tailwind
デスクトップ Electron + electron-builder (GitHub Releasesから自動更新)
文字起こし transformers.jsで whisper-base_timestamped または whisper-small_timestamped を実行 (WebGPU、WASMフォールバック) (Web Worker内)
話者ラベル pyannote-segmentation-3.0 (ONNX)
メディア処理 ffmpeg.wasm (マルチスレッド) による音声抽出とエクスポート
状態管理 zustand

動作環境

  • ブラウザ: Chromiumベースのブラウザを推奨。SharedArrayBuffer (COOP/COEPヘッダーが必要) を使用し、利用可能な場合は推論にWebGPUを使用、不可の場合はWASMにフォールバックします。
  • デスクトップアプリ: Electron経由でmacOS、Windows、Linuxに対応。Chromiumをバンドルし、同様の分離ヘッダーを設定します。

プライバシーとテレメトリ

  • すべてのメディア処理はデバイス上で完結します(アップロードなし)。
  • デフォルトでは、Rescriptは匿名化された利用統計とクラッシュレポートを送信します(クラッシュレポートはスタックトレース、アプリバージョン、プラットフォーム情報と共にSentryへ送信されます)。設定 → プライバシー → 「アプリの改善に協力する」からオフにできます。オフにすると、そのインストール環境では即座に永続的に停止されます。

ライセンス

Copyright (c) 2026 Wassim Gharbi and Rescript contributors.

  • PolyForm Noncommercial License 1.0.0 — Rescriptは非営利目的でのみ使用、改変、共有が可能です。著作権表示を保持する必要があります。商用利用(有料での再販を含む)は許可されていません。商用ライセンスについては作者にお問い合わせください。
  • 以前のリリース はMITライセンスで公開されており、それらのバージョンについてはMITライセンスが適用されます。

クイックリンク

  • ブラウザで試す: app.getrescript.com
  • ダウンロード: macOS (Apple Silicon / Intel), Windows, Linux (AppImage / .deb) — GitHub Releasesから自動更新。
  • 開発セットアップ: npm install && npm run dev (web) または npm run electron:dev (デスクトップ)。
  • コミュニティ: Discord · X / Twitter

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト