Model or dataset
Felix3322/PotPlayer_ChatGPT_Translate avatar
Felix3322/PotPlayer_ChatGPT_Translate

PotPlayer_ChatGPT_Translate: real-time AI subtitle translation inside PotPlayer

[support ollama/other model]【兼容ollama和其他模型】将任何具有OpenAI API调用方法的模型集成到PotPlayer中。它使你在观看视频时能够实时翻译字幕,从而打破语言障碍,提升你的观看体验。 This real-time subtitle translation plugin integrates OpenAI's ChatGPT API (or any model with the same API calling method) into PotPlayer. It enables you to translate subtitles on-the-fly while watching videos.

1,052 stars72 forksC++GPL-3.0

At a glance

What is it?
A GPL-3.0 AngelScript plugin that sends PotPlayer subtitles to any OpenAI-compatible chat/completions endpoint, with a context mode and a faster stateless mode. It is for Windows users who already watch with external subtitle files.
Who is it for?
Adopt it if you watch subtitled video on Windows in PotPlayer and already pay for or self-host an OpenAI-compatible endpoint, and start with the no-context script so a bad key or a slow endpoint shows up immediately. Do not adopt it if you need a subtitle file on disk for another player, if you rely on embedded or image-based subtitle tracks, or if you want an offline pipeline with no API in the loop.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly C++, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The gap this plugin fills: subtitles that exist but are in the wrong language

PotPlayer's subtitle translation extension point is not a translation engine. It is a hook that hands subtitle text to a script and expects translated text back. Most scripts written against that hook call a machine translation service, and the README's own framing is that AI models handle context, idioms, jokes, cultural references and ambiguous dialogue more naturally than traditional subtitle translation tools. That claim is the project's whole reason to exist, and it is a reasonable one: a line like a pronoun whose referent sits in the previous sentence is exactly where a sentence-by-sentence translator falls apart.

The intended user is narrow. You watch video on Windows in PotPlayer, you have an external subtitle file already loaded, and you either hold an API key or run a local model that speaks the chat/completions format. The README is explicit that the source-code path is for development and testing and that not every source-code path has been fully tested, so the audience for a build-from-repo workflow is smaller than the audience for the installer. If you are looking for a way to generate subtitles from audio, this is not that: the plugin translates subtitle text that already exists, and the README does not describe any speech recognition step.

How the context and no-context scripts differ

The repository ships two AngelScript files at the top level: SubtitleTranslate - ChatGPT.as and SubtitleTranslate - ChatGPT - Without Context.as, each with its own .ico. That naming is the architecture. Both are PotPlayer subtitle translation scripts; the difference is what gets put in the request.

The context variant feeds previous subtitles along with the current line, which is why the README says translation quality is usually better while latency and token usage may be higher. The no-context variant translates each subtitle more independently: faster and cheaper, but the README warns it may misunderstand pronouns, references, jokes or short lines. This is a straight trade of prompt tokens for coherence, and it is the single most consequential choice a user makes.

Around that core the README lists optional behaviours: retry, request delay, a context cache mode, a small-model prompt mode, and a hallucination check for abnormal translation output. The hallucination check is the interesting one, because it implies the author has seen models return output that does not look like a translation. The README does not document what the check considers abnormal or what happens to a line that fails it, so treat it as a safety net of unknown mesh size rather than a guarantee.

API configuration is string-based rather than structured. A model field holds a bare model name, and an endpoint is appended after a pipe character. Any service that follows a compatible chat/completions format can potentially be used, which is what makes the ollama and DeepSeek style setups people search for plausible, but the README does not walk through a local-model configuration step by step.

Installing PotPlayer_ChatGPT_Translate with installer.exe

The README's recommended path is the installer, not the repository. Download the latest installer from the releases page and run it; it will request a Windows administrator prompt, which you should approve.

The installer tries to detect your PotPlayer path automatically. The target folder is normally the Translate subfolder of PotPlayer's subtitle extension directory:

text
...\PotPlayer\Extension\Subtitle\Translate

If PotPlayer lives somewhere custom, the README says to select the Translate folder yourself. Then you pick the plugin variant, with context or without context, and fill in the model field. A bare model name looks like this:

text
gpt-4.1-nano

To point at a different endpoint, append the full chat/completions URL after a pipe:

text
gpt-4.1-nano|https://api.openai.com/v1/chat/completions

Enter the API key if your endpoint needs one. If it does not, the README says to leave the key field blank and press Verify; when the empty-key test succeeds the installer injects the literal value nullkey. Click Install and the plugin files are copied into the subtitle translation folder. After that, open PotPlayer, press F5, go to Extensions > Subtitle translation, select ChatGPT Translate, and set the source and target languages plus the model, API URL and API key. One behaviour worth knowing before you tune anything: installer defaults are written once, and later changes made in PotPlayer's own plugin panel override them.

Where it breaks: keys, endpoints and subtitle tracks

