Many movies and episodes have no subtitle in the language you need, or none at all. AISub makes one with AI: it translates a subtitle that already exists (for example English → Romanian) or, when there is none, transcribes the film's audio and then translates it. You use your own AI keys, or an AI server on your own network, and pay the AI provider directly.
What it does
- Translation of an existing subtitle, from a subtitle file next to the video or a text subtitle inside the file: Claude Haiku by default, Claude Sonnet for top quality, or any OpenAI-compatible server, such as LM Studio, Ollama, OpenRouter or DeepSeek.
- Transcription from the audio when the title has no subtitle at all: Groq Whisper large-v3-turbo by default (or Whisper large-v3), or OpenAI Whisper. One transcription is reused for several target languages.
- Works with Rosub: the AI only generates the languages that Rosub searched for and did not find. The AI subtitle is registered as provisional and is replaced automatically by the first subtitle made by a person.
- Automatic: new movies and episodes are processed when they arrive, plus a nightly task (Missing AI subtitles) for the rest of the library, capped per night. You choose an ordered list of target languages.
- Cost caps: a maximum cost per title and per month, so the AI bill cannot run away.
- Faithful cues: the subtitle is translated in batches with context, and every cue is checked so no text slides onto a neighboring line.
- Jobs page (queue, progress, cost per job, this month's spending, generate for one title on demand) and Providers page (your keys, with a test for translation and for transcription).
What it sends where
- Translation: the subtitle text, in batches of cues, goes to the translation provider you chose (Anthropic, or the OpenAI-compatible server you set up, which can be a local one such as LM Studio or Ollama), with one line of context about the title: its name, year, up to 4 genres and the overview (at most 400 characters).
- Transcription: the film's audio track, mono, compressed and in chunks, goes to Groq or OpenAI, with the language and the title's name. There is no local transcription in this version. The video picture is never sent.
- Your provider keys are stored on your server, in a separate file readable only by the Jellyfin service account, and are sent only to their own provider; the plugin page shows only their last 4 characters.
- Nothing goes to medialab.works except the license check. You pay the AI provider directly, with your own key; we do not provide keys.
Full details for every product, including what stays on your server: Licensing, privacy and compatibility.
The plugin page shows the typical cost for a 2-hour film, at the providers' rates: about $0.08 to translate a subtitle with Claude Haiku, about $0.08 to transcribe with Groq Whisper large-v3-turbo, and nothing to translate with a local AI server.
Client compatibility
The result is a normal .srt subtitle saved next to the video file (Name.language.srt), so any app or player that shows external subtitles can show it. The plugin pages were checked in Jellyfin Web; individual apps have not been tested one by one yet. AI subtitles are made in the background or from the plugin page; they do not appear in the manual subtitle search.
Requirements
- Jellyfin Server 12.2 or newer.
- No graphics card: the AI work runs at the provider you choose; your server only extracts the audio, with Jellyfin's own ffmpeg.
- At least one of: an Anthropic key (translation), a Groq or OpenAI key (transcription), or a local OpenAI-compatible server for translation (LM Studio with "Serve on Local Network", or Ollama).
- Rosub is optional, but recommended.
Limits
- In version 0.1.0 the local mode covers translation only: transcription needs a Groq or OpenAI key.
- An AI subtitle is a provisional one. With Rosub, it is replaced as soon as a subtitle made by a person is found.
- When the monthly cap is reached, new jobs fail with a clear message until the next month (or until you raise the cap); the nightly task picks up the missing titles again later.
Licensing
The plugin is open source (GPL-3.0). The ready-to-install builds are public, like the source code. What you buy is the subscription: the license to use the plugin on one Jellyfin server, the updates your plan includes, and support: every update while the subscription is active, through your private plugin repository, and help when something does not work. The plugin checks the subscription key once a day; without a valid subscription it stops until you renew (nothing is deleted). Monthly, yearly or lifetime (lifetime includes one year of updates), or included in the Jellyfin bundle. 30-day free trial.
Source code. For every release, the complete corresponding source code is public, next to the build, in the changelog, and also in your account (Account → Licenses, Source code); each archive contains the full GPL-3.0 text (LICENSE). If you need the source of a version you can no longer download, ask us and we send it. See section 10 of the EULA.
AISub is our own code, written from scratch by MediaLab Works; it contains no third-party code and uses only .NET, the Jellyfin libraries and the ffmpeg of your Jellyfin server.