SRT AI Translator is a portable Windows desktop app for translating, transcribing, and extracting subtitles with Google Gemini. It wraps the gemini-srt-translator CLI in an Electron + React interface and bundles the runtime pieces needed for normal end-user use.
- Translate
.srtsubtitle files into many target languages, including non-Latin languages such as Hebrew. - Translate subtitle tracks from video files after extracting the selected track.
- Detect embedded subtitle tracks and warn when the video already contains a subtitle track matching the chosen target language.
- Export text subtitle tracks to
.srtand image/PGS subtitle tracks to.sup. - Transcribe audio or video into a new
.srtfile using Gemini speech recognition. - Search TMDB metadata and use cast/context details to improve gendered and contextual translation.
- Manage multiple Gemini API keys, validate each key independently, and use valid fallback keys when the primary key is invalid or quota-limited.
- Fetch Gemini models dynamically while keeping a curated friendly model list.
- Configure model generation options such as batch size, batch context, temperature, Top-P, Top-K, thinking level/budget, service tier, and paid-quota behavior.
- Save optional translation artifacts beside the exported SRT: token reports, progress logs, and thoughts logs.
- Use bundled FFmpeg/FFprobe in the portable build, with an optional manual FFmpeg override in Settings.
- Switch between light, dark, and automatic UI themes.
- Download the latest
SRT AI Translator-<version>-portable.zipfrom GitHub Releases. - Extract the ZIP anywhere, for example to your Desktop, a USB drive, or another folder.
- Run
SRT AI Translator.exefrom the extracted folder. - Enter at least one Gemini API key in Settings.
The portable build is self-contained. End users do not need to install Node.js, Python, gemini-srt-translator, FFmpeg, or FFprobe separately.
Settings and API keys are stored per Windows user under %APPDATA%; they are not stored inside the portable ZIP.
You need a Gemini API key from Google AI Studio:
https://aistudio.google.com/apikey
The app supports multiple keys. Each key can be marked as Free or Paid manually, because Google does not expose that tier through the API. The first valid key is used as the primary key, and additional valid keys can be used as fallbacks.
The app includes TMDB-powered search/context features. You can use the bundled/default TMDB behavior or provide your own TMDB key in Settings if you want your own quota.
- Open the Translate page.
- Select an input
.srtfile. - Choose source language or leave it on auto-detect.
- Choose the target language.
- Optionally search TMDB and apply movie/TV context.
- Choose the Gemini model and generation settings in Settings if needed.
- Start translation.
- Save the translated
.srtwhen the run completes.
If token/progress/thoughts logging is enabled in Settings, the selected log files are copied next to the saved translated SRT.
- Select a video file on the Translate page.
- If multiple subtitle tracks are available, choose the desired track.
- If a subtitle track already matches the target language, the app warns you so you can choose whether to use the built-in subtitle instead of translating.
- Export text subtitles as
.srtor image/PGS subtitles as.supwhen available. - Translate an extracted text subtitle track if needed.
- Open the Transcribe page.
- Select an audio or video file.
- Choose language/model settings as needed.
- Start transcription and save the generated
.srt.
- Gemini API Keys: add up to five keys, reveal/hide keys, mark each key Free/Paid, and validate them individually.
- Fetch Models & Check API Keys: validates keys and refreshes available Gemini models from the first valid key.
- Model & Generation: select model, batch size, batch context, temperature, Top-P, Top-K, thinking level, and thinking budget.
- Quota and Service Tier: configure paid quota behavior and Gemini service tier.
- Logging: enable token report (
.tokens.json), progress log (.progress.log), and thoughts log (.thoughts.log) output. - FFmpeg Path: leave empty to use bundled FFmpeg in the portable build; set a path only if you want to override it.
- Theme: choose Light, Dark, or Auto.
- Node.js 18 or newer.
- Python 3.10 or newer.
gemini-srt-translatorand PyInstaller when rebuilding the bundledgstexecutable.
Install dependencies and run the app in development mode:
npm install
npm run devIn development mode, the app falls back to gst from your system PATH unless a bundled executable exists where the app expects it.
Build the Python CLI wrapper and the Windows portable package:
npm run build:python
npm run build:winThe Windows build output is:
release/SRT AI Translator-<version>-portable.zip
The Electron build bundles:
resources/bin/gst.exeresources/bin/ffmpeg.exeresources/bin/ffprobe.exe
PyInstaller does not cross-compile, so build the Windows executable on Windows.
electron/
main/ Electron main process, IPC handlers, Python bridge, FFmpeg, TMDB, settings store
preload/ Typed contextBridge API exposed to the renderer
shared/ Shared TypeScript types and language data
src/
components/ Reusable UI components, subtitle track panel, TMDB search
lib/ Runtime hooks such as translation runner state
pages/ Translate, Transcribe, and Settings pages
store/ Zustand settings store
scripts/
build_python.py PyInstaller build for the bundled gst executable
resources/
bin/ Local bundled runtime binaries; ignored by Git
The repository is configured to avoid committing local/generated data:
node_modules/out/release/resources/bin/- logs
- build caches
Do not commit Gemini API keys, TMDB keys, .env files, local app config, generated translations, or private subtitle/media files.