AI-Powered Subtitle Translation for Stremio
Watch any content in your language. Fetch subtitles from multiple sources, translate instantly with AI — without ever leaving your player.
Try It Now • Features • Quick Start • How It Works • Troubleshooting
No setup required!
Configure, install, done. A huge thanks to ElfHosted for the free community hosting!
Check their FREE Stremio Addons Guide for more great addons and features!
For self-hosting, see Quick Start below.
| Category | Highlights |
|---|---|
| Languages | 197 supported languages (433 for translation) |
| Subtitle Sources | OpenSubtitles, SubDL, SubSource, Wyzie, Stremio Community, Subs.ro |
| AI Translation | 10+ providers: Gemini, OpenAI, Claude, DeepL, DeepSeek, Grok, Mistral, OpenRouter, Cloudflare, Custom/Local |
| Smart Caching | Shared translation database — translate once, benefit everyone |
| Timestamp Workflows | XML Tags, JSON, Numbered Timestamps, Send Timestamps to AI |
| No-Translation Mode | Just fetch subtitles without translation |
| Provider | Auth Required | Notes |
|---|---|---|
| OpenSubtitles | Optional (recommended) | V3 or authenticated mode |
| SubDL | API key | subdl.com/panel/api |
| SubSource | API key | subsource.net |
| Wyzie Subs | API key | sub.wyzie.io/redeem |
| Stremio Community Subtitles | None | Curated subtitles (beta) |
| Subs.ro | API key | Romanian subtitles (beta) |
| Provider | Notes |
|---|---|
| Google Gemini | Default, free tier available, key rotation supported |
| OpenAI | GPT models |
| Anthropic | Claude models |
| DeepL | Traditional translation API |
| DeepSeek | |
| XAI (Grok) | |
| Mistral | |
| OpenRouter | Access multiple models |
| Cloudflare Workers AI | |
| Google Translate | Unofficial, no key needed |
| Custom | Ollama, LM Studio, LocalAI, any OpenAI-compatible API |
- Node.js 18+ — nodejs.org
- Gemini API Key — Get free
- At least one subtitle provider key (optional but recommended)
# Clone and install
git clone https://github.com/xtremexq/StremioSubMaker.git
cd StremioSubMaker
npm install
# Create and configure .env
cp .env.example .env
nano .env
# Start the server
npm start📦 See complete Docker deployment guide →
Visit: http://localhost:7001
1. Install SubMaker in Stremio
2. Play content → Subtitles list shows "Make [Language]" buttons
3. Click → Select source subtitle to translate
4. Wait ~1-3 minutes → AI translates in batches
5. Reselect the subtitle → Now translated!
6. Next time? Instant — cached in database
- Add Subtitle Sources API keys
- Add Gemini API Key (required for translation)
- Select source languages (translate from)
- Select target languages (translate to)
- Click "Install in Stremio" or copy the URL
| Tip | Description |
|---|---|
| Single source language | Keeps subtitle order consistent |
| Test sync first | Try original subtitle before translating |
| Triple-click | Forces re-translation if result looks wrong |
| Use Flash-Lite | Fastest model, check rate limits |
| Section | Purpose |
|---|---|
| API Keys | Subtitle providers and AI translation keys |
| Languages | Source (translate from) and target (translate to) |
| Settings | Translation behavior, workflows, and caching |
| Setting | Recommendation |
|---|---|
| Translation Workflow | "XML Tags" for best sync |
| Database Mode | "Use SubMaker Database" for shared caching |
| Provider Timeout | 12s default, increase to 30s for SCS/Wyzie |
| Mobile Mode | Enable for Android/iOS |
Enable "Advanced Mode" in Other Settings to unlock:
- Batch Context (surrounding context for coherence)
- Mismatch Retries (retry on wrong entry count)
- Gemini Parameters (temperature, top-p, thinking budget)
📖 Full Guide: TROUBLESHOOTING.md
Test other Translation Workflow in Settings:
| Workflow | Description |
|---|---|
| XML Tags (default) | Uses XML id tags for reconstruction |
| Original Timestamps | Reattaches original timecodes using numbered entries |
| Send Timestamps to AI | Trusts AI to preserve timecodes |
- Force re-translation — Triple-click the subtitle (within 6 seconds)
- Try a different model — Switch between Flash-Lite, Flash, or others
- Bypass cache — Enable "Bypass Cache" in Translation Settings
- Validate API key — Test at Google AI Studio
- Switch model — Gemma 27b has higher rate limits than Flash
- Enable key rotation — Add multiple Gemini keys
- Use secondary provider — Enable fallback provider
- Enable Mobile Mode — Check "Mobile Mode" in Other Settings
- Wait 1-3 minutes — Mobile delivers complete subtitle when ready
- Use Flash-Lite — Fastest model for mobile
- Verify Token — Ensure installed token matches config page
- Hard refresh —
Ctrl+F5(Windows/Linux) orCmd+Shift+R(Mac) - Check console —
F12→ Console for errors - Try incognito — Rules out extension conflicts
Click the Reset button at the bottom of the config page.
Built With
- Stremio Addon SDK — Addon framework
- OpenSubtitles — Primary subtitle database
- SubDL — Alternative subtitle source
- SubSource — Alternative subtitle source
- Google Gemini — AI translation
Special Thanks
- Stremio team for excellent addon SDK
- Google for free Gemini API access
- All subtitle communities
- ElfHosted — Free community hosting
| Channel | Link |
|---|---|
| Issues & Bugs | Open an issue |
| Documentation | Open /configure for the live interactive config/help page |
| Community | Stremio Discord • r/StremioAddons |
SubMaker — Watch anything. Understand everything. Any language.
Made with ❤️ for the Stremio community
