ilyhalight/voice-over-translation
ilyhalight/voice-over-translation has 7,704 GitHub stars and 460 forks. GitHot measured +34 in 7 days. Last checked 2026-11-11 00:10 UTC. Last push 2026-11-07.
Смотрите видео на другом языке с закадровым переводом и субтитрами в любом браузере
Measured star growth
- in 24h
- Update delayed
- in 7 days
- +34
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README-EN.md
Originalvoice-over-translation (vot)
Watch videos in other languages with voice-over translation and subtitles in any browser
Installation · Development · FAQ · Supported sites
All rights to the original software belong to their respective owners. This extension is not affiliated with the original rights holders.
Thanks to the Yandex.Translate and Yandex.Browser teams, and everyone helping make the extension even better.
Installing the extension From GitHub Releases
[!CAUTION] Before creating an issue, we strongly recommend reading the FAQ and existing issues.
Native for Chrome (Chromium)
- Open Releases
- Click to
vot-extension-chrome.zip - Open your extensions page:
- Chrome:
chrome://extensions - Edge:
edge://extensions - Brave:
brave://extensions - Opera:
opera://extensions
- Chrome:
- Enable Developer mode
- Drag and drop the downloaded
.zipfile onto the extensions page
Native for Firefox
- Open Releases
- Click to
vot-extension-firefox.xpi - Confirm the installation in Firefox
Userscript Loader (Tampermonkey)
[!WARNING] Important for Tampermonkey 5.2+ (MV3) users: In Chromium-based browsers (Chrome, Edge, Brave, Vivaldi, etc.) you must:
- Open the extensions page (
chrome://extensions) and enable "Developer mode" (details in Tampermonkey documentation).- If you use Chromium 138+, open extension details and enable "Allow User Scripts".
[!WARNING] For Opera users:
- Use Violentmonkey instead of Tampermonkey.
- In the extension settings, enable "Allow access to search page results" (Opera guide: where to find this setting), otherwise the script will not work.
- Install a userscript manager: Tampermonkey (or Violentmonkey for Opera)
- Click -> Install the script
Features
- Translate videos into Russian, English, or Kazakh from supported source languages
- Auto-translate videos on open
- Auto-enable subtitles on open
- Smart subtitle layout that adapts line width and text size to player dimensions
- Display AI-generated subtitles
- Display site-provided subtitles (for example, auto-translated YouTube subtitles)
- Save subtitles in
.srt,.vtt,.assand.jsonformats - Save translated audio as
.mp3 - Separate volume sliders for original and translated audio
- Adaptive volume: duck original audio while translated speech is playing
- Link translation volume with video volume
- Limit translation from selected languages (selectable in the menu)
- Hotkeys for translation and subtitles (including key combinations)
- Easy subtitle appearance customization
- Word-by-word translation directly in subtitles
Useful links
Limitations and recommendations
- It is recommended to allow autoplay for audio/video to avoid runtime playback errors
- The extension cannot translate videos longer than 4 hours (translator API limitation)
- For stable audio-download flow, use up-to-date and supported userscript managers (for example, Tampermonkey or Violentmonkey)
Supported sites
You can find the full list of supported websites and their specific limitations in the wiki.
Our domains:
These domains can be changed in the extension settings without rebuilding:
Proxy-server
Required for proxying requests when direct access to Yandex servers is unavailable.
- vot-new.toil-dump.workers.dev (⚠️ doesn't work in Russia)
Media Proxy-server
Required for proxying .m3u8 files and correctly processing indirect links to .mp4 and .webm.
How to build an extension?
- Install Node.js 22+ / Bun.sh
- Install dependencies:
NPM:
npm install
Bun:
bun install
- Build targets:
Automatic Build
Automatic builds are available only when using Bun.sh:
bun run autobuild
After the build completes, the .output directory (the single WXT output folder) will contain all build artifacts ready for publishing to the Chrome and Firefox extension stores, including the sources archive (vot-extension-<version>-sources.zip).
The dist-ext directory contains non-store builds distributed as .zip archives (for Chrome) and .xpi archives (for Firefox).
The dist directory contains the userscript build, which can be installed using Tampermonkey or other userscript managers.
Manual Build
Userscript (standard build):
npm run build:gm:default
Userscript (minified build):
npm run build:gm:min
Userscript (both builds):
npm run build:gm
Native Chrome/Firefox extensions :
bun build:chrome # Chrome
bun build:firefox # Firefox
bun build:ext # production build for Chrome + Firefox → .output/ and dist-ext/
bun build:ext:debug # unminified, with inline source maps
bun zip:ext # package as .zip
Development:
bun dev # extension, Chrome : dev mode, opens the browser on YouTube
bun dev:firefox # extension, Firefox (wxt -b firefox)
bun dev:gm # userscript (vite build --watch)
Extension pages and Solid components update via Vite HMR, while WXT automatically rebuilds and re-injects content scripts — no manual extension reload needed.
Development userscript build with source maps:
npm run build:dev
Userscript build artifacts are placed in dist/, unpacked extension builds in .output/chrome-mv3 and .output/firefox-mv3 , and packaged .zip/.xpi archives in dist-ext/.
If you are using Bun you can run unit tests with the built-in Test Runner:
bun test --isolate --preload ./tests/setup.ts
Customization of appearance:
The extension supports appearance customization via Stylus, Stylish, and similar tools.
Example style override:
/* ==UserStyle==
@name VOT-styles
@version 16.09.2023
@namespace vot-styles
@description LLL
@author Toil
@license No License
==/UserStyle== */
:root {
--vot-font-family:
"Roboto", "Segoe UI", BlinkMacSystemFont, system-ui, -apple-system;
--vot-primary-rgb: 139, 180, 245;
--vot-onprimary-rgb: 32, 33, 36;
--vot-surface-rgb: 32, 33, 36;
--vot-onsurface-rgb: 227, 227, 227;
--vot-subtitles-color: rgb(var(--vot-onsurface-rgb, 227, 227, 227));
--vot-subtitles-passed-color: rgb(var(--vot-primary-rgb, 33, 150, 243));
}
Contributing
Please refer to the contributing guide.
Based on sodapng/voice-over-translation project (license MIT)
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,618 starspublic-apis/public-apis
A collective list of free APIs
497,948 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
450,064 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,303 stars

