LLPlayer

umlx5hGPL-3.0活跃维护

面向语言学习者的视频播放器,支持双语字幕、Whisper 语音识别自动生成字幕、OCR 识别画面文字,并接入大模型做实时翻译。

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

v0.3.0发布于 2026-04-19 06:15 UTC4,628star +21 / 7 天291fork同步于 2026-11-10 17:38 UTC

怎么上手

由 README 提炼,执行前请确认
下载 Releases 中的构建包,运行 LLPlayer.exe;首次使用需在 设置 > Subtitles > ASR 中下载 whisper.cpp 模型
硬件要求按 README 说明

仅支持 Windows 10 x64(1903 及以上)和 Windows 11 x64。ASR 默认只用 CPU,可在设置里开 CUDA 或 Vulkan 加速,NVIDIA RTX 用户装 CUDA Toolkit 会更快。README 未给出具体显存要求。

需要 CUDA
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

面向语言学习的视频播放器,主打双语字幕、AI 生成字幕与实时翻译

面向语言学习者的视频播放器,支持双语字幕、Whisper 语音识别自动生成字幕、OCR 识别画面文字,并接入大模型做实时翻译。

核心能力

  • 同时显示两条字幕,支持文本与位图字幕
  • 用 Whisper 实时生成 ASR 字幕,可选 whisper.cpp 或 faster-whisper 引擎
  • 接入 Google、DeepL、Ollama、OpenAI 等引擎做实时翻译
  • 用 LLM 结合字幕上下文做上下文感知翻译
  • 用 Tesseract 或微软 OCR 把位图字幕实时转成文本

容易踩的坑

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

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.3.0
  1. 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.

  2. 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+F or 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 Like has 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.srt
    

    The 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
  3. 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.

  4. 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.

  5. 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

    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

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    🎬 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 generating of subtitles faster CUDA Toolkit

    🚀 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 [email protected]:umlx5h/LLPlayer.git
    
    1. Open Project

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

    $ ./LLPlayer.slnx
    
    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

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

    • 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.
    • 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

    Ask DeepWiki

    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!

    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.

    VLCLLPlayer
    Cross-Platform (Win, Linux, Mac)✔️❌
    Auto-generated subtitlesnot yet (whisper.cpp)✔️ (whisper.cpp, faster-whisper)
    Real-time translationnot yet✔️
    Local translationnot 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.