voice-over-translation/README-EN.md
2025-05-21 23:47:00 +03:00

13 KiB
Raw Blame History

Voice Over Translation

ru en

Caution

Before creating Issues, we strongly recommend that you read the FAQ section and with existing Issues.

Warning

All rights to the original software belong to their respective right holders. The extension isn't affiliated with the original rights holders

The voice-over translation of the video is now available not only in YandexBrowser. Very grateful to devs who create Yandex.Translate, and all contributors who help make the extension better. Thanks <3

Installing the extension:

Warning

If you use Tampermonkey 5.2.0+, don't forget to enable "Developer Mode"!

  1. Install the extension Tampermonkey
  2. «Install the Script»

List of features:

  • Translate videos into Russian, English, or Kazakh from supported source languages
  • Translate live streams on YouTube (with slight delay)
  • Display AI-generated subtitles
  • Show site subtitles (e.g., YouTube's auto-translated subs)
  • Save subtitles in .srt, .vtt, or .json formats
  • Save translated audio as .mp3
  • Auto-translate videos on open
  • Separate volume sliders for original and translated audio
  • Auto-adjust translated audio volume like in Yandex Browser
  • Sync translation volume with video volume
  • Limit translation for your native language (selectable in menu)
  • Trigger translation with a hotkey
  • Easy customize subtitle appearance
  • Show word-by-word translation in subtitles
  1. Javascript library (vot.js): Link
  2. Terminal version (vot-cli): Link
  3. Wiki: Link

Note:

  1. I recommend allowing autoplay of "audio and video" to avoid errors when working with the extension
  2. The extension cannot translate videos longer than 4 hours (translator API limitation)

List of supported sites:

You can see the full list of supported websites and all restrictions related to their support in wiki

Our domains:

These domains can be set in the extension settings (only those domains that can be changed without rebuilding are listed here):

Proxy-server

It's necessary for proxying requests if it is not possible to make a direct request to the Yandex servers

Media Proxy-server

It's necessary for proxying .m3u8 files and correcting the translation for indirect links to .mp4 or .webm(for more information in the repository)

VOT-Backend

It's necessary to translate additional sites that use the .m3u8 or .mpd video format.

How to build an extension?

  1. Install Node.js 22+ / Bun.sh
  2. Install dependencies:
npm install

Bun:

bun install --yarn
  1. Building an extension:

    3.0. All versions at once:

    npm run build
    

    3.1. All minified versions at once:

    npm run build:min
    

    3.2. Only the regular version:

    npm run build:default
    

    3.3. Only the usual min. versions:

    npm run build:default-min
    

Customization of appearance:

The extension supports customization of the appearance using Stylus, Stylish and other similar extensions.

Example of changing styles:

/* ==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));
}

Tested browsers and loaders

This list is updated quite rarely, but in most cases the data in it will be relevant.

The extension has been tested in the following browsers:

Status Browser Min. Browser Version Platform Extension
Firefox Developer Edition v106 Windows Tampermonkey (MV2), FireMonkey, VioletMonkey, Greasemonkey
Firefox v116.0.2 Windows, Linux, Android Tampermonkey (MV2), Violetmonkey
Firefox Nightly v118.0a1 Windows, Android Tampermonkey (MV2)
LibreWolf v100.0.2-1 Windows Tampermonkey (MV2)
Brave v1.46 Windows Tampermonkey (MV2)
MS Edge v106.0.1370.34 Windows, Linux Tampermonkey (MV2)
Cent Browser v4.3.9.248 Windows Tampermonkey (MV2)
Cent Browser Beta v5.0.1002.182 Windows Tampermonkey (MV2)
Google Chrome v106 Windows, MacOS, Linux Tampermonkey (MV2), Tampermonkey (MV3), Violetmonkey, OrangeMonkey, User Javascript and CSS
Opera GX (LVL4) core91 Windows Tampermonkey Opera
Opera GX (LVL5) core109 Windows Tampermonkey Opera
Opera v92.0.4561.43 Windows Tampermonkey Opera
Vivaldi 5.7.2921.63 Windows, Linux Tampermonkey (MV2)
Safari v15.6.1 MacOS, iOS Userscripts, Tampermonkey
Kiwi Browser v116.0.5845.61 Android Tampermonkey (MV2)
Yandex Browser v24.4 Windows Tampermonkey (MV2), Tampermonkey (MV3)
Arc v1.6.1 Windows Tampermonkey (MV3)
Incognition v4.1.1.0 (v125) Windows Tampermonkey (MV3), Tampermonkey (MV2)

Min. Browser version it's a minimal version of which extension has been tested. However, this doesn't mean that it willn't run in older versions. Please note that we don't support or fix errors in outdated browsers.

To activate the script in Tampermonkey (MV3), you must enable "Developer Mode"

Tested in the following extensions-loaders for userscripts:

Status Browser Extension
Any Tampermonkey Legacy (MV2)
Opera Tampermonkey Opera
Chrome Tampermonkey (MV3)
⚠️¹ Safari Userscripts
Any Violetmonkey
Any AdGuard Usercripts
Install guide Firefox Firemonkey
Firefox Greasemonkey
⚠️² Any OrangeMonkey
Install guide¹ Any User Javascript and CSS

¹ - It works in proxying mode, the important "Use audio download" function is unavailable due to the lack of the unsafeWindow API, which may lead to problems with translating new videos.

² - requestIdleCallback throws a lot of errors in the console, but the extension works.

Contributing

Please refer to the contributing guide.

example btn

Based on sodapng/voice-over-translation project (license MIT)