Skip to content

Latest commit

 

History

History
267 lines (199 loc) · 14.6 KB

README-EN.md

File metadata and controls

267 lines (199 loc) · 14.6 KB

Voice-over-translation

ru en

Caution

Before creating Issues, we strongly recommend that you read the FAQ section, as well as with existing Issues

The voice-over translation of the video is now available not only in YandexBrowser. Very grateful, Yandex.Translate, sodapng, mynovelhost, SashaXser and to all other contributors. Thanks <3

Installing the extension:

Warning

If you use Tampermonkey 5.2.0+, don't forget to enable Developer mode or use Tampermonkey MV2

  1. Install the extension Tampermonkey (An alternative for Safari: UserScripts)
  2. «Install the Script»

List of functionality:

  1. Video translation from one of the available languages in russian, english or kazakh
  2. Translation of streams to YouTube (works with a slight delay)
  3. Displaying subtitles generated by the neural network (autogenerated subtitles are additionally displayed on YouTube)
  4. Saving used subtitles (in .srt format)
  5. Saving the audio track of the translation (in .mp3 format)
  6. Automatic video translation when opening
  7. Sliders for changing video volume and translation
  8. Automatic setting of the translated video volume (as in Yandex browser)
  9. Synchronizing the translation volume with the video volume
  10. Limit the translation of videos from your native language (you can select the language in the menu)
  11. Audio proxying
  12. Translation with hotkey

Useful links:

  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 all the restrictions related to site support in wiki.

⚠️ - Requires additional actions, more 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 18.18+ / 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

How to patch vot.js

  1. Make the necessary changes to node_modules/vot.js/the required file
  2. Save the changes using:

NPM (not tested, but it should work):

npx patch-package vot.js

Bun:

bunx patch-package --use-yarn vot.js

Do not use patches from the bun patch or from any npm packages. They will be incompatible with the patch-package, and may also break when updating the package.

How to update localization files

For all interaction with localization files, the l10n-tui utility is made.

To call the utility, use the command:

bun l10n

You can read more about the utility here

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));
}

The extension has been tested in the following browsers:

Status Browser Browser Version Platform Extension
⠀✅ Firefox Developer Edition v106 — v129, 64 bit 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 - v1.68.134 Windows Tampermonkey (MV2)
⠀✅ MS Edge v106.0.1370.34 Windows, Linux Tampermonkey (MV2)
⠀✅ Cent Browser v4.3.9.248, 32 bit Windows Tampermonkey (MV2)
⠀✅ Cent Browser Beta v5.0.1002.182, 64 bit Windows Tampermonkey (MV2)
⠀✅ Google Chrome v106 — v127 Windows, MacOS, Linux Tampermonkey (MV2), Tampermonkey (MV3), Violetmonkey, OrangeMonkey, User Javascript and CSS
⠀✅ Opera GX LVL4 (core: 91) - LVL5 (core 109) 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
⠀✅ Kiwi Browser v116.0.5845.61 Android Tampermonkey (MV2)
⠀✅ Yandex Browser v24.4-24.6 Windows Tampermonkey (MV2), Tampermonkey (MV3)
⠀✅ Arc v1.6.1 Windows Tampermonkey (MV3)
⠀✅ Incognition v4.1.1.0 (v125) Windows Tampermonkey (MV3), Tampermonkey (MV2)

Working with the modern version of Tampermonkey (MV3) has not been tested in most browsers. If there are problems, it is recommended to use Tampermonkey Legacy (MV2)

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

Tested in the following extensions for user scripts:

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
⚠️ requestIdleCallback is full of errors, but it works Any OrangeMonkey
Install guide Any User Javascript and CSS

example btn

*: Banned on the territory of the Russian Federation