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단계)
- 추출 — ffmpeg.wasm이 오디오 트랙을 모노 16kHz PCM으로 디코딩합니다.
- 트랜스크립트 — Whisper가 Web Worker 내에서 단어별 타임스탬프와 함께 텍스트를 스트리밍하며 실행됩니다. pyannote가 모든 단어에 화자를 할당합니다. Whisper Base, Whisper Small을 선택하거나 직접 트랜스크립트를 가져올 수 있습니다.
- 편집 — 단어를 삭제하면 원본 미디어의 "컷 범위"가 생성됩니다. 미리보기 플레이어는 이를 실시간으로 건너뛰며, 타임라인에는 빨간색으로 표시됩니다. 필러/무음을 클릭 한 번으로 제거하세요.
- 내보내기 — 유지된 범위가 트림되고 ffmpeg 필터 그래프로 연결되어 재인코딩(
libx264/aac)되므로 단어 단위로 정확하게 컷이 적용됩니다.
기술 스택
| 구성 요소 | 기술 |
|---|---|
| 앱 | Next.js + React + TypeScript + Tailwind |
| 데스크톱 | Electron + electron-builder (GitHub Releases를 통한 자동 업데이트) |
| 트랜스크립트 | Web Worker 내에서 whisper-base_timestamped 또는 whisper-small_timestamped를 실행하는 transformers.js (WebGPU, WASM 폴백) |
| 화자 라벨 | 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(웹) 또는npm run electron:dev(데스크톱). - 커뮤니티: Discord · X / Twitter
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트