← all repositories
rockbenben/subtitle-translator

Bulk-Translate Subtitles Without Leaving Your Browser

A browser-based batch translator for .srt, .ass, .vtt, and .lrc that processes a whole season client-side, plugging into 7 traditional MT engines and 17+ LLM providers.

989 stars TypeScript Domain Apps
subtitle-translator
Not currently ranked — collecting fresh signals.
star history

What it does Subtitle Translator is a web app that ingests subtitle files by the dozen—think entire TV seasons—and translates them through your choice of machine-translation APIs or LLMs. It strips out timecodes and formatting locally, sends only the dialogue text for translation, then reassembles everything so your timelines stay intact. The whole operation runs in the browser: files, API keys, and an IndexedDB cache never leave your machine.

The interesting bit The tool treats subtitle formats as structural puzzles rather than plain text. It auto-detects encoding with jschardet, preserves ASS position tags like \an8, skips VTT metadata blocks, and can even export bilingual ASS files with separate styling for originals and translations—all while keeping the translation engine blissfully unaware of timecodes.

Key highlights

  • Supports .srt, .ass, .vtt, and .lrc with auto-detected encoding (UTF-8, UTF-16, GBK, Shift-JIS).
  • Claims ~1 second per episode via chunked compression and parallel processing (GTX excepted).
  • 7 traditional MT APIs (DeepL, Google, Azure, etc.) and 17+ LLM providers (OpenAI, Claude, DeepSeek, local Ollama, etc.).
  • True client-side operation: subtitles and API keys stay in the browser; LLM calls go direct from your tab to the endpoint.
  • Bilingual output with format conversion (SRT ↔ VTT, SRT/VTT → ASS) and per-language file suffixes in batch runs.

Caveats

  • Format conversion is tied to translation: the app blocks identical source and target languages, so you cannot convert a file to another format without also translating it.
  • Context-aware LLM translation is explicitly discouraged for models under 70B parameters, which may misalign output.
  • The free GTX API is noted as slower and lower quality than the other traditional options.

Verdict Fansubbers, archivists, and anyone sitting on a hard drive full of untranslated episodes will appreciate the batch throughput and privacy stance. If you only need to tweak a single subtitle file once a year, it is probably overkill.

Frequently asked

What is rockbenben/subtitle-translator?
A browser-based batch translator for .srt, .ass, .vtt, and .lrc that processes a whole season client-side, plugging into 7 traditional MT engines and 17+ LLM providers.
Is subtitle-translator open source?
Yes — rockbenben/subtitle-translator is open source, released under the MIT license.
What language is subtitle-translator written in?
rockbenben/subtitle-translator is primarily written in TypeScript.
How popular is subtitle-translator?
rockbenben/subtitle-translator has 989 stars on GitHub.
Where can I find subtitle-translator?
rockbenben/subtitle-translator is on GitHub at https://github.com/rockbenben/subtitle-translator.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.