Giter Club home page Giter Club logo

voice-over-translation's Introduction

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

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. «Установите Скрипт» (Cloudflare version)

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

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

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

  1. Версия для VioletMonkey, FireMonkey, GreaseMonkey, AdGuard, OrangeMonkey, UserScripts и некоторых браузеров (cloudflare-version): Ссылка
  2. Версия для терминала (vot-cli): Ссылка
  3. Вики: Ссылка

Примечание:

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

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

Все ограничения, связанные с поддержкой сайтов вы можете увидеть в вики.

⚠️ - Требует дополнительных действий, подробнее в Wiki

Наши домены:

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

Proxy-сервер

M3U8 Proxy-сервер

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

  1. Установите NodeJS 18+
  2. Установите зависимости:
npm i
  1. Сборка расширения:

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

    npm run build

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

    npm run build:min

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

    npm run build:default

    3.3. Только Cloudflare версии:

    npm run build:cloudflare

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

    npm run build:default-min

    3.3. Только мин. Cloudflare версии:

    npm run build:cloudflare-min
  2. Установка pre-commit хука:

    npm run prepare

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

Расширение поддерживает кастомизацию внешнего вида с помощью 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-background: rgba(var(--vot-surface-rgb, 46, 47, 52), 0.8);
  --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 — v128, 64 bit Windows Tampermonkey (MV2)
⠀✅ 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 v106.0.5249.91 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 — 126 Windows, MacOS, Linux Tampermonkey (MV2), Tampermonkey (MV3), Violetmonkey, OrangeMonkey
⠀✅ 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)

Работа с современной версией 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
⚠️ Загрузить Любой Greasemonkey
⚠️ Загрузить Любой OrangeMonkey

⚠️ - Не являются приоритетными расширениями. Эти расширения из-за "cloudflare" версии юзерскрипта не имеют межсайтовой синхронизации настроек, а так же (практически) не тестируются перед выходом новой версии юзерскрипта.

example btn

*: Запрещена на территории РФ

voice-over-translation's People

Contributors

acherepkov1989 avatar blueberryy avatar deepsource-autofix[bot] avatar deepsource-io[bot] avatar dependabot[bot] avatar dragoy avatar ftoh avatar ilyhalight avatar miketype avatar mynovelhost avatar nezort11 avatar riddle418 avatar sashaxser avatar sodapng avatar spp595 avatar szepeviktor avatar ten4dinosaur avatar tyusha0 avatar xirthas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

voice-over-translation's Issues

Реализация исключений для перевода.

Привет! Может вы помните как я вас просил добавить авто перевод? Так вот хочу сказать вам огромное спасибо за реализацию этой функции :) Но с этим есть одна большая проблема... Если я все правильно понимаю, то яндекс разрешает перевод видео по речи, но нередко это ведет к тому, что по какой-то причине яндексу кажется, что некоторые русскоязычные авторы плохо владеют языком или просто у них не поставлена речь, решая при этом их переозвучить. Предлагаю наладить систему исключений, чтобы при добавлении каналов перевод не запускался. В идеале нужно бы реализовать синхронизацию с общим списком чтобы все кто установил скрипт не добавляли одни и те же каналы в исключения у себя (по типу спонсор блока для ютуба), но и самого простого варианта будет тоже достаточно.

Субтитры

Планируется (или скорее возможно) ли в будущем прикрутить еще и субтитры? В ютубе они работают куда лучше, чем стандартные гугловские.
image

Доработка парсера ответа

var protoResponse = new protobuf.Type("VideoTranslationResponse")
	.add(new protobuf.Field("url",		1,	"string"))
	.add(new protobuf.Field("duration",	2,	"double"))
	.add(new protobuf.Field("status",	4,	"int32"))
	.add(new protobuf.Field("code",	7,	"string"))
	.add(new protobuf.Field("message",	9,	"string"));

duration - время перевода в секундах
code - нарастающее число, возможно порядковый номер перевода. пользы нет.
message - текстовое описание ошибки, если она возникла (status == 0)

Дорабатывать и кидать пулл реквесты некогда (сорян), пилю либу под php, так что то, что выше - результат изысканий =)

Скачать перевод

Здравствуйте!
Подскажите пожалуйста
Можно ли сделать кнопку "скачать" перевод в аудио файл?
Или хотя бы вывести в консоль ссылку на аудиопоток перевода?

cli версия

Будет ли cli версия для скачивания перевода (аудио) через консоль в линукс?
Буду очень рад если такая функция появиться

Перевод трансляций YouTube

В Яндекс браузере, уже есть перевод трансляций с задержкой, есть возможность реализовать в скрипте это?

Предложение: синхронизация громкости

