Skip to content

Небольшое расширение, которое добавляет закадровый перевод видео из YaBrowser в другие браузеры

License

Notifications You must be signed in to change notification settings

SashaXser/voice-over-translation

 
 

Repository files navigation

Закадровый перевод видео

en ru

Caution

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

Закадровый перевод видео, теперь, доступен не только в YandexBrowser. Очень признателен, Yandex.Translate, sodapng, mynovelhost, SashaXser и всем остальным контрибьюторам. Спасиб <3

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

Warning

Если вы пользуетесь Tampermonkey 5.2.0+, не забудьте включить режим разработчика или используйте Tampermonkey MV2

  1. Установите расширение Tampermonkey (Альтернатива для Safari: UserScripts)
  2. «Установите Скрипт»

Список функционала:

  1. Перевод видео с одного из доступных языков на русский, английский или казахский
  2. Перевод стримов на YouTube (работает с небольшой задержкой)
  3. Отображение субтитров сгенерированных нейросетью
  4. Отображение субтитров от сайта (на YouTube дополнительно отображаются субтитры, которые автоматически переводятся сайтом на выбранный язык)
  5. Сохранение используемых субтитров (поддерживаемые форматы: .srt, .vtt, .json)
  6. Сохранение аудиодорожки перевода (в .mp3 формате)
  7. Автоматический перевод видео при открытие
  8. Слайдеры для изменения громкости видео и перевода
  9. Автоматическое выставление громкости переведенного видео (как в Яндекс браузере)
  10. Синхронизация громкости перевода с громкостью видео
  11. Ограничение перевода видео с родного языка (язык можно выбрать в меню)
  12. Перевод с помощью горячей клавиши
  13. Настройка оформления субтитров

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

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

Примечание:

  1. Рекомендую разрешить автовоспроизведение "аудио и видео", чтобы избежать ошибок при работе расширения
  2. Расширение не может переводить видео длиной более 4 часов (ограничение API переводчика)

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

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

Наши домены:

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

Proxy-сервер

Необходим для проксирования запросов, если не получается сделать прямой запрос к серверам Яндекса

Media Proxy-сервер

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

VOT-Backend

Необходим для перевода дополнительных сайтов, которые используют формат видео, который не поддерживается серверами Яндекса.

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

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

NPM:

npm install

Bun:

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

    3.0. Все версии сразу:

    npm run build

    3.1. Все минифицированные версии сразу:

    npm run build:min

    3.2. Только обычная версии:

    npm run build:default

    3.3. Только обычная мин. версии:

    npm run build:default-min

Как патчить vot.js

  1. Внесите нужные изменения в node_modules/vot.js/нужный файл
  2. Сохраните изменения с помощью:

NPM (не тестил, но должно работать):

npx patch-package vot.js

Bun:

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

Не пользуйтесь патчами из bun patch или из каких-либо npm пакетов. Они будут несовместимы с patch-package, а так же могут ломаться при обновлении пакета.

Как обновлять файлы локализации

Для всего взаимодействия с файлами локализации сделана консольная утилита l10n-tui.

Для вызова утилиты используйте команду:

bun l10n

Подробнее о утилите можно прочитать тут

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

Расширение поддерживает кастомизацию внешнего вида с помощью 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));
}

Расширение протестировано в следующих браузерах:

Статус Браузер Версия браузера Платформа Расширение
⠀✅ 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)

Работа с современной версией Tampermonkey (MV3) не тестировалась в большинстве браузеров. При наличие проблем рекомендуется использовать Tampermonkey Legacy (MV2)

Для активации скрипта в Tampermonkey (MV3) необходимо включить "Developer Mode"

Протестировано в следующих расширениях для юзерскриптов:

Статус Браузер Расширение
⠀✅ Любой Tampermonkey Legacy (MV2)
⠀✅ Opera Tampermonkey Opera
⠀✅ Chrome Tampermonkey (MV3)
⠀❔ Safari Userscripts
⠀✅ Любой Violetmonkey
⠀❔ Любой AdGuard Usercripts
Гайд по установке Firefox Firemonkey
⠀✅ Firefox Greasemonkey
⚠️ RequestIdleCallback сыпет ошибками, но работает Любой OrangeMonkey
Гайд по установке Любой User Javascript and CSS

example btn

About

Небольшое расширение, которое добавляет закадровый перевод видео из YaBrowser в другие браузеры

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 75.4%
  • SCSS 15.9%
  • TypeScript 8.7%