SkillAgentSearch skills...

LLPlayer

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

Install / Use

/learn @umlx5h/LLPlayer
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align="center"><img height="96" src="./LLPlayer.png"></p> <h1 align="center">LLPlayer</h1> <h3 align="center">The media player for language learning.</h3> <p align="center">A video player focused on subtitle-related features such as dual subtitles, AI-generated subtitles, real-time translation, word lookup, and more!</p> <p align="center"> <a href="https://llplayer.com">Website</a> · <a href="https://github.com/umlx5h/LLPlayer/releases">Releases</a> </p>

🎬 Demo

https://github.com/user-attachments/assets/05a7b451-ee3b-489f-aac9-f1670ed76e71

TED Talk - The mind behind Linux

✨ Features

LLPlayer has many features for language learning that are not available in normal video players.

  • Dual Subtitles: Two subtitles can be displayed simultaneously. Both text subtitles and bitmap subtitles are supported.
  • AI-generated subtitles (ASR): Real-time automatic subtitle generation from any video and audio, powered by OpenAI Whisper. two engines whisper.cpp and faster-whisper are supported.
  • Real-time Translation: Supports many translation engines, such as Google, DeepL, Ollama, LM Studio, OpenAI.
  • Context-aware Translation: Highly accurate translation by recognizing the context of subtitles using LLM.
  • Real-time OCR subtitles: Can convert bitmap subtitles to text subtitles in real time, powered by Tesseract OCR and Microsoft OCR.
  • Subtitles Sidebar: Both text and bitmap are supported. Seek and word lookup available. Also supports incremental subtitle search.
  • Instant word lookup: Word lookup and browser searches can be performed on subtitle text.
  • Customizable Browser Search: Browser searches can be performed from the context menu of a word, and the search site can be completely customized.
  • Plays online videos: With yt-dlp integration, any online video can be played back in real time, with AI subtitle generation, word lookups!
  • Flexible Subtitles Size/Placement Settings: The size and position of the dual subtitles can be adjusted very flexibly.
  • Subtitles Seeking for any format: Any subtitle format can be used for subtitle seek.
  • Built-in Subtitles Downloader: Supports opensubtitles.org
  • Integrate with browser extensions: Can work with any browser extensions, such as Yomitan and 10ten.
  • Customizable Dark Theme: The theme is based on black and can be customized.
  • Fully Customizable Shortcuts: All keyboard shortcuts are fully customizable. The same action can be assigned to multiple keys!
  • Built-in Cheat Sheet: You can find out how to use the application in the application itself.
  • Free, Open Source, Written in C#: Written in C#/WPF, not C, so customization is super easy!

🖼️ Screenshot

LLPlayer Screenshot

TED Talk - The mind behind Linux

✅ Requirements

[OS]

  • Windows 10 x64, Version 1903 later
  • Windows 11 x64

[Pre-requisites]

[For Nvidia User (RTX GPU)]

  • Note: Having CUDA driver will make the rendering of subtitle faster CUDA 12.8 (please take note that this is the required driver if you're using Blackwell GPU's and if you want to use CUDA (RTX 50xx))

🚀 Getting Started

  1. Download builds from release

  2. Launch LLPlayer

Please open LLPlayer.exe.

  1. Open Settings

Press CTRL+. or click the settings icon on the seek bar to open the settings window.

  1. Download Whisper Model for ASR

From Subtitles > ASR section, please download Whisper's models for whisper.cpp. You can choose from a variety of models, the larger the size, the higher the load and accuracy.

Note that models with En endings are only available in English.

Audio Language allows you to manually set the language of the video (audio). The default is auto-detection.

If you want to use the faster-whisper engine instead of whisper.cpp, please download the engine instead of models from the settings. With faster-whisper, selected model is automatically downloaded the first time, so no prior download is required.

A description of each engine can be found here.

  1. Set Translation Target Language

To use the translation function, please set your native language. This is called the target language. The source language is detected automatically.

From Subtitles > Translate section, please set the Target Language at the top.

The default translation engine is GoogleV1.

If you want to use another translation engine, you will need to configure it in settings. You will find detail information in here.

  1. Play any videos with subtitles!

You can play it from the context menu or by dropping the video.

For online videos, you can also play it by pasting the URL with CTRL+V or from context menu.

There are two CC buttons on the bottom seek bar.

The left is the primary subtitle and the right is the secondary subtitle. Please set your learning language for the primary subtitle and your native language for the secondary subtitle.

Adding external subtitles is done in the same way as for videos, either by dragging or from the context menu.

  1. Open CheatSheet

You can open a built-in CheatSheet by pressing F1 or from ContextMenu.

All keyboard and mouse controls are explained. Keyboard controls are fully customizable from the settings.

❤️ Development Status

Status: Beta

It has not yet been tested by enough users and may be unstable.

Significant changes may be made to the UI and settings.
I will actively make breaking changes during version 0.X.X.

(Configuration files may not be backward compatible when updated.)

🔨 Build

  1. Clone the Repository
$ git clone git@github.com:umlx5h/LLPlayer.git
  1. Open Project

Install Visual Studio or JetBrains Rider and open the following slnx file.

$ ./LLPlayer.slnx

In Visual Studio, You need to add preview support for slnx format from the setting beforehand.

  1. Build

Select LLPlayer project and then build and run.

🚩 Roadmaps

Guiding Principles for LLPlayer

  • Be a specialized player for language learning, not a general-purpose player
    • So not to be a replacement for mpv or VLC
  • Support as many languages as possible
  • Provide some language-specific features as well

Now

  • [ ] Improve core functionality

    • [ ] ASR

      • [X] Enable ASR subtitles with dual subtitles (one of them as translation)
      • [ ] Pause and resume
    • [ ] Subtitles

  • [ ] Stabilization of the application

  • [ ] Allow customizable mouse shortcuts

  • [X] Documentation / More Help

Later

  • [ ] Support for dictionary API or for specific languages (English, Japanese, ...)
  • [ ] Dedicated support for Japanese for watching anime.
  • [ ] Text-to-Speech integration
  • [X] More translation engine such as local LLM

Future

  • [ ] Cross-Platform Support using Avalonia (Linux / Mac)
  • [X] Context-Aware Translation
  • [ ] Word Management (reference to LingQ, Language Reactor)
  • [ ] Anki Integration

🤝 Contribution

Contributions are very welcome! Development is easy because it is written in C#/WPF.

If you want to improve the core of the video player other than UI and language functions, LLPlayer uses Flyleaf as a core player library, so if you submit it there, I will actively incorporate the changes into the LLPlayer side.

https://github.com/SuRGeoNix/Flyleaf

I may not be able to respond to all questions or requests regarding core player parts as I do not currently understand many of them yet.

For more information for developers, please check the following page.

https://github.com/umlx5h/LLPlayer/wiki/For-Developers

Ask DeepWiki

🙏 Special Thanks

LLPlayer would not exist without the following!

For Libraries

In implementing LLPlayer, I used the Flyleaf .NET library instead of libmpv or libVLC, and I think it was the right decision!

The simplicity of the library makes it easy to modify, and development productivity is very high using C#/.NET and Visual Studio.

With libmpv and libVLC, modifications on the library side would be super difficult.

The author has been very helpful in answering beginner questions and responding very quickly.

Flyleaf comes with a sample WPF player, and I used quite a bit

View on GitHub
GitHub Stars3.5k
CategoryContent
Updated2h ago
Forks185

Languages

C#

Security Score

100/100

Audited on Apr 1, 2026

No findings