必须安装 .NET Desktop Runtime 10,否则会弹出安装提示;未装 Visual C++ 2022 可再发行组件时程序能启动,但开启 ASR 或 OCR 会崩溃;whisper.cpp 引擎需先手动下载模型,faster-whisper 首次使用时会自动下载;项目处于 Beta,配置可能不向后兼容

LLPlayer
umlx5hGPL-3.0活跃维护面向语言学习者的视频播放器,支持双语字幕、Whisper 语音识别自动生成字幕、OCR 识别画面文字,并接入大模型做实时翻译。
The media player for language learning, with dual subtitles, AI-generated subtitles, real-time translation, and more!
下载 Releases 中的构建包,运行 LLPlayer.exe;首次使用需在 设置 > Subtitles > ASR 中下载 whisper.cpp 模型仅支持 Windows 10 x64(1903 及以上)和 Windows 11 x64。ASR 默认只用 CPU,可在设置里开 CUDA 或 Vulkan 加速,NVIDIA RTX 用户装 CUDA Toolkit 会更快。README 未给出具体显存要求。
面向语言学习的视频播放器,主打双语字幕、AI 生成字幕与实时翻译
面向语言学习者的视频播放器,支持双语字幕、Whisper 语音识别自动生成字幕、OCR 识别画面文字,并接入大模型做实时翻译。
核心能力
- 同时显示两条字幕,支持文本与位图字幕
- 用 Whisper 实时生成 ASR 字幕,可选 whisper.cpp 或 faster-whisper 引擎
- 接入 Google、DeepL、Ollama、OpenAI 等引擎做实时翻译
- 用 LLM 结合字幕上下文做上下文感知翻译
- 用 Tesseract 或微软 OCR 把位图字幕实时转成文本
容易踩的坑
- v0.3.0最新正式版2026-04-19 · 2026-04-19 06:15 UTC
Main Features
Core Library Update
The following libraries have been updated, resulting in improved performance and stability. Now, You need to install .NET 10 Desktop Runtime: https://dotnet.microsoft.com/en-US/download/dotnet/10.0
- .NET 10
- Flyleaf v3.10.3 and ffmpeg v8
- whisper.net (whisper.cpp)
- DeepL
- Tesseract OCR
Support Bing & Azure translation engine (#112 #180)
For more infomartion: https://github.com/umlx5h/LLPlayer/wiki/Translation-Engine
Updated DeepL supported languages
The number of languages supported by DeepL has increased.
High-DPI support for subtitles
The issues with high-DPI support for subtitle display has been resolved.
Changelog
Features
- (FlyleafBar) make the seek bar size configurable and adjust the default a3797bec01cf6c2276b7cdfee24db72c0fcc9ee0
- (key) add ResetDelay key to reset audit/subtitles delay ac12a69691efdf467e5091e86ef3b6781c431918
- (translate) support Bing & Azure translation engine [Fixes #112, #180] 28299ba943504e690913d76504518d62ce75fd13
Bug Fixes
- (ASR) cpu mode by default for faster-whisper, add presets for RTX 50XX CUDA [Fixes #95] 619a80ea8aa1db651f54dfc161d0cb4400af8b0f
- (FlyleafHost) disable IME on Surface/Overlay for keybinding 5d4de323ebb7f10212fb40e7402bc04486f6607b
- (YoutubeDL) fix loading conditions based on the language of the audio stream c55a8dcc04b08dd5976ddbb40e164f8a59477b9a
- (ci) fix test and build warnings 43a1885b5fac2912ee8779412259c8f69ad3dea5
- (key) add default keys for speed reset to '1' 945f64c551ae05afef37368deb6bfea8ceaefbf7
- (settings) fix hyperlink style coloring 22862e4f3b9357479dd35259be66eadebaddea65
- (subtitle) fix deadlock issue with subtitles enabling toggle fc6e29092c9b6007f1d6eeed52d2326e4996a8d9
- (subtitle) support high-DPI display of subtitles e4a72aeefa6b9a0584c3ea73395a5b3cc367c772
- (translate) update supported DeepL languages (added Aragonese, Wolsh) f3b67304b4217d02bb224bcaac2e23cb591ea759
- Fixes default back color transparency 6fbbc3decc45065306a69f04f83b9a2d039426b8
Refactoring
- use NoTs for SubtitlesASR/Manager 31b06bb9502caa81140e6cb595d6eee925c9dbea
Build
- (deps) bump packages (whisper.cpp, deepl, tesseract, etc) 4776ea2e66dd11c6875760d8203dedda895716ab
- update .NET runtime 9 to 10 f9ebdd96361f96f079e8eb1541183ddc66cf6a80
Ci
- build with dotnet msbuild instead of publish 079e1b31f03a9d75d0dd4c1853d07f10d211b04f
- download yt-dlp with a specified version 9630c6d240d94a98e0e0e8bd1fd04dca97d2c7a3
Full Changelog: https://github.com/umlx5h/LLPlayer/compare/v0.2.2...v0.3.0
Disclaimer
LLPlayer is still in beta phase. It has not been tested by many users and may be unstable. Backward compatibility of settings will not be maintained until version 1.
- v0.2.22025-05-24 · 2025-05-24 15:19 UTC
查看更新说明
Main Features
Support Incremental Subtitle Search (#91) [Thanks @KRSHH]
Subtitles can now be filtered by incremental search. This is useful when jumping to a specific subtitle.
You can search using
CTRL+For the search button on the sidebar.Add another LLM translation engine - KoboldCpp, LiteLLM, OpenAI Like (#74 #80)
Two LLM engines have been added. LiteLLM is a proxy server that allows integration with various LLMs such as Gemini and Grok.
KoboldCpp: https://github.com/LostRuins/koboldcpp LiteLLM: https://docs.litellm.ai/docs/
A new OpenAI-compatible engine
OpenAI Likehas also been added, in which the API request path can be configured.https://github.com/umlx5h/LLPlayer/wiki/Translation-Engine
Support Reasoning Models such as Qwen3, DeepSeek for LLM translation
Inference models such as Qwen3 are now supported. Inference messages are now automatically removed.
Subtitle Settings Enhancement (#101)
Subtitles can now be set to a background color to improve visibility.
It is also now possible to have different font settings for primary and secondary.
Subtitle Local Search Enhancement (#103)
Extended autoloading of subtitles in the same path as the opened video. Subtitles in the following formats are now automatically loaded.
video.srt video.en.srt video.eng.srt video.foo.srt video\subs\video.srt video\subtitles\video.srtThe default subtitle folder is
subs,subtitles. (case-insensitive) Folders can be customized in the settings.Chinese specific enhancements
Several enhancements have been made for Chinese users.
Support Chinese word segmentation (#84)
You can now select one Chinese word at a time.
Support translation between Simplified and Traditional Chinese (#82)
Google Translate, for example, can now translate between simplified and traditional Chinese.
Select Simplified or Traditional in ASR (#82)
Simplified and traditional Chinese can now be configured in ASR by customizing the prompt in whisper.cpp, faster-whisper.
How to configure it https://github.com/umlx5h/LLPlayer/issues/82#issuecomment-2809060134
Features
- (ASR) add Prompt parameter to whisper.cpp a4e4a3e393d287b7591625ca1ee87ea3467f7d94
- (ASR) add preset functionality of prompt 2b93bde001499fb058de392ad6e065b107d9baaf
- (ASR) add distil-large-v3.5 model in faster-whisper 5433a45913b02ad69d874b8b529f2d7104724b21
- (ASR) enable GPU device selection in whisper.cpp [Fixes #94] d9bccef7769f3d0d00dd1976ab458eff9d8797af
- (ASR) update faster-whisper-xxl r245.4 c1db552b4178830eabc1134a7d268cf9b3a025ba
- (seek) add secondary subs seeking keybindings [Fixes #104] c379344994572810e64435be07807d62c04834f6
- (subtitle) add Max Width config for text subtitles b6b6aabc2e01be50fb24fbadb1cd95a80ed1ad0d
- (settings) add language auto-open settings for subtitle, audio streams 1362b0a8a7fc2de9ee0c041569ac77ff61dd1926
- (settings) make font and stroke color adjustable with color picker a03e448d66744d46e7ed2da10319553183dea28a
- (translate) support LLM parameters - temperature, top_p 7f7c670662021296f82993cd2fbb73aeb41b0d7c
- (translate) support LLM parameters - max_tokens, max_completion_tokens aa82cf8d9c4e4b88e41f52775e12a68ccf1e14cd
- (YoutubeDL) add option of whether to automatically open automatic subtitles 964df1a95eae17a9372070a8a3594a93a3446d23
- add Always-On-Top window feature & its binding to CTRL-T e13c933239796b09f52b4ef17d352fe13719d8f7
Small Fixes
- (FlyleafBar) Taskbar UI adjustment (#105) [Thanks @celestum] 008a91fbf3e9bfe7a32fad9455c2db17e21b69c6
- (YoutubeDL) review subtitle loading conditions [Fixes #73] fbbfe663dad5d4acb7e456acd075437f6b7222b4
- (config) change auto copy toggle shortcut from ALT+A to CTRL+A 3aac04b29467d159b72f5b8b89ea3d50ad768684
- (config) set the OS language as
- v0.2.12025-04-12 · 2025-04-12 00:50 UTC
查看更新说明
Small Fixes
- (ASR): update faster-whisper-xxl r245.3 915f4a35bef46aadec690cc4bbe2e31eeb4a8bb8
- (translate): ensure singleton task 56e3a8fea6bd1dd1040693b130a08399b7c5e206
Full Changelog: https://github.com/umlx5h/LLPlayer/compare/v0.2.0...v0.2.1
Disclaimer
LLPlayer is still in beta phase. It has not been tested by many users and may be unstable. Backward compatibility of settings will not be maintained until version 1.
- v0.2.02025-04-08 · 2025-04-08 10:38 UTC
查看更新说明
Many interesting features have been added, including a new faster-whisper ASR engine, LLM translation, Context-aware translation, and Japanese word segmentation!
Main Features
Add faster-whisper ASR engine
A faster-whisper engine has been added.
Compared to whisper.cpp, it has the advantage of no hallucinogenic bugs and accurate timestamps.
The engine must be downloaded from within the application.Information on the ASR engine can be found below.
https://github.com/umlx5h/LLPlayer/wiki/Whisper-Engine
Add LLM translation engine (Ollama, LM Studio, OpenAI, Claude)
Four new translation LLM engines have been added!
Ollama and LM Studio can run locally.
But they require a significant CPU/GPU.It is now possible to run completely locally, including whisper!
Information on the translation engine can be found below.
https://github.com/umlx5h/LLPlayer/wiki/Translation-Engine
Support Context-aware translation
Ollama, LM Studio, OpenAI, and Claude are LLM APIs, but I have added the ability to translate while preserving the context of the subtitles.
It allows for more accurate translations compared to Google and DeepL!
OpenAI and Claude have confirmed particularly high accuracy.It is enabled by default.
You can customize the behavior a bit in the settings.Japanese Word Segmentation
Special support for Japanese has been added.
Now you can click and translate word by word in subtitles.Breaking changes
Some ASR and translation settings have been changed.
Update users who have changed their settings from the defaults may need to reconfigure them.
Features
- (subtitle) make secondary subtitle selectable f2e08a12c71fda4507dc28c7b5e0ee8c65509e49
- (deps) update whisper.net v1.8.1 [Fixes #17] a788feab287a12e578c2f12128ad7b86983c243c
- (translate) [breaking] add Max Translate Count Backward parameter b4b99cf4db337eb2b6698c49b164f1eee9c222e9
Small Fixes
- (ASR) show loaded runtime option in settings [Fixes #65] 2604b4bfef82e630f72b5cd55bf417d6e4bc0328
- (theme) make primary pink color less eye straining 201b669ad9a0fa67f024f0b5081ba8f39b98dae1
- (SubsDownload) add Year column 48e55051e2823a1563873a134b5ab8e147dd7ef8
Bug Fixes
- (subtitle) correct RTL language display such as Arabic, Hebrew [Fixes #66] e08a44d6474a7a0f01bba2d986c7cf3d219ff41b
- (translate) revise the architecture of translator 0a166782d346f7caa5bbb200fcb1b33579ab3889
- (translate) cancel a running translation when big seek is done ae555ee4f3f3160886dd4324ea6654d16357c940
- (translate) remove line break from GoogleV1 result 91206b19107338dc0e99bbcb9af6dd038cddb481
- (mouse) prevent window dragging in fullscreen e422f2f3fd44894823652234da14dd630a939f6b
- (ASR) set language manually if auto-detect mode after one chunk processed 17b6cf208e29fcf833ac3affb01c866a9d47cecc
- (error) fix error handling of translation & sub downloader c4a5aac43153edc7f89c272c635204c3707d096b
Full Changelog: https://github.com/umlx5h/LLPlayer/compare/v0.1.3...v0.2.0
Disclaimer
LLPlayer is still in beta phase. It has not been tested by many users and may be unstable. Backward compatibility of settings will not be maintained until version 1.
- v0.1.32025-03-18 · 2025-03-18 10:01 UTC
查看更新说明
What Changed
Various bug fixes, ease of use improvements, and performance improvements have been made. Many performance improvements have been made for faster YouTube playback and subtitle generation for online videos.
Main Features
-
Added the following mouse controls
- Wheel: Volume Up/Down
- X1, X2: Subtitle Seek
- (disable by default) Left Double-Click: FullScreen toggle
-
Added option to show seek bar only when on mouse over #30
- see this link for setting it up
Features
- support AeroSnap when dragging window 2fe0d0ed7d892a884a76c25558d412ae549d32f9
- (YoutubeDL) support YouTube chapters 730c7598c8c6cdbb5bdb4b4b0bbbad7201f9df44
- (YoutubeDL) add option of video resolution limit fbd028cd06c3c6ecdebcd1fb5c9ed57a56c17e3d
- (YoutubeDL) add option to prefer video with audio 5f98555b2c5b2e212a58d02c6a61c1a8f7ca4c7b
- (appAction) add AppClone action and its menu 1865e5845607e3333120504fb8e967a7bd7a1c33
- (PopupMenu) add copy of subtitles delay between 1st and 2nd fc0d14fd78cbf831d030350ebc66f554d2e25228
Performance
- (ASR) parallelize packets reading and whisper execution [Fixes #56] 85960fdf770e60d455c6329610c20c81e84f1fbc
- (ASR) reuse Whisper instance per chunk 74eb3a2b8762e8f1015852a231fc3a7edb782ac0
- (ASR) reuse MemoryStream buffer 1dcd90acd9a275aaf4246259b8b385ff537b76dd
- (YoutubeDL) prefer m3u8 protocol for selecting audio in YT 71f71f71d07bfd5fdd600e804d6d49013ce18ba8
- (YoutubeDL) prefer VP09 over AVC for YouTube 1c898128ba969dd6415c75e0bb95c3857089e989
Fixes
- (ASR) fixed a bug that prevented the spinner from stopping after a video stop d78361de16f2097ec7d78590d21b1dc74830fdc2
- (ASR) disable ASR execution with live streams [Fixes #48] a170a58f54c6115fb5a9cca0b57631b16a7c899c
- (ASR) fix seeking before ASR [Fixes #51] e507ac1cc91aa85494f867c6f0cb59599a4f00c3
- (ASR) fix for audio formats for which pts cannot be retrieved 427e749c9557bd79b9f81dfcb1592661c902531c
- (ASR) fixed last chunk handling c8ce813b6c680e76850b5f180322ecf130ff3b9a
- (ASR) add error handling 30cd3e18b7950c7095dc242e9a6428226e6e7489
- (FlyleafBar) fix an issue where the remaining time display is not updated during seek d211f0a9b1279eeca1be75ae586db8fc32cbf9f1
- (FlyleafBar) fixed an issue with inaccurate timestamps in the seek bar tooltip ed3671bc5b4d3c2e5e6a770323ca009ff66e3fa2
- (FlyleafBar) stop disabling Activity when settings opened 16de50b3dcfae8685b8f88dd13896a6d25a1a8ec
- (FlyleafBar) add top margin of title to prevent misfire fb8a6c994ef90bbf562c5c57375cccedb2a07eed
- (OSD) change Spinner binding to Player.Status f2976ab41e52a8a4ca61fe786e1786b9f554e564
- (PopupMenu) add no audio info to external video stream 304ef1aa4faaa11e356848458582aacc4a78917c
- (SubsDownload) prefer user-defined languages instead of "English" b0c9b160ffc0336f32a797d698ae894500ff82ae
- (YoutubeDL) load auto-generated subs by default but do not open automatically 3e39e9f6c47f36fad77c3abaabfb6a5730ac4645
- (mouse) do not execute playback toggle when drag move is large 82e5d33fcc0542fb2af8979d44ded9c8bbea70a5
- (player) do not start SubtitlesDemuxer when switching external video streams 6bba11144497ea6c9b425039044e48397292b0ac
- (plugin) load plugin default options properly cc73ef08f2fd068decac198c300d8a9ec90c8c93
- (settings) fix textbox validation for speed offset 2c8b86e5814275b96db4d02963cb630a99d219a9
- (sidebar) change to pixel scrolling in ListView 7c6893d90b7a0ddf35eaeaf13655952e2c0f6d2c
- (subtitle) fixed subtitle size not updated when only height was changed db668bc500bd3c34814cc1f48c85e6c446b836cd
- (subtitle) fixed error in adjusting subs distance in audio files 6316a5dbb4b0d61537af9de0b812edcf26d16622
- always enable the mouse cursor when opening windows a6032198d0e8191a6ed
-
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
🎬 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

TED Talk - The mind behind Linux
✅ Requirements
[OS]
- Windows 10 x64, Version 1903 later
- Windows 11 x64
[Pre-requisites]
- .NET Desktop Runtime 10
- If not installed, a installer dialog will appear
- Microsoft Visual C++ Redistributable Version >= 2022 (for Whisper ASR, Tesseract OCR)
- Note that if this is not installed, the app will launch, but will crash when ASR or OCR is enabled!
[For Nvidia User (RTX GPU)]
- Note: Having CUDA driver will make the generating of subtitles faster CUDA Toolkit
🚀 Getting Started
-
Download builds from release
-
Launch LLPlayer
Please open LLPlayer.exe.
- Open Settings
Press CTRL+. or click the settings icon on the seek bar to open the settings window.
- 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.
- 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.
- 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.
- 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
- Clone the Repository
$ git clone [email protected]:umlx5h/LLPlayer.git
- Open Project
Install Visual Studio or JetBrains Rider and open the following slnx file.
$ ./LLPlayer.slnx
- 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
- Enable ASR subtitles with dual subtitles (one of them as translation)
- Pause and resume
-
Subtitles
- Customize language preference for primary and secondary subtitles, respectively, and automatic opening
- Enhanced local subtitle search
- Export ASR/OCR subtitle results to SRT file
-
-
Stabilization of the application
-
Allow customizable mouse shortcuts
-
Documentation / More Help
Later
- Support for dictionary API or for specific languages (English, Japanese, ...)
- Dedicated support for Japanese for watching anime.
- Word Segmentation Handling
- Incorporate Yomitan or 10ten to video player
- Text-to-Speech integration
- More translation engine such as local LLM
Future
- Cross-Platform Support using Avalonia (Linux / Mac)
- Context-Aware Translation
- Word Management (reference to LingQ, Language Reactor)
- Anki Integration
🤝 Contribution
Contributions are welcome!
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
For more information for developers, please check the following page.
https://github.com/umlx5h/LLPlayer/wiki/For-Developers
Please read CONTRIBUTING.md before submitting a pull request.
🙏 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. Thank you very much.
Subtitle generation is achived by OpenAI Whisper, whisper.cpp and its binding whisper.net. LLPlayer simply uses these libraries to generate subtitles. Thank you for providing this for free!
- Sicos1977/TesseractOCR : For Tessseract OCR
- MaterialDesignInXAML/MaterialDesignInXamlToolkit : For UI
- searchpioneer/lingua-dotnet : For Language Detection
- CharsetDetector/UTF-unknown : For Charset Detection
- sskodje/WpfColorFont : For Font Selection
For Apps
Browser Extension for Netflix. LLPlayer is mainly inspired by this with its functionality and interface. (Not enough functionality yet, though).
❓ FAQ
Q: Does ASR or OCR or translation require network communication?
ASR (auto-generated subtitles) and OCR subtitles are all performed locally.
Therefore, no network communication occurs at all.
However, the model needs to be downloaded only once for the first time, and this is the only place where network communication occurs.
Translation works locally if you choose Ollama or LM Studio API.
Your privacy is fully guaranteed because it is free and OSS.
Q: How can I speed up the ASR? (whisper.cpp)
By default, only the CPU is used to generate subtitles.
Setting Threads to 2 or more from the ASR settings may improve performance.
Note that setting it above the number of CPU threads is meaningless.
If your machine is equipped with a NVIDIA or AMD GPU, you can expect even faster generation by enabling CUDA or Vulkan from the Hardware Options in the ASR settings.
Certain runtimes may require a toolkit to be installed in advance. See the link below for details.
https://github.com/sandrohanea/whisper.net?tab=readme-ov-file#runtimes-description
The available ones will be used in order of priority from the top. Note that changing the hardware options settings will require a restart.
Q: What if I want to look up a dictionary from a word?
You can translate words, but cannot currently look up dictionaries.
I plan to support the dictionary API in the future, but is not currently supported because it is difficult to support a lot of languages.
Instead, you can copy selected words to the clipboard. Certain dictionary tools can monitor the clipboard and search for words.
For English-English dictionaries, LDOCE5 Viewer X is highly recommended.
Q: Can I use browser extensions such as Yomitan or 10ten?
Currently not available within the video player, but you can send subtitle text to your browser via the clipboard. Thus, you can check the meaning of words with any browser extension such as Yomitan, 10ten.
A little preparation is required, please check following page.
https://github.com/umlx5h/LLPlayer/wiki/Browser-Extensions-Integration
Q: How do I update yt-dlp.exe?
yt-dlp.exe is located in the following path.
Plugins/YoutubeDL/yt-dlp.exe
You can download latest version executable from the following.
https://github.com/yt-dlp/yt-dlp/releases/
If you want to update, please download and copy it to the specified path.
Q: What is the difference between VLC and LLPlayer?
VLC is a general-purpose media player.
In contrast, LLPlayer has many useful features especially for language learning.
| VLC | LLPlayer | |
|---|---|---|
| Cross-Platform (Win, Linux, Mac) | ✔️ | ❌ |
| Auto-generated subtitles | not yet (whisper.cpp) | ✔️ (whisper.cpp, faster-whisper) |
| Real-time translation | not yet | ✔️ |
| Local translation | not yet (SeamlessM4t?) | ✔️ (Ollama, LM Studio) |
| Online translation | ❌ | ✔️ (Google, DeepL, OpenAI) |
| Context-aware translation | ❌ | ✔️ (by LLM) |
| Word Translation | ❌ | ✔️ |
| Word Search | ❌ | ✔️ |
| Subtitle Sidebar | ❌ | ✔️ |
| Incremental Subtitle Search | ❌ | ✔️ |
| Subtitle Seeking | ❌ | ✔️ |
| Dual Subtitles | ✔️ (awkward to use) | ✔️ |
Q: Why perform subtitle generation and translation in real time?
Laziness is the main reason. Generating subtitles in advance is quite tedious, especially for online video.
ASR and translation can be performed from any playback position, so even if you only want to watch a portion of the video with subtitles, you can do so without waiting at all.
In addition, advances in software and hardware allow for maximum accuracy in ASR and translation.
📝 LICENSE
This project is licensed under the GPL-3.0 license.