{"id":45911483,"url":"https://github.com/EnergoStalin/subtitle-translate-mpv","last_synced_at":"2026-03-27T23:01:20.847Z","repository":{"id":50266239,"uuid":"518647521","full_name":"EnergoStalin/subtitle-translate-mpv","owner":"EnergoStalin","description":"Modular script for translating subtitles on the fly into multiple languages.","archived":false,"fork":false,"pushed_at":"2026-01-13T15:17:05.000Z","size":986,"stargazers_count":37,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-26T14:53:48.976Z","etag":null,"topics":["lua","mpv","mpv-script","subtitles","translation"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EnergoStalin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-07-28T00:16:54.000Z","updated_at":"2026-01-13T15:17:11.000Z","dependencies_parsed_at":"2023-12-16T18:28:47.541Z","dependency_job_id":"a60fdb62-ea67-4189-8f06-e22ce05ae931","html_url":"https://github.com/EnergoStalin/subtitle-translate-mpv","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/EnergoStalin/subtitle-translate-mpv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnergoStalin%2Fsubtitle-translate-mpv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnergoStalin%2Fsubtitle-translate-mpv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnergoStalin%2Fsubtitle-translate-mpv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnergoStalin%2Fsubtitle-translate-mpv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EnergoStalin","download_url":"https://codeload.github.com/EnergoStalin/subtitle-translate-mpv/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnergoStalin%2Fsubtitle-translate-mpv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31065013,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T22:49:25.097Z","status":"ssl_error","status_checked_at":"2026-03-27T22:49:22.599Z","response_time":164,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lua","mpv","mpv-script","subtitles","translation"],"created_at":"2026-02-28T07:00:27.282Z","updated_at":"2026-03-27T23:01:20.841Z","avatar_url":"https://github.com/EnergoStalin.png","language":"Lua","funding_links":[],"categories":["lua"],"sub_categories":[],"readme":"# SubtitleTranslateMPV\n[![wakatime](https://wakatime.com/badge/user/e95ece5f-54ed-4ef2-9ff3-b88a5a8bfc5c/project/f492dcc3-e7cb-41cc-8bf0-899f69af8719.svg)](https://wakatime.com/badge/user/e95ece5f-54ed-4ef2-9ff3-b88a5a8bfc5c/project/f492dcc3-e7cb-41cc-8bf0-899f69af8719)\n\n![Lua](https://img.shields.io/badge/lua-%232C2D72.svg?style=for-the-badge\u0026logo=lua\u0026logoColor=white)\n\n\u003e :memo:\n\u003e `~~` reffering to [mpv config folder](https://mpv.io/manual/stable/#script-location)\n\n\u003e :memo: You can benchmark defaultDelay by executing benchmark-sub-translator script message [see](#receiptrecommended-inputconf)\n\n\u003e :memo: secondary-sub-start currently unsupported\n\nModular script for auto translating subtitles on the fly into multiple languages.\nYou can extend it with you favorite translator by contributing one.\n## :herb:Features\n- Auto enable when `toLang` not match any subtitle stream.\n- Auto correct subtitle offset for comfort watching without delays.\n- Register 4 script messages what you can bind via `~~/input.conf`.\n    - Toggle messages\n        - sub-translated-only\n        - sub-primary-original\n    - enable-sub-translator\n    - disable-sub-translator\n    - benchmark-sub-translator\n\n## :arrow_down:Install\n- Clone repository into `~~/scripts` folder\n```\ngit clone --depth 1 https://github.com/EnergoStalin/subtitle-translate-mpv.git\n```\n- Setup default settings for mpv and script itself described below\n- Install dependencies described below and make sure they accessible from path\n\n## :gear:Options\nAvalible options `~~/script-opts/\u003ccloned_folder_name\u003e.conf`([see mp.get_script_name()](https://mpv.io/manual/stable/#lua-scripting-mp-get-script-name())) with default values\n```cfg\n# Initial subtitle delay for translator\ndefaultDelay=-0.5\n# Which provider to use(see translators folder in repository) or Providers readme section for reference\ntranslator=Console-Translate\n# Show only primary text\ntranslatedOnly=yes\n# Use original text as primary\nprimaryOriginal=no\n# Used in translator\nfromLang=en\ntoLang=ru\n# Full font name for showed text defaults to osd-font mpv property and can be omitted\nosdFont=Anime Ace v3\n# defaults to osd-font-size\nosdFontSize=36\n# Font scale relative to osdFontSize\nosdOriginalFontScale=50\n# Override all subtitle fonts to osdFont\noverrideFonts=yes\n# When any subitle stream language don't match toLang\n# (match performed by lua string.find())\n# Or there any external subtitle with unknown language\nautoEnableTranslator=yes\n# How fast delay adjusts default is 8 translate requests(ticks)\nsensitivity=8\n```\n## :receipt:Recommended input.conf\n```cfg\nCTRL+t script-message enable-sub-translator\nCTRL+T script-message disable-sub-translator\nALT+t script-message sub-translated-only\nALT+o script-message sub-primary-original\n\n# Will run benchmark to determine optimal defaultDelay for current translator\n# Check console for output\nALT+b script-message benchmark-sub-translator\n```\n## Providers\n:memo: One of providers listed below should be installed and specified in translator config field\n\n- [Console-Translate](https://github.com/Lifailon/Console-Translate) see [Console-Translate.lua](https://github.com/EnergoStalin/subutils-mpv/blob/master/modules/translators/Console-Translate.lua) (Recommended) (:warning: Support translation only of ru,en languages and vice versa [see](https://github.com/Lifailon/Console-Translate/blob/26a83cfcf9921a573fa1620d16bb1a463092ee7b/Console-Translate/0.3/Console-Translate.psm1#L29-L32))\n    \u003e :memo: Windows untested but should work\n\n    Average translation time by benchmark.lua **0.4s**\n\n- [crow](https://github.com/crow-translate/crow-translate) see [crow.lua](https://github.com/EnergoStalin/subutils-mpv/blob/master/modules/translators/crow.lua)\n    \u003e :warning::warning::warning: Crow may decide to encode your language not into utf-8 [#2](https://github.com/EnergoStalin/subtitle-translate-mpv/issues/2) then **subtitles will be broken**(fixed for russian by tricking [encoding](https://github.com/EnergoStalin/subtitle-translate-mpv/blob/master/modules/translators/encodings/auto.lua)) should work for major languages tho\n    \n    Average translation time by benchmark.lua **0.85s**\n\n    Avalible via winget\n    ```powershell\n    winget install --id KDE.CrowTranslate\n    ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEnergoStalin%2Fsubtitle-translate-mpv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FEnergoStalin%2Fsubtitle-translate-mpv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEnergoStalin%2Fsubtitle-translate-mpv/lists"}