Table of Contents
- У меня не появилась кнопка расширения, что делать?
- Как включить "Обход Media CSP"? Или что делать, если нет озвучки у видео?
- Можно ли как-то переводить локальные видео?
- Можно ли как-либо изменить финальную озвучку? (изменить голос, исправить ошибки и т.п.)
- У меня есть идея касательно расширения, где я могу ее осветить?
- Как скачать видео с переводом?
- Как использовать расширение с FireMonkey?
- Как использовать расширение с User JS and CSS?
- Как использовать расширение в qutebrowser?
- Я хочу создать и использовать свой vot-worker, что мне делать?
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
У меня не появилась кнопка расширения, что делать?
- Проверьте, что загрузчик (Tampermonkey и т.п.) и само расширение включены
- Проверьте, что Tampermonkey не просит вас включить режим разработчика
- Проверьте консоль на наличие ошибок
- Все еще не работает? Создайте Issue и подробно опишите все шаги для воспроизведения, а так же не забудьте добавить логи консоли
Как включить "Обход Media CSP"? Или что делать, если нет озвучки у видео?
Для решения этой проблемы может быть несколько вариантов решений:
- Обход через встроенный механизм обхода Media CSP
1.1. Зайти на любой сайт, поддерживаемый скриптом
1.2. Зайти в меню скрипта и перейти в настройки
1.3. Активировать функцию "Обход Media CSP" (если функция не доступна, возможно, у вас выключен Web Audio API)
- Обход через Tampermonkey
1.1. Включите режим конфигурации "Опытный" в Tampermonkey
1.2. В списке "Добавить TM в политику безопасности CSP:" установите значение "Да" (для некоторых сайтов может потребоваться установить "Удалить полностью (небезопасно)"
1.3. Нажмите на кнопку "Сохранить"
1.4. Перезагрузите страницу с видео
- Воспользуйтесь сторонними расширениями для браузера, которые полностью удаляют CSP со страницы
Можно ли как-то переводить локальные видео?
Нет. Из-за того, что для перевода Яндексу необходим доступ к видео вы не можете перевести локальное видео, если не зальете его на какой-либо видеохостинг.
Можно ли как-либо изменить финальную озвучку? (изменить голос, исправить ошибки и т.п.)
Нет. Озвучка происходит на серверах Яндекса и как-либо повлиять на нее нельзя.
У меня есть идея касательно расширения, где я могу ее осветить?
Warning
Не забудьте проверить, что такого предложения еще не было.
Все ваши идеи, касательно расширения вы можете осветить в Issues.
Как скачать видео с переводом?
Для этого создана специальная консольная утилита VOT-CLI
Как использовать расширение с FireMonkey?
- Установите расширение FireMonkey
- Скопируйте весь код из vot.user.js
- Зайдите в настройки FireMonkey (нажмите по иконке расширения -> Опции)
- Перейдите во вкладку "Скрипты и стили" и добавьте новый скрипт
Добавление скрипта
4.1. Перейдите во вкладку "Скрипты и стили"
4.2. Нажмите на кнопку создания нового скрипта
4.3. Вставьте код скрипта
- Добавьте правило
// @inject-into pageперед строчкой начинающейся с// @grant ...
Добавление правила
5.1. Найдите строчку начинающуюся с // @grant ..., в нашем примере это // @grant GM_addStyle
5.2. Добавьте правило // @inject-into page перед найденной строкой
- Сохраните скрипт с помощью сочетания "Ctrl + S" или используя кнопку "Сохранить"
Как использовать расширение с User JS and CSS?
- Установите расширение User JS and CSS
- Скопируйте весь код из vot.user.js
- Создайте новое правило и вставьте скопированный код
Создание нового правила
3.1. Нажимаем создать новое правило
3.2. Пишем название правила - VOT
3.3. Задаем URL паттерн по которому будет работать правило. На скриншоте используется паттерн https://*/* для работы на всех сайтах, если вам это не подходит, вы можете вручную указать все нужные сайты через запятую из строчек начинающихся на // @match, например: *://*.youtube.com/*, *://*.youtube-nocookie.com/*
3.4. Вставляем скопированный код
3.5. Нажимаем "Сохранить" справа сверху
- Создайте внешние модули для всех скриптов начинающихся с
// @require. Не забудьте добавить полифил для GM_info.
Создание внешних модулей
Пример строки начинающейся с "// @require"
Здесь,
Выделенный фрагмент - ссылка на библиотеку.
Название библиотеки - Protobuf min.
4.1. Нажимаем слева на вкладку "Внешние модули"
4.2. Нажимаем на кнопку "Добавить новый"
4.3. Вводим название библиотеки (обычно понятно по названию файла в конце ссылки) и саму ссылку на библиотеку
4.4. Нажимаем на кнопку "Добавить"
- Примечание: иногда добавление криво работает и дублирует уже существующий скрипт. Перезагрузка страницы поможет это исправить.
Так необходимо проделать со всеми библиотеками из строчек начинающихся с //@require
4.5. Не забудьте добавить библиотеку "GM_info Polyfill", иначе расширение работать не будет:
https://gist.githubusercontent.com/ilyhalight/94313e32c9e5efa791de82306c390d5f/raw/5d6b12792fdac55260afcaa393772b3103c4a500/gm-info-polyfill.js
Пример всех необходимых библиотек для версии расширения 1.5.3.1
| № | Название | Ссылка |
|---|---|---|
| 1 | Protobuf Min | https://cdn.jsdelivr.net/npm/protobufjs/dist/light/protobuf.min.js |
| 2 | HLS Light | https://cdn.jsdelivr.net/npm/hls.js/dist/hls.light.min.js |
| 3 | GM_addStyle polyfill | https://gist.githubusercontent.com/ilyhalight/6eb5bb4dffc7ca9e3c57d6933e2452f3/raw/7ab38af2228d0bed13912e503bc8a9ee4b11828d/gm-addstyle-polyfill.js |
| 4 | GM_info polyfill | https://gist.githubusercontent.com/ilyhalight/94313e32c9e5efa791de82306c390d5f/raw/5d6b12792fdac55260afcaa393772b3103c4a500/gm-info-polyfill.js |
- Включите добавленные модули для правила VOT
Включение модулей
- Готово. При обновление скрипта вам потребуется обновить, только, код правила и перекачать внешние модули (кнопка "Скачать повторно" появляется при нажатие редактировать на нужном модуле).
Как использовать расширение в qutebrowser?
-
Установите qutebrowser
-
Введите в браузере команду
:version. На открывшейся странице найдите путьPaths-data
- Скопируйте найденный путь и добавьте к нему в конце
/greasemonkey
Пример
Значение data: /home/username/.local/share/qutebrowser
Финальный путь: /home/username/.local/share/qutebrowser/greasemonkey
-
Закройте браузер
-
Создайте новый файл
vot.user.jsв полученном пути -
Вставьте в только что созданный файл
vot.user.jsвесь код из удаленного файла vot.user.js
-
Откройте локальный файл
vot.user.js -
Найдите в файле объявление функции
traverseDOM(не перепутайте с вызовом функции)
- Замените код функции
traverseDOMна
Обновленный код
traverseDOM(root) {
if (!root) return;
const elements = [root];
if (root.querySelectorAll) {
elements.push(...root.querySelectorAll("*"));
}
for (const element of elements) {
if (element instanceof HTMLVideoElement) {
this.checkVideoState(element);
}
if (element.shadowRoot) {
this.traverseDOM(element.shadowRoot);
}
}
}
- Чтобы исправить сохранение настроек найдите в коде
this.supportGM =иthis.supportGMPromises =и замените код (значения), который идет после них наfalse
-
Сохраните файл
-
Запустите браузер с помощью команды
qutebrowser --debug --logfilter greasemonkey,js, это нужно, чтобы все логи от расширения и браузерной консоли показывались в вашем терминале. После тестов вы можете запускать браузер как обычно -
Перейдите на нужный сайт с видео (шаги 13-15 нужно выполнить один раз для каждого сайта)
-
Дождитесь появления кнопки перевода и откройте меню скрипта.
-
В меню скрипта установите значение
Включенодля функцииРежим проксирования(Proxying mode) т.к. без этого вы будете получать ошибку при попытке запросить перевод -
Готово. Шаги 13-15 нужно выполнять один раз для каждого сайта
Я хочу создать и использовать свой vot-worker, что мне делать?
Для деплоя своего vot-worker рекомендуем ознакомиться с репозиторием vot-worker. Подробная инструкция описана в соответствующей папке внутри репозитория воркера.
Для того, чтобы сменить домен воркера откройте меню расширения на любом сайте и в самом низу введите адрес vot-worker.