The failure modes here are mostly environmental. A wrong API key, an endpoint that has moved, or a model name the provider has retired all produce the same visible result, which is subtitles that do not change. The README's own Verify button exists for that reason, and it is the only diagnostic the README describes.

The second limitation is the subtitle source itself. This is a subtitle translation extension, so it operates on subtitle tracks PotPlayer is rendering as text. If a file carries only embedded or bitmap subtitle streams, there is nothing for the script to hand to the API. The README does not discuss that case at all.

The third is cost and latency, which the README acknowledges in the context variant rather than hiding. Context mode sends prior lines with each request, so a two-hour film becomes a long series of prompts carrying overlapping history. The README does not publish token counts, per-film cost estimates or measured latency, so anyone budgeting should treat the request delay and context cache options as the levers and measure their own setup.

Finally, the project's own README is candid that the source-code version is mainly for development and testing and that not every source-code path has been fully tested, and it notes the repository was temporarily unavailable while the author's GitHub account was suspended. That is a distribution risk to weigh if you plan to depend on the repository rather than a downloaded release package.

Alternatives and what actually differs

The nearest conventional alternative is PotPlayer's built-in subtitle translation support wired to a machine translation service. The difference is not the plumbing, since both go through the same extension hook, but the unit of translation: a conventional service translates the line it is given, while the context script in this project deliberately includes preceding subtitles in the prompt. That is the entire bet, and it is why the no-context script exists as a fallback for people who find the bet does not pay off in their language pair.

A second alternative is translating subtitles outside the player, with a subtitle editor or a batch script, and loading the finished file. That approach gives you a file you can review, correct and keep, and it works in any player. This plugin gives you none of that: translation happens while you watch, and the README describes no export of the translated text back to a subtitle file. If you want a corrected artifact, the offline route is the correct one.

A third is running a local model behind an OpenAI-compatible server. The README states that any model or service following a compatible chat/completions format can potentially be used, which is what makes local inference an option at all, but it does not give a configuration recipe for one, so you are on your own for the endpoint URL and model name.

Licence, maintenance and upgrade cost

The project is licensed GPL-3.0, and the LICENSE file sits at the repository root. For a PotPlayer plugin that a user installs, that is mostly a distribution question: if you redistribute a modified version of the script, the GPL's source-availability terms attach to what you distribute, and the plugin links into PotPlayer's extension mechanism rather than shipping as a standalone binary. This is not legal advice; if you plan to bundle the plugin with something else, read the licence text yourself.

The last push to the default branch was on 2026-08-25, and the most recent release listed is v1.9.4 from 2026-06-11, following v1.9.3 in May and v1.9.2-release2 in March. The repository is not archived. The release cadence over that window is real but not dense, and the README's own warning about untested source-code paths means the practical upgrade path is the installer and the release package rather than tracking master.

Upgrade cost is low in the ordinary case, because the artifact is a script plus an icon copied into a folder. The friction is configuration: the README states that installer defaults are written once and that PotPlayer's own panel settings override them afterwards, so a reinstall will not necessarily reset what you changed inside the player. Expect to re-check the model, API URL and key in the plugin panel after any upgrade.

Editorial conclusion

Adopt it if you watch subtitled video on Windows in PotPlayer and already pay for or self-host an OpenAI-compatible endpoint, and start with the no-context script so a bad key or a slow endpoint shows up immediately. Do not adopt it if you need a subtitle file on disk for another player, if you rely on embedded or image-based subtitle tracks, or if you want an offline pipeline with no API in the loop. Before committing, verify three things: that the installer detected the right ...\PotPlayer\Extension\Subtitle\Translate folder, that the Verify button succeeds with your key or with an empty key on a no-key endpoint, and that the model field you typed matches a model the endpoint actually serves.

Frequently asked questions

Can PotPlayer automatically generate subtitles?

PotPlayer_ChatGPT_Translate does not generate subtitles from audio; it translates subtitle text that already exists. The README describes no speech recognition step, and the plugin only sends subtitle lines to an OpenAI-compatible chat/completions endpoint.

Is PotPlayer Chinese?

PotPlayer_ChatGPT_Translate is a plugin for PotPlayer, not a player of its own, and its README is published in English, Simplified Chinese and Traditional Chinese. The README does not describe PotPlayer's own origin or interface languages.

What are the best settings for PotPlayer?

For this plugin the README's main setting choice is the variant: with context for better quality at higher latency and token usage, or without context for faster, cheaper translation that may misread short lines. It also lists optional retry, request delay, context cache, small-model prompt mode and a hallucination check.

How do I change the language of PotPlayer?

Translation languages are set inside the plugin, not the player: after installing, press F5 in PotPlayer, open Extensions > Subtitle translation, select ChatGPT Translate, and set the source and target languages there. The installer only writes defaults once; later changes in that panel override them.

Official sources

  1. Felix3322/PotPlayer_ChatGPT_Translate on GitHub
  2. Issues
  3. License: GPL-3.0
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/felix3322-potplayer-chatgpt-translate.svg)](https://hysenlabs.com/projects/felix3322-potplayer-chatgpt-translate)