Model or dataset
umlx5h/LLPlayer avatar
umlx5h/LLPlayer

LLPlayer: A Windows video player built around subtitles for language learning

The media player for language learning, with dual subtitles, AI-generated subtitles, real-time translation, and more!

4,139 stars242 forksC#GPL-3.0

At a glance

What is it?
LLPlayer is a Windows-only, open source video player that puts subtitles at the center of language learning, with dual subtitle display, AI speech recognition, and real-time translation. It is still in beta, and its configuration may break between releases.
Who is it for?
Language learners on Windows who want a single tool to combine video playback, subtitle generation, translation, and word lookup should try LLPlayer, especially if they already use yt-dlp or Yomitan. It is not for users on macOS or Linux, and it is not for those who need a stable, long-term tool, since the developer warns of breaking changes and non-backward-compatible configuration files during the 0.X.X phase.
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 5 days 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 September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What LLPlayer solves and who it targets

LLPlayer is a video player that treats subtitles as the primary interface for language learning. Standard players show one subtitle track and give you little control over it. LLPlayer lets you display two subtitles at once, generate subtitles from audio using Whisper, translate subtitles in real time, and look up words without leaving the player. The intended user is someone who watches foreign-language videos, wants both the original and a translation visible, and wants to interact with the text. The README positions it as a tool for self-study, not for cinema-quality playback. It is Windows-only, requiring Windows 10 x64 version 1903 or later, or Windows 11 x64. If you are on another OS, this project is not for you.

How the subtitle pipeline works

The core mechanism is a dual-subtitle system. You assign a primary subtitle in your learning language and a secondary subtitle in your native language. Two CC buttons on the seek bar control which track is primary and which is secondary. Both text subtitles and bitmap subtitles (like those from DVD rips) are supported. For bitmap subtitles, an OCR engine converts them to text in real time, using either Tesseract OCR or Microsoft OCR. That conversion unlocks features like word lookup and subtitle seeking, which normally require text. The ASR feature generates subtitles from any audio or video using OpenAI Whisper, with two engine options: whisper.cpp and faster-whisper. The whisper.cpp engine requires you to download models manually from the settings, while faster-whisper downloads the selected model on first use. The translation layer sits on top of the subtitle text, sending it to engines like Google, DeepL, or local LLMs via Ollama or LM Studio. A context-aware translation mode uses an LLM to consider surrounding subtitles, which the README claims gives higher accuracy than line-by-line translation.

Getting it running: download, settings, and model setup

You do not build from source to use it. The README directs you to download a build from the Releases page and run LLPlayer.exe. The first prerequisite is the .NET Desktop Runtime 10, and if it is missing, an installer dialog appears. The second is Microsoft Visual C++ Redistributable version 2022 or later, which the README warns is required for Whisper ASR and Tesseract OCR. Without it, the app launches but crashes when ASR or OCR is enabled. That is a concrete failure mode to check before you rely on those features. Once running, you open settings with Ctrl+. or the settings icon. Under Subtitles > ASR you choose a Whisper model for whisper.cpp. Models with an En ending are English-only, and larger models increase load and accuracy. The Audio Language setting lets you override auto-detection. Under Subtitles > Translate you set your native language as the Target Language; the source language is auto-detected. The default translation engine is GoogleV1. For online videos, you paste a URL with Ctrl+V or use the context menu, and yt-dlp handles playback.

Limitations and failure modes

The project is explicitly in beta. The README states it has not been tested by enough users and may be unstable. The developer says significant UI and settings changes are planned, and configuration files may not be backward compatible when you update. That means your settings could reset or break with a new version. Another limitation is the Windows-only requirement, which excludes a large share of developers and learners who use macOS or Linux. The dependency on the Visual C++ Redistributable is a real trap: the app launches without it, but crashes when you enable ASR or OCR. If you skip the README, you will not know why the crash happens. For Nvidia users, the README notes that having a CUDA driver makes subtitle generation faster, implying that without it, generation will be slower. The OCR and ASR features are also compute-heavy, so on a machine without a decent GPU, real-time transcription may be impractical, though the README does not specify performance expectations.

Alternatives and how they differ

The obvious alternative is a general-purpose player like VLC or mpv, which can display subtitles but do not offer dual subtitles, ASR, or integrated translation. mpv has a scripting ecosystem that can approximate some of these features, but you would assemble them yourself. Another alternative is a dedicated language-learning tool like Language Reactor, which works as a browser extension over Netflix and YouTube. Language Reactor runs in the browser, so it is cross-platform and does not require local model downloads, but it depends on streaming services and cannot handle arbitrary local video files. LLPlayer's approach is different: it is a native desktop player that ingests any video file or online URL via yt-dlp, and it keeps all subtitle processing local, including Whisper and OCR. That gives you privacy and offline capability, but at the cost of setup complexity and hardware requirements. If you want to avoid local ASR entirely, a browser-based tool is simpler.

Extensibility and integration with external tools

LLPlayer is designed to work with other language-learning tools. The README mentions integration with browser extensions like Yomitan and 10ten, which are Japanese dictionary lookups. The mechanism is not detailed in the README, but the implication is that you can select a word in a subtitle and have it sent to a browser extension for dictionary lookup. The browser search feature is customizable, meaning you can define which search engine or site a word lookup opens. For developers, the project is written in C# and WPF, and the README claims customization is easy because it is not C. The repository uses an .slnx solution file, which opens in Visual Studio or JetBrains Rider. If you want to modify behavior, you can clone the repo and build. But the README does not provide a plugin API, so customization likely means editing source code.

Maintenance, upgrade cost, and license

The project is under active development, with releases v0.2.1, v0.2.2, and v0.3.0 between April 2025 and April 2026. The last push to the default branch was July 2026, so it is not abandoned. The license is GPL-3.0, which means if you modify and distribute the code, your changes must also be GPL-licensed. That is a consideration for anyone wanting to embed LLPlayer in a closed-source product. The upgrade cost is notable: the developer warns that configuration files may not be backward compatible during the 0.X.X phase. You should expect to redo settings after each update. The README also says the app is in beta and may be unstable, so you should not rely on it for critical work. If you use it for daily study, keep backups of your settings and be ready for changes.

Editorial conclusion

Language learners on Windows who want a single tool to combine video playback, subtitle generation, translation, and word lookup should try LLPlayer, especially if they already use yt-dlp or Yomitan. It is not for users on macOS or Linux, and it is not for those who need a stable, long-term tool, since the developer warns of breaking changes and non-backward-compatible configuration files during the 0.X.X phase. Before adopting it for daily study, verify that your GPU drivers and Visual C++ Redistributable are up to date, and test the ASR and OCR features with your own videos, since the README warns of crashes when those components are missing. Check the wiki for the list of supported translation engines and confirm your preferred engine is covered. If you only need offline playback with existing subtitles, a mainstream player may be simpler, but for integrated subtitle workflows, LLPlayer is a serious candidate.

Official sources

  1. License: GPL-3.0
  2. Project website
  3. README
  4. Releases
  5. umlx5h/LLPlayer on GitHub
Community notes

Community notes