Предлагаю сделать по выбору синхронизацию громкости плеера с громкостью перевода как в я.браузере

То есть есть фиксированное соотношение громкости оригинала к переводу (или выбранное пользователем), а ВСЮ В ЦЕЛОМ громкость можно регулировать через ютуб плеер.

Как если бы человек крутил громкость на наушниках

qutebrowser

Можно ли как то заставить работать в qutebrowser?
Пишет "Не удалось запросить перевод видео"

Увеличение громкости или турбо режим.

Прошу сделать возможность увеличивать максимальную громкость перевода выше 100%. Или дополнительно/на крайний случай турбо режим, как в том же Enhancer for YouTube например. Желательно до 1000%.

Потому что как я довольно часто замечаю, аудио дорожка русского перевода, иногда намного тише оригинальной на инглише... На скриншоте Enhancer for YouTube, где 10 как раз 1000%.

Screenshot-174

Нереалистичный перевод

Я когда-то давно скачивал яндекс браузер и мне прям очень зашла эта фишка с переводом, но ваш плагин, как мне кажется использует другой способ для перевода, либо яндекс скатились. Но переводит в стиле "аля гугл транслате". Мне не зашло(

Vivaldi + Violetmonkey

Violetmonkey не определяет скрипт как подходящий для youtube

2022-10-28_22-46-26
2022-10-28_22-45-43

VOT версии 1.0.9.2 (вероятно и 1.0.9 и 1.0.9.1) совсем перестал работать в AdGuard

Собственно сабж.

VOT версии 1.0.9.2 (вероятно и 1.0.9 и 1.0.9.1) перестал работать в AdGuard от слова совсем. Плашка при воспроизведении ютуб - роликов теперь вообще не кажется. Хотел попробовать переделать скрипт ревизии 1.0.9.2 по лекалам @mynovelhost #27 (comment) под cloudflare worker, но обнаружил, что тот даже плашку теперь не кажет. Сломалась ли она в 1.0.9 или 1.0.9.1 я не проверял.

Установка на удаленном сервере.

Привет! Можно ли как-то адаптировать это дело под установку на удаленном сервере? Чтобы веб сервер и яндекс браузер запускались там, а на основной пк просто прилетал перевод? А если это и так можно сделать, то, если не сложно, распиши инструкцию.

На Ютубе кнопка перевода есть но не нажимается!

Не нажимается кнопка для перевода видео, три точки тоже не нажимается. Помогите как исправить ? Переустанавливал скрипт, откатывал другую версию тоже не помогает. Версия Хрома 107.0.5304.88. Раньше всё работало идеально. Я тут подумал может это связано с новым интерфейсом Youtube не может быть такого ?

БАГ с ускоренным видео

В момент, когда видео уже запущено, плагинами изменяю скорость воспроизведения. Но перевод не ускоряется. Если поставить видео на паузу и снова запустить, то и перевод тоже ускоряется. Так что я думаю тут надо сделать функцию обновления параметров воспроизведения (возможно по таймеру).

Firefox doesn't work

VOT: Получены данные из Базы Данных: undefined voice-over-translation.user.js:338:17
Uncaught (in promise) TypeError: dbData is undefined
tms_9130d0a7_18c1_46b7_a09a_6967b8cd2c6a$/< moz-extension://55960eec-41b5-4e2b-930d-c4eb76f80220/userscripts/voice-over-translation.user.js?id=9130d0a7-18c1-46b7-a09a-6967b8cd2c6a:365
dispatch moz-extension://55960eec-41b5-4e2b-930d-c4eb76f80220/userscripts/voice-over-translation.user.js?id=9130d0a7-18c1-46b7-a09a-6967b8cd2c6a:3
handle moz-extension://55960eec-41b5-4e2b-930d-c4eb76f80220/userscripts/voice-over-translation.user.js?id=9130d0a7-18c1-46b7-a09a-6967b8cd2c6a:3
xb https://www.youtube.com/s/desktop/8d5d4899/jsbin/webcomponents-sd.vflset/webcomponents-sd.js:41
dispatchEvent https://www.youtube.com/s/desktop/8d5d4899/jsbin/webcomponents-sd.vflset/webcomponents-sd.js:106
fire https://www.youtube.com/s/desktop/8d5d4899/jsbin/desktop_polymer.vflset/desktop_polymer.js:6090
performDataUpdate https://www.youtube.com/s/desktop/8d5d4899/jsbin/desktop_polymer.vflset/desktop_polymer.js:21642
e https://www.youtube.com/s/desktop/8d5d4899/jsbin/desktop_polymer.vflset/desktop_polymer.js:21637
measurePaintTime https://www.youtube.com/s/desktop/8d5d4899/jsbin/desktop_polymer.vflset/desktop_polymer.js:9829
e https://www.youtube.com/s/desktop/8d5d4899/jsbin/desktop_polymer.vflset/desktop_polymer.js:21637
I https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:29
O https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:38
S https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:34
requestAnimationFrame https://www.youtube.com/s/desktop/8d5d4899/jsbin/web-animations-next-lite.min.vflset/web-animations-next-lite.min.js:96
requestAnimationFrame https://www.youtube.com/s/desktop/8d5d4899/jsbin/web-animations-next-lite.min.vflset/web-animations-next-lite.min.js:96
start https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:39
O https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:38
P https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:31
requestIdleCallback handlerf.start https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:39
O https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:38
P https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:31
requestIdleCallback handler
f.start https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:39
O https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:38
S https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:34
requestAnimationFrame https://www.youtube.com/s/desktop/8d5d4899/jsbin/web-animations-next-lite.min.vflset/web-animations-next-lite.min.js:96
requestAnimationFrame https://www.youtube.com/s/desktop/8d5d4899/jsbin/web-animations-next-lite.min.vflset/web-animations-next-lite.min.js:96
start https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:39
J https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:26
d https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:44
setTimeout handlerka https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:44
addJob https://www.youtube.com/s/desktop/8d5d4899/jsbin/desktop_polymer.vflset/desktop_polymer.js:1292
addLowPriorityJob https://www.youtube.com/s/desktop/8d5d4899/jsbin/desktop_polymer.vflset/desktop_polymer.js:1285
Ek https://www.youtube.com/s/desktop/8d5d4899/jsbin/desktop_polymer.vflset/desktop_polymer.js:1572
Bk https://www.youtube.com/s/desktop/8d5d4899/jsbin/desktop_polymer.vflset/desktop_polymer.js:1572
ua https://www.youtube.com/s/desktop/8d5d4899/jsbin/desktop_polymer.vflset/desktop_polymer.js:48
next https://www.youtube.com/s/desktop/8d5d4899/jsbin/desktop_polymer.vflset/desktop_polymer.js:50
b https://www.youtube.com/s/desktop/8d5d4899/jsbin/desktop_polymer.vflset/desktop_polymer.js:53
promise callback
h https://www.youtube.com/s/desktop/8d5d4899/jsbin/desktop_polymer.vflset/desktop_polymer.js:55
promise callback*h https://www.youtube.com/s/desktop/8d5d4899/jsbin/desktop_polymer.vflset/desktop_polymer.js:55
uaa https://www.youtube.com/s/desktop/8d5d4899/jsbin/desktop_polymer.vflset/desktop_polymer.js:56
uaa https://www.youtube.com/s/desktop/8d5d4899/jsbin/desktop_polymer.vflset/desktop_polymer.js:55
r https://www.youtube.com/s/desktop/8d5d4899/jsbin/desktop_polymer.vflset/desktop_polymer.js:56
Bk https://www.youtube.com/s/desktop/8d5d4899/jsbin/desktop_polymer.vflset/desktop_polymer.js:1572
I https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:29
O https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:38
S https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:34
requestAnimationFrame https://www.youtube.com/s/desktop/8d5d4899/jsbin/web-animations-next-lite.min.vflset/web-animations-next-lite.min.js:96
requestAnimationFrame https://www.youtube.com/s/desktop/8d5d4899/jsbin/web-animations-next-lite.min.vflset/web-animations-next-lite.min.js:96
start https://www.youtube.com/s/desktop/8d5d4899/jsbin/scheduler.vflset/scheduler.js:39

Не удалось запросить перевод видео

Всем привет, с скриптом версии 1.0.9.3 в данном сетапе (windows - firefox 107.0 - violentmonkey) на всех видео, которые я пытался открыть, пишет "Не удалось запросить перевод видео"
К слову, скрипт версии 1.0.9.2 вообще не работал, ничего не появлялось просто

Работа расширения.

у меня ошибка: https://bit.ly/3yrbzHW

  1. Не понятно зачем вебсервер.
  2. Надо инструкцию по запуску, иначе только программисты могут запустить, и то с проблемами.
  3. как бы избавится от вебсервера? (или заменить чем-то легким, чтоб дилетант мог запустить)

Я не разбирался досконально как работает и зачем запускать в фоне еще и яндекс браузер... всё же как оно работает?

Неправильный id видео

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

Поддержка www.artstation.com

Привет очень хотелось бы увидеть поддержку https://www.artstation.com/learning
На этом сайте очень много полезного контента для 2D и 3D направлений, которых нет на том же ютуб, если это конечно возможно
Это достаточно популярная площадка среди художников, думаю многим это поможет в изучении своего дела

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.