AI-powered transcription & translation desktop app. Real-time speech-to-text with Whisper, speaker diarization, live mic transcription, and 30+ language translation. Optimized for Apple Silicon with Metal GPU.
Python
5
25 commits
updated Oct 14, 2026
Premiere Pro panel for silence cutting, transcription, translation, voice / music separation and beat markers, backed by a local Python server (Whisper, pyannote, Mel-Band RoFormer, numpy beat tracker). Everything runs on your machine, GPU first — macOS (Apple Silicon / Metal) and Windows (NVIDIA CUDA, DirectML on any GPU, or CPU).
Option 1 — installer: run install-mac.command (macOS) or install-win.bat (Windows) from the release folder; it installs the panel and the backend.
Option 2 — manual:
EasyScript-Premiere.zxp (one file for macOS and Windows) with a ZXP installer (ZXP Installer by aescripts / Anastasiy's Extension Manager).backend/ folder to ~/.easyscript/backend (macOS) or %USERPROFILE%\.easyscript\backend (Windows) — the prebuilt backend needs no build. On macOS then run xattr -dr com.apple.quarantine ~/.easyscript/backend.Then open Premiere Pro → Window → Extensions → EasyScript; the panel starts the backend automatically. Full guide: release-template/guide.html (VI) / guide-en.html (EN).
Requirements: Premiere Pro 22+ (CEP 9+), macOS 13+ or Windows 10+, 8 GB RAM (16 GB for large models). FFmpeg is bundled.
EasyScript/
├── cep-extension-v2.1/ # Premiere panel (CEP)
│ ├── index.html / index.js / styles.css
│ ├── waveform.js # canvas waveform
│ ├── beats.js # beat-marker UI
│ ├── separate.js # voice / music separation UI
│ ├── bridge.js # promise wrapper over evalScript
│ ├── host.jsx # ExtendScript (ES3, JSON polyfilled)
│ └── package_zxp.* # sign → dist/EasyScript-Premiere.zxp
├── backend/ # FastAPI server (localhost:9876)
│ ├── server.py # API
│ ├── security.py # per-launch access token, Host/CORS checks
│ ├── transcriber.py / diarizer.py / translator.py / silence_detector.py
│ ├── waveform.py # multi-resolution peaks
│ ├── beat_tracker.py # numpy beat tracker
│ ├── xml_cut.py # FCP7 XML sequence cutter
│ ├── separator.py # voice / music stems (roformer.py torch, roformer_mlx.py MLX core)
│ ├── backend_main.py # PyInstaller entry
│ ├── easyscript_backend.spec
│ └── tests/
├── scripts/
│ ├── build_backend_win.ps1 # Windows backend build (venv: backend/venv-win)
│ ├── build_backend_mac.sh # macOS backend build (venv: backend/venv)
│ └── make_release.sh # assemble the release bundle
└── release-template/ # installer files copied into each release
cd backend
python -m venv venv && venv/bin/pip install -r requirements.txt
EASYSCRIPT_TOKEN=dev venv/bin/python server.py
Every request needs the access token (header X-EasyScript-Token, or ?token= for <audio> / WebSocket); only /health is open. The panel reads it from ~/.easyscript/token-<port>. EASYSCRIPT_TOKEN pins it for development.
Serve cep-extension-v2.1/ and open index.html?token=dev (add &port=… for another backend port), or run start_dev.command on macOS. Premiere-only actions are disabled in the browser.
Run cep-extension-v2.1/install.bat (Windows) or install.sh (macOS). It enables PlayerDebugMode and copies the panel into the CEP extensions directory; the debugger is at http://localhost:8088.
powershell -ExecutionPolicy Bypass -File scripts\build_backend_win.ps1
./scripts/build_backend_mac.sh
Output: backend/dist_backend/EasyScript-backend/. Step-by-step macOS build and release: docs/BUILD_MAC.md. Windows release zip (panel + backend + guides): scripts/make_release_win.ps1. Package the panel with cep-extension-v2.1/package_zxp.ps1 -ZxpSign <ZXPSignCmd.exe> (or package_zxp.sh). The signing certificate and ZXPSignCmd stay out of git.
python -m unittest discover -s backend/tests -t backend
MIT License
AI-powered transcription & translation desktop app. Real-time speech-to-text with Whisper, speaker diarization, live mic transcription, and 30+ language translation. Optimized for Apple Silicon with Metal GPU.
Python
5
25 commits
updated Oct 14, 2026
Premiere Pro panel for silence cutting, transcription, translation, voice / music separation and beat markers, backed by a local Python server (Whisper, pyannote, Mel-Band RoFormer, numpy beat tracker). Everything runs on your machine, GPU first — macOS (Apple Silicon / Metal) and Windows (NVIDIA CUDA, DirectML on any GPU, or CPU).
Option 1 — installer: run install-mac.command (macOS) or install-win.bat (Windows) from the release folder; it installs the panel and the backend.
Option 2 — manual:
EasyScript-Premiere.zxp (one file for macOS and Windows) with a ZXP installer (ZXP Installer by aescripts / Anastasiy's Extension Manager).backend/ folder to ~/.easyscript/backend (macOS) or %USERPROFILE%\.easyscript\backend (Windows) — the prebuilt backend needs no build. On macOS then run xattr -dr com.apple.quarantine ~/.easyscript/backend.Then open Premiere Pro → Window → Extensions → EasyScript; the panel starts the backend automatically. Full guide: release-template/guide.html (VI) / guide-en.html (EN).
Requirements: Premiere Pro 22+ (CEP 9+), macOS 13+ or Windows 10+, 8 GB RAM (16 GB for large models). FFmpeg is bundled.
EasyScript/
├── cep-extension-v2.1/ # Premiere panel (CEP)
│ ├── index.html / index.js / styles.css
│ ├── waveform.js # canvas waveform
│ ├── beats.js # beat-marker UI
│ ├── separate.js # voice / music separation UI
│ ├── bridge.js # promise wrapper over evalScript
│ ├── host.jsx # ExtendScript (ES3, JSON polyfilled)
│ └── package_zxp.* # sign → dist/EasyScript-Premiere.zxp
├── backend/ # FastAPI server (localhost:9876)
│ ├── server.py # API
│ ├── security.py # per-launch access token, Host/CORS checks
│ ├── transcriber.py / diarizer.py / translator.py / silence_detector.py
│ ├── waveform.py # multi-resolution peaks
│ ├── beat_tracker.py # numpy beat tracker
│ ├── xml_cut.py # FCP7 XML sequence cutter
│ ├── separator.py # voice / music stems (roformer.py torch, roformer_mlx.py MLX core)
│ ├── backend_main.py # PyInstaller entry
│ ├── easyscript_backend.spec
│ └── tests/
├── scripts/
│ ├── build_backend_win.ps1 # Windows backend build (venv: backend/venv-win)
│ ├── build_backend_mac.sh # macOS backend build (venv: backend/venv)
│ └── make_release.sh # assemble the release bundle
└── release-template/ # installer files copied into each release
cd backend
python -m venv venv && venv/bin/pip install -r requirements.txt
EASYSCRIPT_TOKEN=dev venv/bin/python server.py
Every request needs the access token (header X-EasyScript-Token, or ?token= for <audio> / WebSocket); only /health is open. The panel reads it from ~/.easyscript/token-<port>. EASYSCRIPT_TOKEN pins it for development.
Serve cep-extension-v2.1/ and open index.html?token=dev (add &port=… for another backend port), or run start_dev.command on macOS. Premiere-only actions are disabled in the browser.
Run cep-extension-v2.1/install.bat (Windows) or install.sh (macOS). It enables PlayerDebugMode and copies the panel into the CEP extensions directory; the debugger is at http://localhost:8088.
powershell -ExecutionPolicy Bypass -File scripts\build_backend_win.ps1
./scripts/build_backend_mac.sh
Output: backend/dist_backend/EasyScript-backend/. Step-by-step macOS build and release: docs/BUILD_MAC.md. Windows release zip (panel + backend + guides): scripts/make_release_win.ps1. Package the panel with cep-extension-v2.1/package_zxp.ps1 -ZxpSign <ZXPSignCmd.exe> (or package_zxp.sh). The signing certificate and ZXPSignCmd stay out of git.
python -m unittest discover -s backend/tests -t backend
MIT License