Find a file
Toil 9028c00a17
Some checks are pending
Build / node (22.x) (push) Waiting to run
Build / extension (22.x) (push) Waiting to run
Build / bun (push) Waiting to run
fix: clear translation button error without aborting
2026-09-26 00:37:25 +03:00
.github ci!: automate signed releases and update channels 2026-09-03 19:19:47 +03:00
.storybook refactor: cleanup duplicates and dead code with fallow suggests 2026-09-23 01:20:28 +03:00
.vscode refactor: localizationProvider.get('key') -> t('key') 2026-09-20 17:26:24 +03:00
dist fix: translation button reset error to none state on click 2026-09-25 22:23:42 +03:00
dist-ext chore: merge origin/master into dev 2026-09-26 00:29:39 +03:00
img docs: rework readme structure 2026-07-17 16:59:54 +03:00
scripts fix(#1837): update vot.js for support latest netacad 2026-09-13 19:54:29 +03:00
src fix: clear translation button error without aborting 2026-09-26 00:37:25 +03:00
tests Merge remote-tracking branch 'origin/master' into dev 2026-09-22 20:05:42 +03:00
vite refactor: cleanup duplicates and dead code with fallow suggests 2026-09-23 01:20:28 +03:00
.fallowrc.jsonc refactor: cleanup duplicates and dead code with fallow suggests 2026-09-23 01:20:28 +03:00
.gitignore refactor: cleanup duplicates and dead code with fallow suggests 2026-09-23 01:20:28 +03:00
AGENTS.md refactor: localizationProvider.get('key') -> t('key') 2026-09-20 17:26:24 +03:00
biome.json refactor: rewrited AccountInfo with Solid 2026-08-15 01:52:41 +03:00
BROWSERS-EXTS-TEST.md fix: chromium<=110 & firefox<=115 compatibility changes (#1769#discussioncomment-17780145) 2026-07-29 22:53:48 +03:00
bun.lock refactor: cleanup duplicates and dead code with fallow suggests 2026-09-23 01:20:28 +03:00
changelog.md chore: merge origin/master into dev 2026-09-26 00:29:39 +03:00
CONTRIBUTING.md docs: updated CONTRIBUTING.md guide 2026-07-30 00:30:46 +03:00
l10n.config.json chore: updated utility configs 2025-05-04 16:46:27 +03:00
LANG_SUPPORT.md feat: yandex auth without interlayer 2026-09-21 02:15:11 +03:00
lefthook.yml workspace: migrated prettier & husky --> biomejs & lefthook. Enabled new oxlint rules 2025-05-25 15:46:07 +03:00
LICENSE here we go again 2025-05-01 03:09:19 +03:00
package.json refactor: cleanup duplicates and dead code with fallow suggests 2026-09-23 01:20:28 +03:00
README-EN.md docs: added .ass subs type to readme 2026-09-17 23:11:14 +03:00
README.md docs: added .ass subs type to readme 2026-09-17 23:11:14 +03:00
tsconfig.json refactor: rework overlay view with solid 2026-08-29 17:22:41 +03:00
vitest.config.ts refactor: remove dead code, actualize wiki script 2026-09-02 23:33:46 +03:00

voice-over-translation (vot)

Смотрите видео на другом языке с закадровым переводом и субтитрами в любом браузере

Установка · Разработка · FAQ · Поддерживаемые сайты

en ru

vot promotion banner

Все права на оригинальное программное обеспечение принадлежат их правообладателям. Расширение не связано с оригинальными правообладателями.

Большое спасибо разработчикам Yandex.Translate, Yandex.Browser и всем, кто помогает делать расширение еще лучше.

Установка расширения

Caution

Перед созданием Issues настоятельно рекомендуем ознакомиться с разделом FAQ и уже существующими Issues.

Warning

Важно для пользователей Tampermonkey 5.2+ (MV3): В браузерах на движке Chromium (Chrome, Edge, Brave, Vivaldi и др.) необходимо:

  1. Открыть страницу расширений (chrome://extensions) и включить «Режим разработчика» (подробности в документации Tampermonkey).
  2. Если движок Chromium версии 138+, в «Сведениях» расширения включить «Разрешить пользовательские скрипты».

Пользователям Opera:

  1. Используйте Violentmonkey вместо Tampermonkey.
  2. В настройках расширения обязательно включите «Разрешить доступ к результатам на странице поиска» (гайд от Opera: как найти эту настройку), иначе скрипт не будет работать.
  1. Установите загрузчик юзерскриптов: Tampermonkey (или Violentmonkey для Opera)
  2. «Установить скрипт»

Установка нативного расширения для Chrome / Chromium

Из Chrome WebStore

Откройте Chrome WebStore и нажмите «Установить»

Из GitHub Releases

  1. Откройте Releases и скачайте файл vot-extension-chrome.zip
  2. Откройте страницу расширений:
    • Chrome: chrome://extensions
    • Edge: edge://extensions
    • Brave: brave://extensions
    • Opera: opera://extensions
  3. Включите «Режим разработчика»
  4. Перетащите скачанный .zip-файл на страницу расширений

Установка нативного расширения для Firefox

Из Firefox Add-ons

Откройте Firefox Add-ons и нажмите «Добавить в Firefox»

Из GitHub Releases

Откройте Releases, нажмите на vot-extension-firefox.xpi и подтвердите установку в Firefox

Возможности

  • Перевод видео на русский, английский или казахский с поддерживаемых языков
  • Автоматический перевод видео при открытии
  • Автоматическое включение субтитров при открытии
  • Умное расположение субтитров: адаптация длины строк и размера текста под размер плеера
  • Отображение субтитров, сгенерированных нейросетью
  • Отображение субтитров с сайта (например, автопереведенные субтитры YouTube)
  • Сохранение субтитров в форматах .srt, .vtt, .ass, .json
  • Сохранение аудиодорожки перевода в формате .mp3
  • Отдельные ползунки громкости для оригинального и переведённого звука
  • Адаптивная громкость: приглушение оригинала, когда звучит перевод
  • Синхронизация громкости перевода с громкостью видео
  • Ограничение перевода с выбранных языков (можно выбрать в меню)
  • Горячие клавиши для перевода и управления субтитрами (включая комбинации клавиш)
  • Простая настройка внешнего вида субтитров
  • Отображение перевода отдельных слов в субтитрах

Полезные ссылки

  1. Проверенная совместимость (EN): Ссылка
  2. Библиотека для JS (vot.js): Ссылка
  3. Версия для терминала (vot-cli): Ссылка

Ограничения и рекомендации

  1. Рекомендуется разрешить автовоспроизведение «аудио и видео», чтобы избежать ошибок при работе расширения
  2. Расширение не может переводить видео длиной более 4 часов (ограничение API переводчика)
  3. Для стабильной работы загрузки аудио используйте актуальные и поддерживаемые загрузчики пользовательских скриптов (например, Tampermonkey или Violentmonkey)

Список поддерживаемых сайтов

Полный список поддерживаемых веб-сайтов и ограничения, связанные с их поддержкой, доступны в вики.

Наши домены:

Эти домены можно менять в настройках расширения без пересборки:

Proxy-сервер

Нужен для проксирования запросов, если прямой доступ к серверам Яндекса недоступен.

Media Proxy-сервер

Нужен для проксирования .m3u8-файлов и корректной обработки непрямых ссылок на .mp4 и .webm.

Как собрать расширение?

  1. Установите Node.js 22+ / Bun.sh
  2. Установите зависимости:

NPM:

npm install

Bun:

bun install
  1. Сборка расширения:

Автоматическая сборка

Автоматическую сборку можно выполнить только с помощью Bun.sh:

bun run autobuild

После завершения в папке .output появятся артефакты сборки подготовленные для публикации в магазинах расширений Chrome и Firefox.

В папке dist-ext будет находится non-store сборка для распространения в виде .zip-архива (для Chrome) и .xpi-архива (для Firefox).

В папке dist будет находится сборка в виде юзерскрипта для установки через Tampermonkey или другие загрузчики юзерскриптов.

Ручная сборка

Userscript (обычная сборка):

npm run build:gm:default

Userscript (минифицированная сборка):

npm run build:gm:min

Userscript (обе версии):

npm run build:gm

Нативные расширения Chrome/Firefox:

npm run build:ext

Dev-сборка userscript с sourcemap:

npm run build:dev

Артефакты userscript попадают в dist/, сборка нативных расширений — в dist-ext/.

Кастомизация внешнего вида:

Расширение поддерживает кастомизацию внешнего вида с помощью Stylus, Stylish и других похожих расширений.

Пример изменения стилей:

/* ==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

Пожалуйста, ознакомьтесь с гайдом для контрибьюторов.

Основано на проекте sodapng/voice-over-translation (license MIT)