# 1.12.0 - The Next Update (WIP)
Это обновление стало одним из самых масштабных за последнее время. Основное внимание уделено полной миграции интерфейса на SolidJS, его заметному редизайну и переработке множества UI-элементов. Вместе с этим улучшена работа субтитров, исправлен ряд накопившихся ошибок и упрощено дальнейшее развитие интерфейса.
## Важное изменение в системе обновлений
> [!NOTE]
> Для перехода на новую систему обновлений достаточно обновить расширение до этой версии или любой более новой.
Начиная с этой версии мы постепенно отказываемся от хранения готовых сборок расширения непосредственно в репозитории ([dist](https://github.com/ilyhalight/voice-over-translation/tree/master/dist) / [dist-ext](https://github.com/ilyhalight/voice-over-translation/tree/master/dist-ext)).
Основным местом публикации новых версий станет раздел [Releases](https://github.com/ilyhalight/voice-over-translation/releases). Как и раньше, расширение также будет доступно через официальные магазины [Chrome Web Store](https://chromewebstore.google.com/detail/dnioaagdjgpcokckfpokpndoblenmfcg) и [Firefox Add-ons](https://addons.mozilla.org/ru/firefox/addon/voice-over-translation/).
На переходном этапе файлы в [dist](https://github.com/ilyhalight/voice-over-translation/tree/master/dist) будут продолжать обновляться для обеспечения совместимости с существующими механизмами установки и обновления. В дальнейшем их публикация будет полностью прекращена.
## Основные изменения
- Проведен редизайн некоторых элементов интерфейса расширения
- Переработан дизайн блока настроек "Мой аккаунт"
- Переработан дизайн блока "О расширении"
- Переработан дизайн слайдеров
- Переработан дизайн Select элементов
- `Checkbox` были заменены на `Switch` элементы
- Добавлены описания для некоторых настроек
- Добавлено отображение состояния "не найдено" для результатов поиска в меню выбора
- Добавлено отображение анимации поиска при поиске через внешние апи в меню выбора (например, при поиске шрифтов для субтитров)
- Добавлено визуальное выделение при наведении на иконку открытия меню выбора озвучки
- Добавлены тултипы для кнопок "Картинка в картинке" и "Меню" в кнопке перевода
- Добавлена возможность навигации по виджету субтитров с помощью клавиатуры:
- поддержка tab для перехода к следующему слову;
- пробел или enter для включения/выключения подсказки слова;
- esc для выключения подсказки слова;
- Заменены иконки "Стандартных" и "Живых" голосов на более приятные
- Переработана иконка прогресса загрузки для аудио. Теперь, она стала более плавной, а также обзавелась визуальным выделением незаполненной части прогресса
- Улучшено визуальное выделение активного слова субтитров в некоторых случаях
- Весь UI расширения переведен на SolidJS
- Слайдер "Громкость при уменьшении" теперь отключается при включенном режиме "Адаптивная громкость"
- Оптимизирован предпросмотр позиции "Кнопки перевода". Теперь, он использует облегченную версию элемента, а не создает полный клон
- Меню выбора "Не переводить с выбранных языков" теперь может содержать 0 выбранных языков (ранее было минимум 1)
При выборе 0 языков, опция будет считаться отключенной и перевод будет выполняться с любого языка. Если у вас ранее была отключена функция "Не переводить с выбранных языков", то список языков будет автоматически очищен
- Переработан механизм авторизации с помощью Яндекса. Теперь, мы делаем только прямые запросы к API Яндекса, без использования дополнительного сервиса-прослойки
- Добавлено настоящее обновление отображаемых данных аккаунта при нажатии на кнопку "обновить" в настройках расширения. Ранее, обновлялись только данные из локального хранилища из-за чего могли отображаться устаревшие данные или неотображаться вовсе (#1769)
- Добавлена автопауза при подготовке перевода (#1741)
- Добавлена отдельная настройка силы приглушения оригинального звука во время перевода с адаптивной громкостью
- Определение страны больше не задерживает появление интерфейса. Перевод и субтитры при необходимости дожидаются определения страны для получения автоматических настроек прокси
- Изменено отображение ошибки при загрузке аватарки пользователя. Теперь, если аватарку не удалось загрузить будет показываться серый круг
- Исправлена ошибка из-за которой при назначении нового хоткея с комбинацией клавиш, совпадающей с частью уже существующего хоткея, срабатывало действие существующего хоткея
- Исправлена ошибка из-за которой при очистке хоткея с помощью "Esc" закрывался диалог настроек
- Исправлена ошибка из-за которой на прямых ссылках на `.mp4` / `.webm` файлы, кнопка перевода появлялась только при наведении на видео
- Исправлена ошибка из-за которой Debug логи попадали в релизную сборку расширения
- Исправлена ошибка из-за которой на некоторых сайтах взаимодействие с текстовыми полями в настройках расширения не блокировало встроенные горячие клавиши веб-сайта (например, паузу видео на YouTube) (#1819)
- Исправлено отсутствие субтитров от сайта при сбое загрузки субтитров от Яндекса
- Исправлено автоматическое скрытие меню после завершения загрузки файла перевода или субтитров
- Исправлена инициализация расширения для Chrome на некоторых веб-сайтах (#1819)
- Субтитры теперь точнее появляются и исчезают в нужный момент
- Улучшено отображение длинных и одновременно появляющихся субтитров
- Исправлена запаздывающая подсветка последних слов в субтитрах YouTube
- Исправлены редкие проблемы со шрифтом субтитров
- Удалена поддержка миграции настроек из версий расширения ниже 1.10.0
- Другие небольшие технические исправления
# 1.11.16
- Исправлена ошибка из-за которой повторное нажатие на кнопку перевода не сбрасывало состояние кнопки перевода, если в ней отображалась ошибка
# 1.11.15
- [эксп.] При загрузке через Web ABR сначала пытаемся загрузить аудио с использованием анонимного доступа, а при необходимости с авторизованной сессией (от @Acobat12)
# 1.11.14
- Улучшена работа стратегии `WEB_ABR` (#1846):
- Ускорена загрузка аудио с YouTube
- Снижен расход трафика за счёт выбора аудиофайла меньшего размера
- Улучшен выбор языка аудиодорожки для видео с несколькими аудиодорожками
- Добавлен прогрессивный таймаут для отправки аудио при медленном интернете
- Добавлен повтор перевода нажатием на кнопку «Повторить перевод» (#1846)
- Добавлена поддержка сайта JOI Database (`https://www.the-joi-database.com/`) (спасибо @DeMoN288 в [vot.js#132](https://github.com/FOSWLY/vot.js/issues/132))
- Из списка выбора языков удалены "Литовский" и "Латышский" языки (больше не поддерживаются API перевода)
# 1.11.13
> [!CAUTION]
> Если вы используете кастомный адрес прокси-сервера (он же [vot-worker](https://github.com/FOSWLY/vot-worker)), пожалуйста, убедитесь, что он обновлен до новой версии - 1.1.0 ([подробнее](https://github.com/FOSWLY/vot-worker/blob/main/changelog.md#110)). Из-за изменения логики запросов, расширение не будет работать со старыми версиями [vot-worker](https://github.com/FOSWLY/vot-worker)!
- [!] Изменён внутренний провайдер взаимодействия с [vot-worker](https://github.com/FOSWLY/vot-worker).
Теперь, все запросы к прокси-серверу происходят без дополнительной сериализации в JSON, что позволило уменьшить потребление трафика до 4х раз! Также, благодаря этому, удалось уменьшить количество ошибок вида "Audio downloader failed while uploading chunk" происходящих из-за слишком большого тела запроса
- Улучшена работа стратегии `WEB_ABR`
- для мультиязычных видео выбирается аудиодорожка на языке оригинала, либо если ее не удается найти, то выбирается дорожка "по умолчанию"
- предотвращена одновременная загрузка одного и того же видео в некоторых случаях
- исправлена отправка пустого финального аудиочанка, из-за которой перевод мог не переходить к следующему этапу (спасибо @Acobat12)
- улучшен выбор аудиоформата и обновление истёкших URL
- Исправлена работа Netacad (#1837)
# 1.11.12
- Реализована `WEB_ABR` - новая гибридная стратегия загрузки аудиодорожки с ютуба.
- Она работает в разы быстрее чем старая `WEB_MSE_PROXY` (старая стратегия теперь используется в качестве fallback)
- Работает в загрузчиках юзерскриптов в отличие от `WEB_MSE_PROXY`
- При наличии авторизации на YouTube, поддерживает загрузку видео, которые имеют "Ограничение по возрасту" (age-restricted) и были недоступны со старой стратегией
Подробнее о реализации
По своей реализации это гибрид стратегий `WEB_ABR` и `WEB_SABR` используемых Яндексом с актуальными методами из yt-dlp.
Плюсы:
- вручную собирает сессию Innertube и минтит poToken, а не надеется получить все готовые данные из плеера
- использует несколько различных вариантов клиента (`web_embedded` -> `tv_downgraded` -> `web` -> `web_creator` (требует вход в YouTube аккаунт, но позволяет переводить age-restricted видео)) (порт из yt-dlp)
- почанковая загрузка
- приоритеты itag из оригинального `WEB_ABR`
Минусы:
- повышает размер бандла на ~25%
- Переработана внутренняя архитектура загрузки аудио
- Улучшена обработка ошибок и отмены загрузки аудио
# 1.11.11
- Расширена поддержка ссылок Coursera. Добавлена поддержка Labs и некоторых других типов ссылок (#1812, [vot.js#130](https://github.com/FOSWLY/vot.js/pull/130))
- Исправлена работа стратегии mseProxy с длинными видео. Теперь, загрузка аудио не прерывается по жестко заданному короткому таймауту
- Увеличено максимальное время ожидания загрузки плеера до 30 секунд
- Актуализированы имитируемые данные браузера в запросах к апи перевода видео
- Добавлено больше дебаг логов для mseProxy
# 1.11.10
- Исправлен баг из-за которого происходил двойной запрос загрузки аудио дорожки видеоролика на YouTube (#1822)
# 1.11.9
- Исправлена загрузка аудио дорожки видеоролика на YouTube, что ранее приводило к ошибкам вида "Возникла ошибка при переводе, попробуйте позже" (#1820)
# 1.11.8
- Добавлена подсветка кнопки субтитров при включении (#1782)
- Добавлена поддержка Wistia Embed (связано с #1329)
- Исправлена активация скрипта для прямых ссылок на `.mp4` / `.webm` файлы, которые имеют `.` в названии (#1384)
- Исправлена работа расширения в старых браузерах (chromium<=110, firefox<=115)
- Исправлена работа на сайте TelegramK (`https://web.telegram.org/k`)
- Исправлена работа Vimeo Embed в случае, если ссылка содержит параметр `app_id`
- Удалена поддержка incestflix
# 1.11.7
> [!NOTE]
> В этой версии был изменен ID дополнений, если вы используете собранное расширение для браузера, вам прийдется самостоятельно переустановить расширение для обновления на новую версию
- Выбирать озвучку стало проще благодаря отображению активного типа голоса и понятным названиям обычных и «Живых» голосов
- «Живые» голоса теперь доступны для перевода на русский с любого распознанного языка
- Повторный вход после истечения авторизации стал понятнее и требует меньше лишних действий
- Кнопку перевода теперь удобнее размещать по бокам плеера с предварительным просмотром позиции, учетом границ экрана и сохранением выбора
- Перевод запускается надежнее при медленном соединении благодаря отображению времени ожидания и автоматическим повторным загрузкам, а запоздавшие ответы больше не сбивают текущий перевод
- Субтитры стали чище и легче читаются за счет улучшенных переносов строк, пунктуации, подсветки слов и отображения встроенного форматирования
- Виджет субтитров теперь можно свободнее размещать, а подсказки с переводом слов стали аккуратнее и удобнее для чтения
- Громкость и отключение звука теперь синхронизируются корректнее, не изменяя сохраненную громкость YouTube
- Перевод на YouTube больше не отключается из-за изменения таймкода в ссылке (#1736)
- Перевод в Firefox больше не отключается после большой перемотки, если плеер заменяет видеоэлемент (#1752)
- Смена качества и повторяющиеся события плеера больше не должны приводить к лишнему сбросу перевода
- Добавлена поддержка `hot.noodlemagazine.com`
- Исправлено центрирование текста в меню выбора голоса на Яндекс Диске
- Повышена стабильность расширения в Chrome и Firefox, включая запуск, работу во встроенных плеерах и системные уведомления
- Улучшена совместимость userscript с менеджерами пользовательских скриптов
- В версиях для Chrome и Firefox теперь корректно отображается установленная версия расширения
# 1.11.6
- Восстановлена работа кнопки в Google Drive (#912)
- Исправлена работа SAP Learning (#1683)
- Исправлена работа Pornhub (#1376)
- Исправлена работа плеера Kodik (#1611)
- Добавлено меню выбора типа озвучки
- Переработан механизм всплывающих подсказок (Tooltip) и логика их позиционирования относительно границ окна
- Упрощена логика валидации аудио: удалены излишние запросы для ускорения старта воспроизведения перевода
- Улучшена логика кэширования: разделено хранение субтитров и переводов в памяти, а также добавлена опция использования устаревшего кэша при сетевых сбоях API
- Добавлены полифиллы для работы субтитров в более старых браузерах.
- Улучшена работа Яндекс Диска: добавлена поддержка пагинации для корректной загрузки видео из вложенных папок
- Проведена небольшая оптимизация кода
# 1.11.5
- Переписан механизм монтирования UI.
- Упрощена логика загрузки аудио.
- Исправлено получение субтитров на VKVideo (#1424)
- Исправлена загрузка аудио на мобильных устройствах (#1646)
- Улучшена/исправлена работа archive.org (#1636)
- Исправлена работа Coursehunter (#1476)
- Исправлена работа /d/ для Яндекс Диска (#1572)
- Исправлена работа Reddit (#1613)
- Исправлена работа Odysee (#1643)
- Исправлена работа YouTube Embed (#1637)
- Исправлена логика автоматического включения проксирования (#1638)
- Обновлены зависимости и проведена оптимизация/очистка кода
# 1.11.4
- Добавлена поддержка Mediafile Cloud (#1603), Jove (#1593), Datacamp (#1606), PreserveTube (#1366)
- Добавлена настройка "Язык субтитров по умолчанию": можно выбрать автоопределение, язык оригинального видео или конкретный язык
- Улучшено отображение субтитров: корректнее объединяются одновременно активные реплики, сохранены пробелы и пунктуация при переносах, улучшено разбиение длинных фраз
- Улучшено восстановление перевода после паузы/возобновления видео: если ссылка на аудиодорожку устарела, перевод автоматически обновляется
- Исправлена синхронизация громкости перевода и видео: устранен дрейф, корректно обрабатываются верхние границы и ручное изменение громкости (#1605)
- Улучшена авторизация: данные аккаунта в настройках теперь обновляются автоматически после входа без ручного обновления
- Исправлена некорректная работа на Udemy (#1617)
# 1.11.3
- Исправлена ошибка, из-за которой UI исчезал в полноэкранном режиме
- Улучшена обработка auto-generated субтитров YouTube: реплики объединяются в более цельные фразы и предложения
- Добавлена поддержка форматирования субтитров (ASS/VTT): сохраняются курсив, жирный и подчеркивание
- Добавлен новый формат экспорта субтитров ASS
- Добавлена настройка "Шрифт субтитров" с поддержкой встроенных шрифтов и Google Fonts
- Переработана адаптивная верстка и позиционирование субтитров: улучшены перенос, ширина блока и масштабирование в fullscreen
- Улучшено определение языка оригинала: теперь учитываются ручные YouTube-субтитры
- Добавлено кэширование и дедупликация сетевых запросов к API перевода, определения языка и локализации
- Повышена надежность загрузки аудио YouTube
- Исправлена работа Dailymotion
- Восстановлен сервис авторизации (#1567)
# 1.11.2
- Полностью переписана загрузка аудио для YouTube
- Добавлена валидация ссылок на перевод перед применением дорожки: проверка через HEAD/Range и fallback на прямой URL
- Усилена защита от гонок при обновлении перевода: устаревшие запросы корректно отбрасываются при смене видео и перезапуске
- Проведен рефакторинг внутренних модулей расширения с упрощением архитектуры
- Исправлена работа Dzen (#1557)
- Добавлена поддержка gamedev.tv (#1501)
# 1.11.1
- Улучшена работа настройки "Связать громкость перевода и видео": переработана дельта-синхронизация слайдеров, устранены дрейф громкости и зацикливание при внешних изменениях громкости плеера
- Доработана "Адаптивная громкость": улучшен анализ речи в переведенной дорожке и устранен конфликт с режимом синхронизации громкости
- Повышена стабильность запуска/остановки перевода: устранены гонки при повторном старте, смене видео и переключении прокси
- Улучшено восстановление воспроизведения перевода: добавлено корректное возобновление `AudioContext` и fallback на прямой URL при ошибке проксированной аудиоссылки
- Исправлена обработка субтитров: удаляются служебные HTML/таймкоды и объединяются дублирующиеся короткие реплики (особенно заметно на VK)
- Улучшено позиционирование субтитров на мобильных устройствах с учетом `safe-area`
- Исправлена обработка смены видео на YouTube Shorts и дедупликация lifecycle-событий, что снижает вероятность повторной инициализации
- Улучшена загрузка переведенной дорожки на мобильных устройствах (share/download fallback) и резервные сценарии скачивания
- Добавлен Firefox updates manifest для автообновлений
- Исправлена нестабильная работа в iOS/macOS
- Исправлена ошибка на Udemy: кнопка перевода быстро исчезала и показывалась ошибка `No video ID found` (#1510)
- Исправлена работа на VK.com (#1512)
- Исправлена инициализация на YouTube (#1521)
# 1.11.0
- Добавлена поддержка ZDF (#1443), Niconico (#1188), Weibo, Xhamster (#1260), Spankbang (#1049), Rule34video (#984), Picarto (#960), Olympics Replay (#714) и Bilibili TV (#1151)
- Добавлена поддержка `disk.360.yandex.ru` для Yandex Disk
- Добавлена настройка "Субтитры при открытии" (автоматическое включение субтитров при загрузке видео)
- Добавлена настройка "Адаптивная громкость": приглушение исходного видео теперь учитывает реальное наличие речи в переводе
- Добавлена настройка "Умное расположение субтитров" с автоматическим подбором размера и ширины строк под размер плеера
- Проведен редизайн меню и настроек: разделы перевода, субтитров, горячих клавиш, прокси и внешнего вида теперь оформлены как отдельные секции-аккордеоны
- Переработаны горячие клавиши: добавлен отдельный хоткей для субтитров и улучшена запись/отображение комбинаций клавиш
- Настройка положения кнопки перевода обновлена и вынесена в раздел "Внешний вид"
- Улучшены перенос, выравнивание и позиционирование субтитров в плеере
- Улучшена обработка ошибок при загрузке аудио для перевода
- Переведена сборка проекта на Vite и добавлена сборка браузерного расширения (Chrome/Firefox)
# 1.10.5
- Исправлена работа Vimeo с некоторыми ссылками (#1316)
# 1.10.4
- Добавлена поддержка DeeplearningAI (#1039, #1212)
- Добавлена поддержка Netacad (#1081)
- Добавлена поддержка Живых голосов для сервисов работающих через VOT Backend (Artstation, Reddit, Kodik, AppleDeveloper, Kick, EpicGames, Patreon, DeeplearningAI)
- Исправлена ошибка из-за которой не появлялась иконка загрузки при взаимодействии с VOT Backend
- Исправлена проверка актуальности ссылки на перевод полученной с помощью VOT Backend
- Исправлена работа субтитров от YouTube (#1303)
# 1.10.3
- Исправлена ошибка из-за которой загрузка аудио не срабатывала больше одного раза до перезагрузки страницы, что могло приводить к ошибкам перевода (#1271)
- Обновлена логика работы нового аудиоплеера. Теперь, не должно возникать проблем с искажением звука (#765)
# 1.10.2
- Добавлена поддержка Oracle Learn (#1278)
- Исправлена работа 9GAG (#846)
- Исправлено сбрасывание состояния перевода при перемотке видео на некоторых веб-сайтах (#1275)
- Исправлена замена `.` на `-` в названии загружаемых файлов (#1267)
- Исправлена работа функции "Связать громкость перевода и видео" (#1210)
# 1.10.1
- Добавлена альтернативная авторизация с помощью ручного ввода [токена](https://oauth.yandex.ru/). Рекомендуется использовать этот метод в случае, если у вас по каким-то причинам не работает автоматическая авторизация через сайт (#1257)
- Добавлен перевод для [пропущенных](https://github.com/ilyhalight/voice-over-translation/commit/bd7c8f7576114c52e9845d6562fb4532355bb525#r157710699) фраз в меню
- Отображение ошибки загрузки файла переведенной аудиодорожки с включенной функцией "Загружать файлы с названием видео" заменена на открытие ссылки с аудио файлом (саму ошибку всё еще можно увидеть в консоли). Это полезно в случаях, когда у пользователя используется загрузчик без поддержки `GM_xmlhttpRequest`, или на сайте включен строгий CSP, который загрузчик не может обойти.
- Стандартное значение настройки "Загружать файлы с названием видео", теперь, зависит от наличия поддержки `GM_xmlhttpRequest` в расширении-загрузчике (также, теперь, это блокирует ее включение)
- Исправлена ошибка из-за которой загрузка файла переведенной аудиодорожки с включенной функцией "Загружать файлы с названием видео" выдавала ошибку, если заголовок `Content-Length` не существовал или был равен 0 (#1190)
- Исправлена работа `/client/disk` для Yandex Disk (#1254)
# 1.10.0
Данное обновление содержит множество кардинальных изменений в структуре расширения. Из-за этого настройки этой версий **не является обратно совместимым** со старыми версиями расширения. Чтобы избежать каких-либо проблем после обновления мы автоматически конвертируем все ваши настройки под новый формат, но в любом случае рекомендуем проверить правильность настроек после первого запуска обновленного скрипта.
### Общее
- Добавлена поддержка IMDb (#1202)
- Добавлена поддержка Bunkr (#1191)
- Добавлена поддержка IGN (#1186)
- Добавлена поддержка Telegram Web K (#1139, #1218)
- Добавлена поддержка "unlisted embed" и "groups/channels/album/showcase videos" для Vimeo
- Исправлена работа Coursehunter (#1211)
- Добавлена авторизация через аккаунт Яндекса для работы "Живых голосов"
1. Зайдите в настройки расширения
2. Нажмите на кнопку "Авторизоваться"
Авторизуйтесь на сайте через аккаунт Яндекса, подобно тому, как вы входите в другие сервисы с помощью социальных аккаунтов. После успешной авторизации и редиректа на страницу "профиля" на сайте вы можете вернуться к расширению. Это действие нужно выполнить только 1 раз, чтобы получить токен доступа к API. Время жизни авторизации - 1 год.
3. Нажмите на кнопку "Обновить" рядом с кнопкой "Авторизоваться"
4. После выполнения всех пунктов у вас должен появиться никнейм аккаунта и ваша аватарка (загружается с серверов Яндекса, поэтому у некоторых пользоватей может быть недоступна) левее кнопки "Авторизоваться" в меню расширения
\* Для повторной авторизации выйдите с аккаунта на сайте и заново на нем авторизуйтесь. Не забудьте нажать на кнопку "Обновить" в меню расширения, чтобы обновить данные в активной вкладке без перезагрузки страницы.
\* Для работы данной функции вы должны использовать современный загрузчик скриптов (Tampermonkey, Violentmonkey и т.п.), который поддерживает GM Storage т.к. данная функция требует синхронизации настроек между сайтами.
- Добавлена смена языка меню без перезагрузки страницы
- Добавлена поддержка установки сочетания клавиш в качестве хоткея (в #1234)
- Добавлена возможность "отменить" еще незавершенный перевод видео при повторном нажатие на кнопку перевода
- Добавлена смена положения кнопки перевода через меню (положение меняется только в широких плеерах с шириной более 600 пикселей)
\* ранее положение кнопки перевода можно было изменить только перетащив ее мышкой в левую/правую часть плеера
- Добавлена настройка времени до скрытия кнопки перевода. Доступные значения от 0.1 до 3 секунд, значение по умолчанию 1 секунда
- Добавлено сохранение выставленной настройки "Режим проксирования" для пользователей из стран в которых сервера Яндекса недоступны (#1204 в #1233)
- Визуальные изменения настроек в меню расширения
- Блок "О расширении" вынесен в отдельное подменю
- Добавлено подменю "Оформление интерфейса"
- Добавлена обводка для тултипов для выделения на фоне
- Добавлен блок "Настройки горячих клавиш"
- Добавлен блок "Другие настройки"
- Функция "Формат для загрузки субтитров" пересена из подменю "Оформление субтитров" в блок "Настройки субтитров"
- Функции "Сервис перевода текста", "Сервис определения языка" и "Переводить ошибки API" (недоступно с включенным русским языком меню) перенесены в блок "Другие настройки"
- Функция "Язык меню" перенесена в подменю "Оформление интерфейса"
- Функция "Показывать кнопку 'Картинка в картинке'" (недоступно в Firefox) перенесена в подменю "Оформление интерфейса"
- Функция "Не переводить с родного языка" переименована в "Не переводить с выбранных языков"
- Функция "Использовать эксперементальный вариант голосов Yandex для некоторых видеороликов" переименована в "Использовать живые голоса. Будто все знают русский."
- Добавлено отображение единиц измерения для слайдеров "Максимальная длина субтитров", "Размер шрифта субтитров" и "Прозрачность фона субтитров"
- Улучшен визуал слайдера "Уменьшать громкость видео до", теперь, текущее значение находится после фразы, а не переносится на новую строчку
- Изменен дизайн настройки хоткеев
- Улучшен UX "ленивой" загрузки субтитров
До
При первом нажатии субтитры загружаются в фоновом режиме. Единственное, что об этом показывает - это иконка загрузки в кнопке перевода. После того, как субтитры от Яндекса были загружены появляется меню со списком субтитров.
После
При первом нажатии субтитры загружаются в фоновом режиме, но меню со списком субтитров появляется мгновенно. Благодаря этому вы можете сразу выбрать уже существующие субтитры от сайта, а не ждать для этого завершения загрузки субтитров от Яндекса. Для индикации загрузки субтитров от Яндекса добавлен лоадер в самом низу модального окна.
- Убран сломанный 9AnimeTV (#1198)
- Исправлена работа Kodik с зашифрованными ссылками
- Исправлена работа `/client/disk` для Yandex Disk (#1206)
- Исправлена работа Poketube
- Исправлена ошибка из-за которой, если в кнопке перевода отображалась ошибка, то повторное нажатие не сбрасывало состояние кнопки перевода
- Улучшена очистка названия загружаемых файлов
- Небольшая оптимизация работы расширения
### Техническая часть
- **Добавлена загрузка аудио для правильной обработки статус кода перевода AUDIO_REQUESTED на YouTube**
Ранее, расширение полностью полагалось на фичу, которая позволяла сразу отправить ошибку загрузки аудио для продолжения перевода. Это работало, но такой подход был неправильным и заставлял сервера Яндекса загружать аудио самостоятельно. Вследствие, отсутствия клиентской загрузки аудио, в последнее время, стали возникать случаи, что запрос нового перевода иногда падал с ошибкой "Возникла ошибка при переводе, попробуйте позже", хотя, это же видео успешно переводилось в ЯБраузере.
Теперь, расширение сначала будет пытаться загрузить аудио файл, а если у него это не получится, то будет отправлять сообщение об ошибке загрузки. Данную функцию можно отключить, но делать это КРАЙНЕ НЕ РЕКОМЕНДУЕТСЯ т.к. это может негативно повлять на работу расширения и привести к ошибкам при переводе.
\* не работает в [UserScripts](https://github.com/quoid/userscripts/issues/801) и прочих загрузчиках, где нет `unsafeWindow` API.
- Частично переработана архитектура кода расширения =>
- Большая часть кода переписана на TypeScript
- `index.js` разделен на более мелкие функциональные файлы
- Пересмотрена логика взаимодействия между основными классами
- Взаимодействие с UI компонентами вынесено в отдельные файлы-компоненты и частично переписано
- Исправлена ошибка из-за которой некоторые эвенты тултипов не удалялись
- Добавлена поддержка GM v4 API для взаимодействия с VOT Storage. Все синхронные методы теперь являются "приватными" и не должны использоваться за пределами класса VOTStorage
Это необходимо, чтобы минимизировать проблемы, когда в каком-то из загрузчиков может не оказаться синхронного или наоборот асинхронного GM Storage API
- Значения при взаимодействие с localStorage, теперь, обрабатываются с помощью JSON.stringify / JSON.parse, что позволяет перейти от использования int boolean (0 | 1) к обычному (true | false)
- Изменена логика обработки и получения фраз локализации. Добавлена типизация для доступных фраз.
- Ускорена сборка расширения с помощью замены `ls-loader` на `@sucrase/webpack-loader`
- Включена минимальная минификация обычной сборки с помощью `oxc-minify-webpack-plugin` для уменьшения размера
- Убрано использование библиотеки Anime.js
- Другие небольшие улучшения и изменения связанные с кодовой базой
# 1.9.5
- Добавлена поддержка .org домена для PornHub (#1161)
- Исправлена работа Kodik
- Обновлен шаблон при репорте
# 1.9.4
- Исправлена некорректная работа на Udemy (#1163)
# 1.9.3
- Добавлена поддержка ThisVid (#991)
- Добавлена поддержка Kickstarter (#1136)
- CDN внешних библиотек изменен на cdnjs (ранее unpkg)
- Изменена лицензия на CC BY-NC-SA 4.0 (ранее MIT)
# 1.9.2
- Добавлена поддержка ссылок на файл /d/VIDEO_ID для Yandex Disk ([#1052#discussioncomment-12362384](https://github.com/ilyhalight/voice-over-translation/discussions/1052#discussioncomment-12362384))
- Исправлена работа в мобильном Firefox (#1123)
# 1.9.1
- Исправлена работа на мобильной версии YouTube (#1120)
- Добавлена дополнительная обработка ошибок на Udemy (#1117)
# 1.9.0
- Добавлена возможность быстро получить перевод слова, а также всего предложения из субтитров при помощи нажатия ЛКМ (#771)

- Переработано отображение информации в мини-версии кнопки (когда кнопка перевода находится в левой или в правой части плеера) и о недоступных функциях в меню расширения (например, если браузер не поддерживает WebAudio)



- Добавлена поддержка отображения кнопки перевода на последнем VOD в оффлайн карточке канала для Twitch
- Добавлена поддержка получения субтитров от Яндекса для видео на Reddit, 9AnimeTV, Kick, Patreon, Kodik, Apple Developers, EpicGames Developers, ArtStation (только для новых переводов)
- Улучшена очистка текста для определения языка видео (в #1069)
- Улучшена проверка аудио в VideoObserver (в #1094)
- Теперь, субтитры получаются, только, после нажатия на кнопку выбора в меню (в #1065)
- Теперь, HLS инициализируется, только, при необходимости (В #1079)
- Добавлен тултип "Не влияет на озвучку" для настройки "Сервис перевода текста"
- Настройки "Переводить ошибки из API" и "Сервис перевода ошибок" (теперь называется "Сервис перевода текста") были разделены
- Исправлено возникновение ошибок на YouTube в GreasyMonkey (#1055)
- Исправлены слеты шрифта в меню и субтитрах на некоторых сайтах
- Исправлено некорректное отображение заполнения слайдера после включения опции "Расширенное увеличение громкости видео"
- Исправлена установка неподдерживаемого языка в качестве языка перевода, если он был установлен как основной язык браузера (#1072, #1078)
- Исправлено некорректное отображение интерфейса в Odysee
- Исправлена пропажа кнопки перевода в некоторых случаях на Twitch (#1096)
- Исправлена неправильная анимация закрытия меню, если кнопка перевода находится не по центру
- Убран таймаут при загрузке аудио файла (#1074)
- Увеличено значение для таймаута при загрузке аудио плеером (#1074)
- ProtobufJS был заменен на `@bufbuild/protobuf`
- Добавлено автопроксирование для пользователей из Латвии и Литвы
- CDN внешних библиотек изменен на unpkg (ранее jsdelivr)
- Некоторые другие изменения (в #1065, #1069, #1079)
# 1.8.5
- Добавлена поддержка всех доступных TLDs для Яндекс Диска (#1012)
- Добавлена поддержка работы /d/ для Яндекс Диска (#735, #837, #883)
- Добавлена поддержка RT News (rt.com)
- Добавлена поддержка Bitview (bitview.net) (#1041)
- Добавлена подддержка перевода в предпросмотре курса для Coursera
- Добавлена поддержка нескольких дополнительных доменов для XVideos (#1015)
- Добавлена поддержка нескольких видео на одной странице для EpicGames Developers (#1043)
- Добавлено получение языка через API для всех сайтов, которые по умолчанию не возвращают язык, но имеют название в данных о видео
- Исправлена ошибка из-за которой мобильная версия VK Video была не доступна (#1011)
- Исправлена некорректная работа функции "Переводить при открытии" с расширениями создающими PiP с возможностью управления (#1014)
- Обновлены некоторые данные необходимые для запросов к API перевода (#1029)
- Возвращена поддержка встраиваемых видео YouTube использующих `enablejsapi`
- Теперь, Violetmonkey по умолчанию делает запросы напрямую к API Яндекса (в #1018)
- Некоторые другие малозаметные изменения (в #1027, #1029, #1035, #1038, #1042)
# 1.8.4
- Добавлена кнопка "Сообщить об ошибке" в меню расширения
- Исправлена ошибка из-за которой кнопка перевода могла не пропадать на мобильных устройствах (#1005)
- Исправлена ошибка из-за которой в некоторых случаях нельзя было свайпнуть экран при воспроизведение видео на мобильных устройствах (#1006)
# 1.8.3
- Исправлена ошибка из-за которой кнопка могла не появляться без переустановки расширения (#995, #997)
- Исправлена работа слайдеров громкости в меню расширения (#996)
- Исправлено ускорение видео при зажатие на меню расширения
# 1.8.2
- Добавлена возможность выбрать несколько языков для параметра "Не переводить с родного языка" (#818 в #975)
- Добавлена возможность перемещения кнопки и субтитров на мобильных устройствах (в #978, #980)
- Добавлена поддержка Artstation (#58)
- Добавлена поддержка ленты для Twitter (X) (частично #981)
- Добавлена поддержка ленты для Douyin (#876)
- Исправлен баг, из-за которого при выборе субтитров не обновлялся заголовок и не происходило выделение в меню (в #975)
- Исправлен баг, из-за которого не активировался аудиоплеер со стримами
- Исправлено определение длительности видео на `/client/...` в Яндекс Диске (#973)
- Изменена логика активации проксирования субтитров (в #975)
- Убрано появление кнопки загрузки аудио файла при просмотре перевода стримов (в прямом эфире)
# 1.8.1
- Добавлена поддержка Loom (#946, #34)
^ субтиры от сайта не работают до следующего обновления
- Добавлена поддержка домена `madmaxworld.tv` для BannedVideo
- Убрана отправка уведомления о переводе, если перевод уже существует ([ee3a66d0b6ef3c6af7b61136dae0c65df0d74337#commitcomment-150456758](https://github.com/ilyhalight/voice-over-translation/commit/ee3a66d0b6ef3c6af7b61136dae0c65df0d74337#commitcomment-150456758))
- Исправлена работа с некоторыми плейлистами VK Video (если ссылка содержала слитно написанный видео ID) (#971)
# 1.8.0
- Доработана логика поиска видео внутри ShadowDOM (#914)
- Добавлена возможность включить отправку уведомления о том, что видео было переведено (#934)
- Добавлена поддержка основного фронтенда Reddit (new.reddit.com, reddit.com) (#732)
- Добавлена поддержка Dzen (dzen.ru) (#915)
- Добавлена поддержка PornTN (porntn.com) (#705)
- Добавлена поддержка Cloudflare Streams (#941)
- Добавлена поддержка Douyin (#876)
- Добавлена поддержка нового домена для VK Video (#931)
- Добавлена поддержка субтитров для VK Video (#770)
- Добавлена поддержка перевода в плейлистах VK Video (`https://vk.com/video/playlists/PLAYLIST_ID/video-xxxxxxxxx_xxxxxxxxx`, на vkvideo.ru тоже работает)
- Добавлена поддержка загрузки субтитров/аудио с названием видео для VK Video (#932)
- Добавлена возможность перевода ошибок и детекта языка с помощью API MS Edge
- Добавлено сообщение о задержке перевода, если API более 5 раз возвращает одинаковое время ожидания перевода (обычно это сопровождалось сообщением "Перевод займет около минуты") (#919)
- Включено использование опции "Не переводить с родного языка" для всех сайтов (#906)
- Убрана возможность перевода ошибок с помощью Deepl (возможно, позже вернется)
- Изменена логика проверки недоступности серверов Яндекса (#928, #930)
- Теперь, автопереводимые субтитры от YouTube выбираются исходя из языка перевода
- Библиотека vot.js заменена на `@vot.js/ext` и `@vot.js/shared`, что позволило поактически полностью избавиться от необходимости патчить зависимости (все еще нужно для добавления локализированных ошибок и замены protobufjs на подгружаемую версию из jsdelivr)
- Исправлена работа Linkedin Learning при входе в аккаунт (#882)
- Исправлена работа OK.ru (#900)
- Исправлена работа EpicGames Developers (#944)
- Исправлена работа таймаута для детекта языка с помощью RustServer API
- Исправлен конфликт с перемоткой на мобильной версии XVideos (#866)
- Работа с хранилищем и апи переводчиков, отвечающих за перевод ошибок и детект языка, переписана на TypeScript
- Набор утилит для работы с плеером YouTube переписан на TypeScript
- Другие мелкие фиксы
# 1.7.2
- Добавлена возможность использования эксперементальной вариации голосов Яндекса. Новые голоса работают, только при некоторых условиях, во всех остальных случаях используются старые (#897)
- Добавлен обход кэша при получение перевода интерфейса после нажатия на кнопку "Обновить файлы локализации"
- Исправлена некорректная генерация Sec-{Vsubs|Vtrans}-Token заголовков ([vot.js#36](https://github.com/FOSWLY/vot.js/issues/36))
- Исправлена ошибка из-за которой старый плеер не добавлял lipsync эвенты после первого выключения перевода (#902, #894, возможно #887)
- Исправлена работа Yandex Disk по пути /i/ (#908)
# 1.7.1
- Добавлена поддержка Coursetrain (coursetrain.net) (#706)
- Добавлена поддержка Ricktube (ricktube.ru)
- Добавлена поддержка Bilibili Bangumi (#852)
- Добавлена поддержка Incestflix (#705)
- Добавлена поддержка субтитров от сайта для Vimeo
- Включен обход Media CSP для player.vimeo.com
- Добавлена поддержка просмотра видео в плеере Яндекс Диска без перехода по публичной ссылка (Вы все еще должны открыть публичный доступ к файлу (Не к папке!!!)) (#837)
- Исправлено долгое ожидание перевода для новых запросов на перевод для YouTube (статус = 6) ([1#issuecomment-2433274910](https://github.com/ilyhalight/voice-over-translation/issues/1#issuecomment-2433274910), [868#issuecomment-2436080833](https://github.com/ilyhalight/voice-over-translation/issues/868#issuecomment-2436080833))
- Исправлена работа встраиваемого плеера Vimeo (player.vimeo.com), если видео залито в приватный доступ и доступно только через встраивание (#543, #828)
- Переработан новый аудиоплеер, который полностью работает на AudioContext
По умолчанию данный плеер используется, только, чтобы обходить Media CSP на некоторыъ сайтах. Если вам нужен какой-либо из ниже перечисленных фиксов, то вам нужно будет снять галочку "Использовать только для обхода Media CSP"
- Исправлена работа медиаклавиш, если включен новый плеер (#192, #841)
- Исправлена работа PiP при активном переводе для браузера Arc (#357)
- Опция "Обходить Media CSP" заменена на "Использовать только для обхода Media CSP" (речь про новый плеер), а так же, теперь, данная опция зависит от состояния опции "Использовать новый аудио плеер"
- Исправлена ошибка из-за которой озвучка иногда могла не стартовать со старым плеером (#840)
- Теперь, при преобразование секунд в минуты будет учитываться доля секунд, вычисляемая по формуле secs/60, и если доля секунд больше N%, то результат будет округляться до следующей минуты. Благодаря этому, будет меньше ситуаций, когда сервер вернул, что необходимо подождать, например 110 секунд, а расширение пишет, что осталось около 1 минуты
- Исправлено добавление обводки для слайдеров на некоторых сайтах
- Исправлено некорректное отображение чекбоксов на некоторых сайтах
- Переработана логика работы с аудио плеерами
# 1.7.1 Beta 4
- Исправлена ошибка из-за которой при смене видео кнопка могла перестать работать со старым плеером ([875#discussioncomment-11085577](https://github.com/ilyhalight/voice-over-translation/discussions/875#discussioncomment-11085577))
# 1.7.1 Beta 3
- Обновлена логика запросов к VOT Worker для поддержки новых запросов из 1.7.1-beta2
- Обновлена логика нового плеера. Теперь, он не использует Tone.js и работает лучше, чем раньше
# 1.7.1 Beta 2
- Добавлена поддержка Coursetrain (coursetrain.net) (#706)
- Добавлена поддержка Ricktube (ricktube.ru)
- Добавлена поддержка Bilibili Bangumi (#852)
- Добавлена поддержка Incestflix (#705)
- Частично исправлено добавление питча при увеличение/уменьшение скорости с новым плеером (#849, #853, #840)
- Исправлена логика работы расширенного увеличения громкости с новым плеером
- (БЕЗ ОБНОВЛЕНИЯ VOT WORKER) Исправлено долгое ожидание перевода для новых запросов на перевод для YouTube (статус = 6) ([1#issuecomment-2433274910](https://github.com/ilyhalight/voice-over-translation/issues/1#issuecomment-2433274910), [868#issuecomment-2436080833](https://github.com/ilyhalight/voice-over-translation/issues/868#issuecomment-2436080833))
- Опция "Восстановление мультимедийных клавиш" заменена на "Использовать новый аудио плеер"
- Опция "Обходить Media CSP" заменена на "Использовать только для обхода Media CSP" (речь про новый плеер), а так же, теперь, зависит от состояния опции "Использовать новый аудио плеер"
- Исправлено добавление обводки для слайдеров на некоторых сайтах
- Исправлено некорректное отображение чекбоксов на некоторых сайтах
- Переработана логика работы с аудио плеерами
- Часть кода переписана на TypeScript
# 1.7.1 Beta 1
- Включен обход Media CSP для player.vimeo.com
- Добавлена поддержка субтитров от сайта для Vimeo
- Исправлено неверное название переменной для отключения чекбокса усилителя громкости аудио, что могло приводить к ошибке
- Исправлена работа встраиваемого плеера Vimeo (player.vimeo.com), если видео залито в приватный доступ и доступно только через встраивание (#543, #828)
- Исправлена работа медиаклавиш, если в браузере есть поддержка AudioContext (#192, #357, #841)
В меню расширения добавлен чекбокс "Restoring multimedia keys". По умолчанию чекбокс включен, если браузер поддерживает AudioContext. С включением чекбокса "Restoring multimedia keys", изменение значения чекбокса "Bypassing Media CSP" становится недоступным т.к. эти два чекбокса выполняют один и тот же функционал, но "Bypassing Media CSP" действует для ограниченного числа веб-сайтов, а "Restoring multimedia keys" для всех веб-сайтов с которыми работает расширение. Если после этого перехода не возникнет серьезных проблем, то чекбокс "Bypassing Media CSP" будет полностью удален.
# 1.7.0
- Переработана логика обновления переводов для меню расширения
- Добавлена кнопка для ручной проверки обновлений локализации
- Добавлена возможность копировавания текста из информации о расширении
- Добавлена настройка горячей клавиши перевода (#485 в #760)
- Добавлена поддержка путей `/inbox/` и `/bk/` для Видео Mail.ru (#763)
- Добавлена поддержка 9animetv с возможностью отображения субтитров от сайта (#748)
- Добавлена поддержка EpicGames Developers с возможностью отображения субтитров от сайта (#255, #505)
- Добавлена поддержка Odysee (#755)
- Добавлена поддержка Watchpornto
- Добавлена поддержка прямых ссылок на `.webm` файлы
- Добавлена поддержка Sap Learning с возможностью отображения субтитров от сайта (#719, #806)
- Добавлена поддержка Linkedin Learning с возможностью отображения субтитров от сайта (#332, [#372](https://github.com/ilyhalight/voice-over-translation/issues/372#issuecomment-1770306936))
- Добавлена возможность использования автоматически переведенных субтитров с YouTube. Язык, на который переводятся субтитры, выбирается согласно языку интерфейса расширения. Если язык интерфейса и язык автосгенерированных субтитров совпадают, то субтитры не будут показаны (#537)
- Добавлена возможность выбрать формат загружаемых субтитров
- Добавлено округление до целого процента в слайдере "Уменьшить громкость видео до"
- Добавлена возможность включить загрузку аудио дорожки и субтитров с названием видео, если расширение его нашло (#791)
- Добавлена возможность включить обход Media CSP через расширение (включено по умолчанию, если браузер поддерживает WebAudio), а не удалять его полностью через Tampermonkey или какие-либо другие расширения, что является не очень безопасным вариантом. Работает, только, для ниже перечисленных веб-сайтов. Если вы нашли сайт, который необходимо добавить в список для обхода Media CSP - создайте Issues.
- "linkedin",
- "sap",
- "apple_developer",
- "xvideos",
- "twitter",
- "facebook",
- "yandexdisk",
- "reddit",
- "invidious",
- "piped"
- Добавлено автоопределение возвращаемого типа данных из LocalStorage, если присутствует стандартное значение
- Убрано выставление языка `auto` по умолчанию для Invidious и Piped
- Автосгенериванные субтитры с YouTube, теперь, используют уже существующие токены, а не генерируют новые
- В субтитрах от самого веб-сайта, теперь, показывается полный домен сайта, а не его внутреннее название
- Изменена логика работы субтитров на "кастомных" сайтах. Теперь, вместо ошибки, возвращаются пустые данные
- Изменен загрузчик стилей при сборке расширения, благодаря этому скорость сборки стала немного быстрее, а итоговый размер кода, отвечающего за стили, уменьшен в ~1.65 раза
- Стандартный адрес для проксирования m3u8 изменен на `media-proxy.toil.cc/v1/proxy/m3u8`. Если вы развернули свой собственный m3u8 прокси вы можете перейти на более производительный прокси-сервера [FOSWLY/media-proxy](https://github.com/FOSWLY/media-proxy) или остаться на старой версии [FOSWLY/m3u8-proxy-worker](https://github.com/FOSWLY/m3u8-proxy-worker)
- Адрес vot-backend изменен на `https://vot.toil.cc/v1`
- Исправлена работа расширения без наличия WebAudio (#749)
- Исправлена ошибка из-за которой кнопка перевода могла не появляться до первичного получения субтитров или завершения автоперевода
- Исправлена ошибка из-за которой при смене адреса worker прокси-сервера домен сразу применялся, даже, если проксирование аудио выключено
- Исправлена ошибка из-за которой при запросе субтитров не учитывался выбранный язык видео
- Исправлена ошибка из-за которой для определения языка видео на ютубе использовалось локализованное название видео
- Исправлена ошибка из-за которой субтитры на некоторых сайтах могли иметь неверный размер шрифта
- Исправлена ошибка из-за которой не отключалась озвучка после перелистывания видео в YT Shorts (#802)
- Исправлена работа расширения для Kick
- Исправлена работа расширения для Coursera (#823)
- Исправлено появление значка загрузки при переводе на "кастомных" сайтах
- Исправлено появление кнопки в Rumble (#784)
- Исправлен жирный размер текста в меню и кнопке перевода на некоторых сайтах
- Исправлена растянутая кнопка перевода в Safari (#497)
- Исправлена попытка активации расширения на accounts.youtube.com
- Автоперевод и первичное получение субтитров, теперь, происходит параллельно
- Некоторые другие мелкие улучшения
# 1.6.1
- Теперь, после инициализации кнопка скрывается, а не ждет пока вы куда-нибудь нажмете/наведетесь на видео
- В качестве эксперимента, была убрана регистрация видео, которые изначально были замучены (такие видео могли использоваться для заднего фона или как вспомогательные элементы для основного плеера)
- Исправлена ошибка из-за которой на сайтах без поддержки субтитров кнопка могла не показываться
- Исправлена ошибка из-за которой кнопка не исчезала на Pornhub (#700)
- Ускорена работа VideoObserver (#740)
- Временно, поддержка `www.reddit.com` заменена на `old.reddit.com` из-за багов с инициализацией
- Добавлена поддержка большего числа инстансов Peertube
- Добавлено проксирование субтитров (#739)
- Добавлена поддержка Poketube (#726)
- Исправлена работа Peertube
- Исправлена работа Dailymotion ([#728#discussioncomment-10300700](https://github.com/ilyhalight/voice-over-translation/discussions/728#discussioncomment-10300700))
- Исправлена работа Google Drive (#737)
# 1.6.0
- Функционал запросов к API переписан с использованием vot.js
- Добавлена поддержка Kick (записи трансляций до 4 часов (/video/VIDEO_ID) + клипы)
- Добавлена поддержка Kodik
- Добавлена поддержка Reddit
- Добавлена поддержка Patreon
- Добавлена поддержка Archive.org (#679)
- Добавлена поддержка курсов без субтитров для Udemy
- Добавлена поддержка просмотра видео на стене в VK
- Добавлена поддержка VK Clips
- Добавлена поддержка YouTube Live (https://youtube.com/live/VIDEO_ID) (#657)
- Добавлена поддержка Bitchute embed
- Добавлена поддержка Apple Developer
- Добавлена поддержка русского домена XVideos (`xv-ru.com`)
- Для работы с Udemy больше не нужно вводить Udemy Access Token
- Обновлен список поддерживаемых сайтов для Invidious, ProxiTok, Peertube
- Убрана кнопка с прямых ссылок на видео с localhost / 127.0.0.1
- Добавлена возможность увеличения громкости аудио до 900% (#449)
- Улучшена скорость получения айди видео (#686)
- Исправлен жирный шрифт селекторов меню на некоторых сайтах
- Стандартный домен для проксирования изменен на `vot-worker.toil.cc`
- Теперь, при включенной опции "Не переводить с родного языка" проверяется, только, соответствие языка с которого переводится видео (ранее срабатывало, только, при одинаковой паре языков, например русский-русский, английкий-англиский и т.п.)
- Добавлена возможность выделения отдельных слов в субтитрах (#666)
- Добавлена возможность изменить размер шрифта субтитров (#720)
- Добавлена возможность изменить прозрачность фона субтитров (#720)
- Обновлена логика получения айди для clips.twitch.tv. Добавлена поддержка не только встроенных (embed) клипов
- Исправлено неправильное формирование параметра запроса для weverse
- Для dailymotion и yadisk итоговые ссылки заменены на короткие варианты
- Исправлен дополнительный селектор для twitter
- Работа с UI частично переписана на lit для работы с "Trusted Types"
- Исправлено накладывание друг на друга названия и плейсхолдера поля ввода
- Исправлен селектор для Bitchute
- Исправлен селектор для Facebook
- Proxytok переименован в Proxitok
- Стандартный формат загружаемых субтитров изменен на srt (#644)
- Фикс формирования строки с оставшимся временем перевода (#643)
- Добавлена индикация долгих операций (ожидание перевода, ожидание перевода текста, ожидание проверки аудиодорожки)
- Исправлен баг из-за которого реклама считалась за отдельные видео (#642)
- Фикс отображения кнопки для youku (#636)
- Исправлены некоторые визуальные недочеты
- Другие мелкие фиксы
# 1.5.3.1
- Исправлено положение субтитров в GoogleDrive (#619)
- Из меню убраны не работающие языки
- Изменена логика работы GM_fetch (#632)
# 1.5.3
- Обновлен Yandex HMAC (#627)
- Уменьшена задержка перевода до 30 секунд, если нет субтитров от Яндекса и 20 секунд, если субтитры есть (#621)
- Перевод текста (/translate & /detect) через Yandex API, теперь, работает через GET запросы, благодаря чему задержка была немного уменьшена
- Добавлен перевод возвращаемых сервером ошибок через Deepl
- Исправлено не консистентное отображение установленого значения в дропдаунах "Detect Service" и "Translate errors from the API" (сохраненное значение было написано маленькими буквами, а только что установленное большими)
- Добавлен фалбек, если есть ссылка на видео, но нет ссылки на субитры, для Udemy и Coursera
- Фикс неправильного отображения кнопки в некоторых случаях (если выбрана нестандартная позиция кнопки) (дофикс)
- Исправлен баг при переключение видео на Rutube
- Добавлена доп. проверка для GM_fetch
- Функциионал очистки вынесен в отдельную функцию cleanText
- Другие мелкие фиксы и оптимизация кода (#603, #612, #616, #621, #623)
# 1.5.2.2
- Фикс неправильного отображения кнопки в некоторых ситуациях (если выбрана нестандартная позиция кнопки)
- Фикс для работы в AdGuard
# 1.5.2.1
- Фикс списка `@connect`
# 1.5.2
- Исправлена работа функции "связать громкость перевода и видео" через слайдер ютуба (#535)
- Исправлена ошибка из-за которой слайдер ютуба не обновлялся, если изменялось значение громкости перевода в меню с включенной функцией "связать громкость перевода и видео"
- Исправлена ошибка из-за которой не менялось значение слайдера громкости оригинала, если видео мутилось через кнопку или хоткей
- Немного оптимизирована работа с syncVolumeObserver. Теперь, он проверяет изменения, только, если включен перевод видео и включена функция "связать громкость перевода и видео"
- Добавлена двухсторонняя синхронизация слайдера громкости в меню со слайдером громкости плеера. Поддерживаемые плееры: Стандартный, VK, Vimeo, YouTube (уже была поддержка), Trovo, YandexDisk, возможно, какие-то другие - не указанные в этом списке
- Включена возможность использования функции "связать громкость перевода и видео" для всех поддерживаемых сайтов
- Убрана обводка слайдеров при нажатие на слайдер в Vimeo
- Убрана жирность текста в меню на Rutube
- Исправлено отображение субтитров в ОК (#561)
- Добавлен `peertube.su` в список доступных доменов для Peertube (#442)
- Добавлена возможность перемещения кнопки перевода по аналогии с Яндекс Браузером (#483). Работает, только, если видео более 550 пикселей
- Добавлено перемещение меню в зависимости от позиции кнопки. Работает, только, если видео более 550 пикселей. Тестировалось только на YouTube, Vimeo, Rutube, VK и прямых ссылках на видео файлы
- Большинство важных fetch заменено на GM_fetch, благодаря чему, должно уменьшиться число ошибок из-за CSP
# 1.5.1.5
Большинство изменений внесены @SashaXser в #576 и #581
- Исправлено определение языка на главной странице ютуба
- Исправлен двойной вызов перевода на /embed/
- Исправлено двойное определение videoID (иногда не определялась длительность видео)
- Исправлена невидимая кнопка на /embed/
- Исправлен сброс перевода при смене качества видео
- Улучшена очистка описания на YouTube
- Добавлен полифил для GM_addStyle (#571)
- Другие мелкие правки в коде
# 1.5.1.4
Все изменения были внесены @SashaXser в #560 и #573
- Добавлено автоматическое определение языка для перевода прямых ссылок
- Добавлено обновление субтитров после перевода видео
- Добавлено сохранение перевода при изменение качества видео
- Возвращен addExtraEventListener emptied взамен на lipsync emptied
- Убрана активация скрипта с локальных файлов .mp4 (они не переводятся)
# 1.5.1.3
- Добавлена поддержка прямых веб-ссылок на видео (.mp4)
- Добавлено скрытие кнопки перевода, если не найден VideoID от @SashaXser в #558
# 1.5.1.2
- Исправлен баг с работой на YouTube Embed
- Изменена логика поиска плеера на Twitch
# 1.5.1.1
- Исправление работы при отключенном автовоспроизведение (#551) от @SashaXser в #552
- Добавлена библиотека `npm-run-all` для ускорения процесса сборки с помощью параллельного запуска команд. Благодаря этому полная сборка расширения была ускорена в ~2 раза.
# 1.5.1
- Добавлена поддержка Одноклассников от @SashaXser в #476
- Добавлена поддержка Google Drive (только публичные ссылки, например: `https://drive.google.com/file/d/FILE_ID`)
- Добавлена поддержка Banned Video (banned.video)
- Добавлена поддержка Egghead от @SashaXser в #531
- Добавлена поддержка Youku от @SashaXser в #531
- Добавлена поддержка корп. видео для `player.vimeo.com` (поддержка параметра app_id). Для использования перевода на `player.vimeo.com` нужно полностью отключить CSP.
- Добавлена поддержка Facebook (работает только с ссылками, которые содержат `/video/` или `/reel/`). Для использования перевода нужно полностью отключить CSP.
- Добавлена поддержка Weverse (работает только с ссылками, которые содержат `/live/` или `/media/`)
- Добавлена поддержка Newgrounds от @SashaXser в #523
- Добавлено определение языка в VK по субтитрам и обновление зависимостей от @SashaXser в #531
- Исправлена работа YouTube Embed через JS API (#544)
- Исправлена работа Bitchute от @SashaXser в #531 (#542)
- Улучшена очистка описания на Youtube от @SashaXser в #476
- Улучшена логика инициализации БД от @SashaXser в #531
- Улучшено получение ID видео для Dailymotion от @SashaXser в #476
- Улучшение оптимизации от @SashaXser в #499
- Улучшено добавление фраз локализации при сборке от @SashaXser в #499
- Функция форматирования строк заменена на стандартный `replace` от @SashaXser в #499
- Исправлен баг, когда стримы могли не переводиться, если они идут более 4 часов от @SashaXser в #499
- Исправлен баг с отключением перевода на стримах от @SashaXser в #499
- Исправлена ошибка из-за которой значение автогромкости могло иметь слишком много знаков после запятой
- Исправлена ошибка из-за которой значение автогромкости по умолчанию было 0.15%, а не 15%
- Время отображения кнопки перевода уменьшено до 1 секунды
- Убраны пути `/s/` и `/d/` из определения айди видео в Яндекс Диске (скрипт не запускался на этих путях, поэтому для конечного пользователя ничего не изменилось)
- HLS заменен на облегченную версию HLS light от @SashaXser в #506
- В утилитах для сайтов экспорт изменен на эспорт по умолчанию
- Теперь, полученные переводы кешируются до перезагрузки страницы. Благодаря этому удалось избавиться от лишних запросов к серверу, а так же это избавило от проблем, когда из-за изменения качества приходилось заново ждать перевод (например на weverse)
- Старая реализация установки громкости звука в "stopTranslate" изменена на актуальную - "this.setVideoVolume"
- Объединен некоторый повторяющийся код
- Webpack-Userscript изменен на Webpack-Monkey
- Стандартный домен worker прокси-сервера изменен на `vot.toil.cc` (Балансировщик между прокси серверами)
- Стандартный домен M3U8 Proxy Worker изменен на `m3u8-proxy.toil.cc`, дабы избавиться от ограничений cloudflare (слишком маленький лимит запросов для m3u8 + недоступность в РФ). Если вы все равно хотите использовать M3U8 Proxy Worker, который хостится на cloudflare, то прошу перейти на `m3u8-proxy.toiloff.workers.dev` т.к. воркер на старом домене будет выключен спустя некоторое время для уменьшения числа запросов к основному worker proxy.
# 1.5.1-beta7
- Исправлена работа YouTube Embed через JS API (#544)
- Исправлена работа Bitchute от @SashaXser в #531 (#542)
- Добавлена поддержка Egghead от @SashaXser в #531
- Добавлена поддержка Youku от @SashaXser в #531
- Улучшена логика инициализации БД от @SashaXser в #531
- Добавлено определение языка в VK по субтитрам и обновление зависимостей от @SashaXser в #531
- Убрана устаревшая логика fullscreen от @SashaXser в #531
- Webpack-Userscript изменен на Webpack-Monkey
- Стандартный домен worker прокси-сервера изменен на `vot.toil.cc` (Балансировщик между прокси серверами)
# 1.5.1-beta6
- Теперь, полученные переводы кешируются до перезагрузки страницы. Благодаря этому удалось избавиться от лишних запросов к серверу, а так же это избавило от проблем, когда из-за изменения качества приходилось заново ждать перевод (например на weverse)
- Старая реализация установки громкости звука в "stopTranslate" изменена на актуальную - "this.setVideoVolume"
- Объединен некоторый повторяющийся код
# 1.5.1-beta5
- Добавлена поддержка Weverse (работает только с ссылками, которые содержат `/live/` или `/media/`)
- Добавлена поддержка Newgrounds от @SashaXser в #523
- Небольшие правки в коде от @SashaXser в #523
- В утилитах для сайтов экспорт изменен на эспорт по умолчанию
# 1.5.1-beta4
- Добавлена поддержка Google Drive (только публичные ссылки, например: `https://drive.google.com/file/d/FILE_ID`)
- Добавлена поддержка Banned Video (banned.video)
- Добавлена поддержка корп. видео для `player.vimeo.com` (поддержка параметра app_id). Для использования перевода на `player.vimeo.com` нужно полностью отключить CSP.
- Добавлена поддержка Facebook (работает только с ссылками, которые содержат `/video/` или `/reel/`). Для использования перевода нужно полностью отключить CSP.
# 1.5.1-beta3
- HLS заменен на облегченную версию HLS light от @SashaXser в #506
- Убраны пути `/s/` и `/d/` из определения айди видео в Яндекс Диске (скрипт не запускался на этих путях, поэтому для конечного пользователя ничего не изменилось)
- Исправлена ошибка из-за которой значение автогромкости по умолчанию было 0.15%, а не 15%
- Исправлена ошибка из-за которой значение автогромкости могло иметь слишком много знаков после запятой
# 1.5.1-beta2
Все изменения были внесены @SashaXser в #499
- Исправлен баг с отключением перевода на стримах
- Исправлен баг, когда стримы могли не переводиться, если они идут более 4 часов
- Функция форматирования строк заменена на стандартный `replace`
- Улучшено добавление фраз локализации при сборке
- Улучшение оптимизации
- Другие правки
# 1.5.1-beta1 (от @SashaXser в #476)
- Добавлена поддержка Одноклассников
- Улучшена очистка описания на Youtube
- Улучшено получение ID видео для Dailymotion
- Другие мелкие улучшения кода
# 1.5.0.5
- Исправлен перевод для Coursera
- Обновлен Yandex Protobuf
# 1.5.0.4
- Добавлена поддержка coursehunter
# 1.5.0.3
- Стандартный прокси-воркер изменен на `https://vot-worker.onrender.com`
# 1.5.0.2
- Улучшена очистка описания на Youtube от @SashaXser в #467
# 1.5.0.1
- Фикс работы с Chromium <88 и Firefox<86 (для Cent Browser и других старых браузеров)
# 1.5.0
- Добавлена эксперементальная поддержка трансляций (На 23.12.2023 не работает в РФ из-за ограничений на российский айпи от cloudflare worker (позже исправлю). С задержкой как повезет, но в большинстве случаев довольно терпимо +-0-2 секунды от оригинала, но иногда бывает отставание до 10 секунд, но перезапуск перевода помогает уменьшить задержку)
- Добавлен HLS.js
- Добавлена поддержка Yandex Disk (только публичные ссылки, например: `https://disk.yandex.ru/s/FILE_ID`)
- Добавлена поддержка Trovo (клипы или уже завершенные трансляции)
- Добавлена частичная поддержка Dailymotion ([34#issuecomment-1533772639](https://github.com/ilyhalight/voice-over-translation/issues/34#issuecomment-1533772639))
> [!WARNING]
> Перед выполнением перевода видео перезагрузите страницу, иначе вы рискуете перевести одно из старых просмотренных вами видео. Я не нашел способа как это исправить.
- Добавлена поддержка Peertube. Были добавлены 9 крупных сайтов, хостящих Peertube (libre.video не поддерживается - не просите):
- tube.shanti.cafe
- bee-tube.fr
- video.sadmin.io
- dalek.zone
- review.peertube.biz
- peervideo.club
- tube.la-dina.net
- peertube.tmp.rcp.tf
- Добавлена поддержка EPorner (#409)
- Добавлена поддержка YouTube Kids
- Добавлена поддержка rumble.com (#94, #123)
- Добавлена поддержка YT Shorts
- Для VK, Piped, Invidious, Bitchute, Rumble, Peertube, DailyMotion, Trovo, и Yandex Disk стандартный язык перевода изменен на "Auto"
- Добавлен слайдер регулировки автоматически устанавливаемой громкости видео при включение перевода (#418)
- Добавлена возможность установки своего прокси-домена без пересборки расширения
- Добавлена опция включающая перевод ошибок возвращаемых с сервера. Работает на базе [Яндекс переводчика](https://github.com/FOSWLY/translate-backend) (#429, #309)
- Добавлен выбора сервиса для определения языка видео:
- [Yandex](https://github.com/FOSWLY/translate-backend) (должен определять точнее, установлен по умолчанию)
- Rust-server (тот, что использовался раньше)
- Улучшено определение языка при отсутвии субтитров на YouTube (убрано использование имени автора каанала) от @SashaXser в #355
- Добавлена возможность загрузки субтитров от Яндекса в формате json (#352, #335)
- Добавлен таймаут в 3 секунды, если детект сервер не доступен
- Добавлен выбор языка для опции "Не переводить с родного языка" (если не трогать, то за основу берется язык браузера)
- Добавлена возможность проигрывания нескольких переводов одновремено
- Добавлена возможность кастомизации цветов расширения через Stylish, Stulus и другие подобные расширения
Пример изменения цветов меню на зеленый:
```css
/* ==UserStyle==
@name VOT-GREEN
@version 16.09.2023
@namespace vot-green
@description LLL
@author Toil
@license No License
==/UserStyle== */
:root {
--vot-primary-rgb: 201, 245, 180;
}
.vot-segmented-button[data-status="success"] .vot-translate-button {
color: rgb(201, 245, 180);
fill: rgb(201, 245, 180);
}
```
- Добавлено версионирование переводов
- Добавлена возможность включить кнопку PiP для браузеров в которых она поддерживается (хромиум)
- Добавлено немного информации в меню
- Добавлена возможность смены языка меню
- Исправлен небольшой баг с "Не переводить с родного языка" (#414)
- Фикс Coursera (#444)
- В список языков меню добавлены все доступные языки
- Добавлены доп. проверки на существование методов для YouTube player
- Исправлена ошибка из-за которой в Greasymonkey не работала установка громкости
- Фикс эффекта "перетаскивания" меню для всех браузеров (#417)
- Фикс "отложенной загрузки видео" для YouTube (#387, #368, #277. Возможно #378)
- Добавлен хук pre-commit для автоформатирования при добавление в git
- Игнорирование папок перенесено в отдельный файл `.eslintignore`
- Задан явный конфиг для prettier (нужен для нормальной работы форматирования в редакторе)
- Теперь, по умолчанию значение опции "слайдер громкости видео" было изменено на включен
- Два разных хранилища IndexedDB и LocalStorage были заменены на одно - GM_Storage (LocalStorage используется, если не доступен GM Storage)
- Фикс updateURL, downloadURL и namespace для минифицированных версий и бета версий (#385)
- Включена подгрузка бета локализаций в бета версиях
- Все языки, перевод на которые может быть недоступен, были помечены с помощью `❌`
- Теперь, если сервер определения языка текста не отвечает будет установлен английский язык (#361) от @SashaXser в #366
- Убрана проверка на премьеру для YouTube от @SashaXser в #366
- Значения lectureData, videoURL и subtitlesURL, теперь, показываются и без дебаг режима (udemy, coursera)
- В полезные ссылки в README добавлены пометки `vot-cli` и `cloudflare`, дабы число вопросов с ними сократилось
- Сайты, с которыми могут возникать ошибки CSP, были помечены в README как требующие доп. действий, дабы число вопросов с ними сократилось
- Теперь, в режиме разработки расширение имеет префикс "[DEBUG]"
- Метод getSubtitlesFileURL, теперь, имеет одинаковый порядок аргументов в Udemy и Coursera
- Изменена логика получения ссылки на видео для Udemy и Coursera
Теперь, ссылка на видео ищется не только в формате .mp4, но еще и в .webm.
Добавлена проверка на то, является ли ссылка на видео блобом (если ссылка получена через плеер)
- Изменена логика получения ссылки на субтитры для Udemy и Coursera
Теперь, проверка, изначально, идет по языку курса.
Если субтитры по языку курса не были найдены, то идет проверка по языку на который выполняется перевод.
Если и после этого субтитры не были найдены, то берутся первые субтитры из массива с субтитрами.
- Переписан UI расширения
- Переписана логика загрузки
- Кеш переводов, теперь, очищается при сбросе настроек
- Стандартный шрифт изменен на Roboto
# 1.5.0-final
- Добавлена поддержка путей /s/ и /d/ при переводе с Yandex Disk
- Добавлен таймаут в 3 секунды, если детект сервер не доступен
- Добавлена возможность установки своего прокси-домена без пересборки расширения
- Отменены правки иконок из 1.5.0-beta10
- Исправлена установка стандартного значения "auto volume" из переменной (#445)
- Фикс Coursera (#444)
# 1.5.0-beta10
- Добавлена поддержка Yandex Disk (только публичные ссылки, например: `https://disk.yandex.ru/i/FILE_ID`)
- Добавлена поддержка Trovo (клипы или уже завершенные трансляции)
- Добавлена частичная поддержка Dailymotion ([34#issuecomment-1533772639](https://github.com/ilyhalight/voice-over-translation/issues/34#issuecomment-1533772639))
> [!WARNING]
> Перед выполнением перевода видео перезагрузите страницу, иначе вы рискуете перевести одно из старых просмотренных вами видео. Я не нашел способа как это исправить.
- Добавлена поддержка Peertube. Были добавлены 9 крупных сайтов, хостящих Peertube (libre.video не поддерживается - не просите):
- tube.shanti.cafe
- bee-tube.fr
- video.sadmin.io
- dalek.zone
- review.peertube.biz
- peervideo.club
- tube.la-dina.net
- peertube.tmp.rcp.tf
- Для VK, Piped, Invidious, Bitchute, Rumble, Peertube, DailyMotion, Trovo, и Yandex Disk стандартный язык перевода изменен на "Auto"
- Добавлен слайдер регулировки автоматически устанавливаемой громкости видео при включение перевода (#418)
- Внесены правки в стили для правильного отображения svg иконок на некоторых сайтах
- Добавлена опция включающая перевод ошибок возвращаемых с сервера. Работает на базе [Яндекс переводчика](https://github.com/FOSWLY/translate-backend) (#429, #309)
- Добавлен выбора сервиса для определения языка видео:
- [Yandex](https://github.com/FOSWLY/translate-backend) (должен определять точнее, установлен по умолчанию)
- Rust-server (тот, что использовался раньше)
- В список языков меню добавлены все доступные языки
- Взаимодействие с хранилищем вынесено в отдельный класс
- Добавлено использование Local Storage заместо GM Storage, если расширение его не поддерживает:
- Фикс работы в FireMonkey (#428)
- Фикс работы в UserScripts (#423)
- Добавлены доп. проверки на существование методов для YouTube player
- Фикс ошибки Hls в Safari (#423)
- Убраны некоторые дебаг логи и закомментированный код для тестирования Hls и переводов стримов
- Исправлена ошибка из-за которой в Greasymonkey не работала установка громкости
- Фикс эффекта "перетаскивания" меню для всех браузеров (#417)
# 1.5.0-beta9
- Добавлена поддержка EPorner (#409)
- Добавлен выбор языка для опции "Не переводить с родного языка" (если не трогать, то за основу берется язык браузера)
- Исправлен небольшой баг с "Не переводить с родного языка" (#414)
- Изменена логика предотвращающая дублирования кнопки перевода для Rumble
- Увеличен шрифт для названий дропдаунов
- Исправлена работа Rumble (#400)
- Исправлен обрезанный шеврон в дропдауне (#397)
- Уменьшен размер шеврона в дропдауне (#398)
- Увеличено растояние для текста в дропдаунах (#398)
# 1.5.0-beta8
- Добавлена поддержка YouTube Kids
- Фикс "отложенной загрузки видео" для YouTube (#387, #368, #277. Возможно #378)
- Фикс эффекта "перетаскивания" меню в Opera (#394)
- Фикс появление кнопки для Pornhub (#391)
- Вернул включение опции "проксирование аудио" по умолчанию, если язык браузера украинский (#389)
- Улучшен код функции сброса настроек расширения
- Добавлен хук pre-commit для автоформатирования при добавление в git
- Игнорирование папок перенесено в отдельный файл `.eslintignore`
- Задан явный конфиг для prettier (нужен для нормальной работы форматирования в редакторе)
# 1.5.0-beta7
- Теперь, по умолчанию значение опции "слайдер громкости видео" было изменено на включен
- Фикс прогрузки опций при первой инициализации (#389)
# 1.5.0-beta6
- Два разных хранилища IndexedDB и LocalStorage были заменены на одно - GM_Storage
- Фикс отправки запросов к прокси-серверу после отключения перевода стрима (#381, #359)
- Фикс updateURL, downloadURL и namespace для минифицированных версий и бета версий (#385)
- Включена подгрузка бета локализаций в бета версиях
- Все языки, перевод на которые может быть недоступен, были помечены с помощью `❌`
# 1.5.0-beta5
- Фикс меню выбора языка и слайдеров для YouTube в Firefox (#371)
- Переработан дропдаун, теперь, он соответствует стилю расширения, а так же, теперь, в нем можно легко находить языки с помощью поиска
- Теперь, если сервер определения языка текста не отвечает будет установлен английский язык (#361) от @SashaXser в #366
- функция проксирование аудио, теперь, по умолчанию включена, если вы используете cloudflare версию и ваш язык браузера украинский от @SashaXser в #366
- Убрана проверка на премьеру для YouTube от @SashaXser в #366
# 1.5.0-beta4
- Улучшено определение языка при отсутвии субтитров на YouTube (убрано использование имени автора каанала) от @SashaXser в #355
- Добавлена возможность загрузки субтитров от Яндекса в формате json (#352, #335)
- Добавлена поддержка rumble.com (#94, #123)
- Фикс работы в Safari (#351)
- Значения lectureData, videoURL и subtitlesURL, теперь, показываются и без дебаг режима (udemy, coursera)
- В полезные ссылки в README добавлены пометки `vot-cli` и `cloudflare`, дабы число вопросов с ними сократилось
- Сайты, с которыми могут возникать ошибки CSP, были помечены в README как требующие доп. действий, дабы число вопросов с ними сократилось
- Добавлено проксирование стримов, чтобы не нужно было использовать отдельное расширение для отключения CORS
- HLS.js обновлен до актуальной версии
# 1.5.0-beta3
- Добавлена эксперементальная поддержка трансляций (Необходимо расширение для отключение CORS. С задержкой как повезет, но в большинстве случаев довольно терпимо +-0-2 секунды от оригинала, но иногда бывает отставание до 10 секунд, но перезапуск перевода помогает уменьшить задержку)
- Добавлен HLS.js
- Теперь, в режиме разработки расширение имеет префикс "[DEBUG]"
# 1.5.0-beta2
- Изменена логика получения ссылки на видео для Udemy и Coursera
Теперь, ссылка на видео ищется не только в формате .mp4, но еще и в .webm.
Добавлена проверка на то, является ли ссылка на видео блобом (если ссылка получена через плеер)
- Изменена логика получения ссылки на субтитры для Udemy и Coursera
Теперь, проверка, изначально, идет по языку курса.
Если субтитры по языку курса не были найдены, то идет проверка по языку на который выполняется перевод.
Если и после этого субтитры не были найдены, то берутся первые субтитры из массива с субтитрами.
- Для Udemy и Coursera добавлено сообщение в консоль, если ссылка на субтитры или на видео не была найдена
- Для Coursera была добавлена проверка на наличие ссылки на видео
- Метод getSubtitlesFileURL, теперь, имеет одинаковый порядок аргументов в Udemy и Coursera
- Обновлена локализация для части языков. Возможно, локализация стала немного точнее или наоборот хуже из-за использования другого сервиса перевода. (список всех затронутых языков есть в TODO к 1.5.0-beta1)
# 1.5.0-beta1
- Переписан UI расширения
- Переписана логика загрузки
- Добавлена возможность проигрывания нескольких переводов одновремено
- Добавлена возможность кастомизации цветов расширения через Stylish, Stulus и другие подобные расширения
Пример изменения цветов меню на зеленый:
```css
/* ==UserStyle==
@name VOT-GREEN
@version 16.09.2023
@namespace vot-green
@description LLL
@author Toil
@license No License
==/UserStyle== */
:root {
--vot-primary-rgb: 201, 245, 180;
}
.vot-segmented-button[data-status="success"] .vot-translate-button {
color: rgb(201, 245, 180);
fill: rgb(201, 245, 180);
}
```
- Добавлено версионирование переводов
- Добавлена поддержка YT Shorts
- Добавлена возможность включить кнопку PiP для браузеров в которых она поддерживается (хромиум)
- Добавлено немного информации в меню
- Добавлена возможность смены языка меню
- Кеш переводов, теперь, очищается при сбросе настроек
- Стандартный шрифт изменен на Roboto
- Возможно что-то еще, про что я забыл написать
# 1.4.1 (release)
- Добавлено 39 новых языков перевода меню ([#297](https://github.com/ilyhalight/voice-over-translation/pull/297))
- Добавлено 2 новых языка устанавливаемых как язык видео (Латышский и Литовский - [#297](https://github.com/ilyhalight/voice-over-translation/pull/297))
- Добавлено 38 новых языков для TTS (`az`, `sq`, `am`, `hy`, `af`, `eu`, `my`, `bg`, `bs`, `cy`, `hu`, `gl`, `el`, `zu`, `kn`, `ca`, `km`, `lo`, `mk`, `ml`, `mt`, `mn`, `ne`, `nl`, `pa`, `ro`, `sr`, `si`, `sk`, `sl`, `sw`, `su`, `hr`, `et`, `da`, `fi`, `uz`, `pl`, `sv` - [#297](https://github.com/ilyhalight/voice-over-translation/pull/297))
- Улучшено форматирование ссылок на YouTube, теперь, язык должен определяться точнее ([#297](https://github.com/ilyhalight/voice-over-translation/pull/297))
- Добавлена поддержка TikTok
Работает только в видео типа: /@НИК/video/АЙДИ_ВИДЕО (не работает в ленте)
- Добавлена поддержка Udemy
**Если у курса нету субтитров на вашем языке, то перевод не будет выполнен.**
**Перевод очень далек от перевода в том же ютубе, но это всё равно лучше чем ничего.**
Работает, только, для добавленных курсов т.е. соответственно вам нужно быть авторизованным в аккаунт Udemy. Для работы перевода необходимо через меню расширения установить accessToken. Он необходим для получения ссылки на файлы субтитров и видео, без которых Яндекс не переводит данный сервис.
Гайд по установке accessToken: **[тык](https://github.com/ilyhalight/voice-over-translation/wiki/%5BRU%5D-Where-to-get-Udemy-Access-Token%3F)**
- Добавлена поддержка Coursera
**Если у курса нету субтитров на вашем языке, то перевод не будет выполнен.**
**Перевод очень далек от перевода в том же ютубе, но это всё равно лучше чем ничего.**
Работает только в режиме прохождения курсов, т.е. вы должны авторизоваться в аккаунте перейти в "Мои курсы" и выбрать нужный курс.
- Добавлена поддержка ProxyTok (протестировано на proxitok.pabloferreiro.es и proxitok.privacydev.net. Ограничения теже, что и для обычного TikTok)
- Добавлена поддержка нового встраиваемого плеера Bilibili (player.bilibili.com)
- Исправлена ошибка из-за которой нельзя было выбрать языковую пару en-ru в mail.ru видео и rutube ([#298](https://github.com/ilyhalight/voice-over-translation/issues/298))
- Фикс [#285](https://github.com/ilyhalight/voice-over-translation/issues/285), [#283](https://github.com/ilyhalight/voice-over-translation/issues/283), [#282](https://github.com/ilyhalight/voice-over-translation/issues/282) ([#297](https://github.com/ilyhalight/voice-over-translation/pull/297))
- В protobuf обновлен тип для translationHelp
- Преобразование языка в формат "хх" перенесено в отдельную функцию langTo6391
- Для OrangeMonkey добавлено уведомление о необходимости использовать Cloudflare-версию
- Исправлена ошибка из-за которой мог установиться не поддерживаемый язык ([#292](https://github.com/ilyhalight/voice-over-translation/discussions/292))
- Исправлена ошибка из-за которой язык видео мог определяться в формате отличном от xx
- Улучшена логика работы обновлений indexedDB
- Возвращен пункт меню "Проксировать полученное аудио"
- Исправлено изменение процента громкости видео при изменение громкости через слайдер ютуба
- Переработано получение и установка громкости видео
- Исправлен сброс установленной громкости звука при открытие нового видео
- Локализация была разделена на отдельные файлы и перенесена на Github
- vot-cli был перенесен в отдельный **[репозиторий](https://github.com/FOSWLY/vot-cli)**
- Удалена папка с web-server (уже давно не используется)
# 1.4.1-beta8 (final)
- Исправлено время жизни токена на Udemy. Из-за бага токен считался истекшим после 45 минут, а не после 30 дней
- Добавлен альтернативный способ получения ссылки на видеофайл Udemy
# 1.4.1-beta7
- Фикс [#285](https://github.com/ilyhalight/voice-over-translation/issues/285), [#283](https://github.com/ilyhalight/voice-over-translation/issues/283), [#282](https://github.com/ilyhalight/voice-over-translation/issues/282) ([#297](https://github.com/ilyhalight/voice-over-translation/pull/297))
- Добавлено 39 новых языков перевода меню ([#297](https://github.com/ilyhalight/voice-over-translation/pull/297))
- Добавлено 2 новых языка устанавливаемых как язык видео (Латышский и Литовский - [#297](https://github.com/ilyhalight/voice-over-translation/pull/297))
- Добавлено 38 новых языков для TTS (`az`, `sq`, `am`, `hy`, `af`, `eu`, `my`, `bg`, `bs`, `cy`, `hu`, `gl`, `el`, `zu`, `kn`, `ca`, `km`, `lo`, `mk`, `ml`, `mt`, `mn`, `ne`, `nl`, `pa`, `ro`, `sr`, `si`, `sk`, `sl`, `sw`, `su`, `hr`, `et`, `da`, `fi`, `uz`, `pl`, `sv` - [#297](https://github.com/ilyhalight/voice-over-translation/pull/297))
- Улучшено форматирование ссылок на YouTube, теперь, язык должен определяться точнее ([#297](https://github.com/ilyhalight/voice-over-translation/pull/297))
- Добавлена поддержка нового встраиваемого плеера Bilibili (player.bilibili.com)
- vot-cli был перенесен в отдельный **[репозиторий](https://github.com/FOSWLY/vot-cli)**
- Удалена папка с web-server (уже давно не используется)
# 1.4.1-beta6
- Добавлена поддержка ProxyTok (протестировано на proxitok.pabloferreiro.es и proxitok.privacydev.net. Ограничения теже, что и для обычного TikTok)
- Добавлена поддержка TikTok
Работает только в видео типа: /@НИК/video/АЙДИ_ВИДЕО (не работает в ленте)
- Все селекторы сайтов добавленных в бета версиях были перенесены в selectors.js
- Исправлена ошибка из-за которой нельзя было выбрать языковую пару en-ru в mail.ru видео и rutube (#298)
# 1.4.1-beta5
- Добавлена поддержка Udemy.
**Если у курса нету субтитров на вашем языке, то перевод не будет выполнен.**
**Перевод очень далек от перевода в том же ютубе, но это всё равно лучше чем ничего.**
Работает, только, для добавленных курсов т.е. соответственно вам нужно быть авторизованным в аккаунт Udemy. Для работы перевода необходимо через меню расширения установить accessToken. Он необходим для получения ссылки на файлы субтитров и видео, без которых Яндекс не переводит данный сервис.
Гайд по установке accessToken: **[тык](https://github.com/ilyhalight/voice-over-translation/wiki/%5BRU%5D-Where-to-get-Udemy-Access-Token%3F)**
- Добавлена поддержка Coursera.
**Если у курса нету субтитров на вашем языке, то перевод не будет выполнен.**
**Перевод очень далек от перевода в том же ютубе, но это всё равно лучше чем ничего.**
Работает только в режиме прохождения курсов, т.е. вы должны авторизоваться в аккаунте перейти в "Мои курсы" и выбрать нужный курс.
- В protobuf обновлен тип для translationHelp
- Преобразование языка в формат "хх" перенесено в отдельную функцию langTo6391
P.S.: Перевод некоторых видео в Udemy и Coursera может не работать. Точно не знаю с чем связано, например перевод 1-го видео курса "Learning How To Learn" сегодня работает, а завтра уже возвращает "Сервис пока не поддерживается для перевода видео". В это же время перевод других видео курса работает исправно. Возможно, это происходит, если при запросе translationHelp не был указан (null) и Яндекс из-за этого записывает такие видео в кеш как "недоступные для перевода".
P.P.S.: В бете новые фразы есть только на английском языке т.к. все переводы берутся из стабильной ветки.
# 1.4.1-beta4
- Для OrangeMonkey добавлено уведомление о необходимости использовать Cloudflare-версию
- Исправлена ошибка из-за которой мог установиться не поддерживаемый язык (#292)
# 1.4.1-beta3
- Исправлена ошибка из-за которой язык видео мог определяться в формате отличном от xx
- Улучшена логика работы обновлений indexedDB
- Возвращен пункт меню "Проксировать полученное аудио"
# 1.4.1-beta2
- Исправлено изменение процента громкости видео при изменение громкости через слайдер ютуба
- Переработано получение и установка громкости видео
- Исправлен сброс установленной громкости звука при открытие нового видео
# 1.4.1-beta
- Локализация была разделена на отдельные файлы и перенесена на Github
# 1.4.0.3
- Исправлено обрезание первых 5 символов ошибки
# 1.4.0.2
- Исправлена работа перевода, если длина видео не была получена
- Исправлен двойной префикс в некоторых ошибках консоль логов
- Исправлена работа настроек в YouTube Embed после поломки в 1.4.0
- \*Добавлен protobuf для пинга стримов
- \*Обновлен protobuf для запроса перевода стримов
- \*Protobuf для проверки стрима на вайтлист был помечен как более неиспользуемый Яндексом (не зависимо от его ответа запрос на перевод стрима будет проходить)
`*` - означает что это изменение "на будущее"
# 1.4.0.1
- Исправлено появление "]" при возникновении ошибки
# 1.4.0
- Добавлена поддержка субтитров (От @MrSoczekXD в [#247](https://github.com/ilyhalight/voice-over-translation/pull/247))
- Добавлена подсветка слов в субтитрах (От @MrSoczekXD в [#247](https://github.com/ilyhalight/voice-over-translation/pull/247))
- Добавлена установка максимальной длинны субтитров (От @MrSoczekXD в [#247](https://github.com/ilyhalight/voice-over-translation/pull/247))
- Фикс громкости на ютубе (От @SashaXser в [#262](https://github.com/ilyhalight/voice-over-translation/pull/262))
- Добавлено сохранение языка, на который будет переводиться видео
- Были добавлены новые языки для перевода меню:
- Бенгальский
- Малайский
- Яванский
- Урду
- Персидский
- Индонезийский
- Добавлен ESLint для облегчения нахождения и исправления ошибок во время разработки
- Домен воркера был изменен на vot-new.toil-dump.workers.dev, дабы не нарушать работу у тех, кто пользуется старыми версиями расширения
- Некоторые улучшения связанные с структурой и запросами (От @MrSoczekXD в [#247](https://github.com/ilyhalight/voice-over-translation/pull/247))
# 1.3.6
- Добавлена поддержка bitchute.com
# 1.3.5
- Добавлен режим разработки для тестирования cloudflare версии: `npm run dev:cloudflare`
- Удалена функция для теста перевода (debug.translations)
- Так же, были добавлены новые языки для перевода меню:
- Португалький
- Чешский
- Хинди
- Арабский
- Корейский
- Японский
- Турецкий
- Вьетнамский
- Украинский
- Казахский
- Добавлена поддержка новых языков для TTS (языки, на которые будет выполнен перевод):
- Корейский
- Арабский
- Японский
- Бенгальский
- Португальский
- Чешский
- Маратхи
- Телугу
- Турецкий
- Малайский
- Вьетнамский
- Тамильский
- Яванский
- Урду
- Персидский
- Гуджарати
- Индонезийский
- Украинский
- Казахский
- Добавлена поддержка новых языков перевода:
- Корейский
- Арабский
- Японский
# 1.3.4
- Добавлена поддержка Видео Mail.ru Embedded (https://my.mail.ru/video/embed/VIDEO_ID)
- Немного доработано обновление базы данных, дабы не повторять один и тот же код
- Была переделана проверка языка через библиотеку на проверку через сайт
- "Блокировка перевода на русский язык" изменена на "Блокировка перевода на родной язык" (родный язык - язык браузера)
- Другие изменения смотрите в **Full Changelog**
# 1.3.3
- Возвращен отступ кнопки в 5rem
- Добавлены новые переводы в meta скрипта
- Элементы меню, теперь, правильно строятся, если имеют слишком короткие названия
- Теперь, в одной из ошибок, связанных с обновлением базы данных пишется домен текущего сайта, а не статический "youtube.com"
- availableFromLangs и availableToLangs заменены одной переменной availableLangs
- Создание списков доступных языков для перевода и языков видео приведены к единому стилю
- Добавлен метод строки format, который служит для форматирования строк перевода
- Расширение было полностью переведено на 7 доступных языков (Русский, Английский, Немецкий, Китайский, Испанский, Итальянский, Французский). Язык меню на данный момент выбирается на основе языка браузера - [ilyhalight/voice-over-translation#212](https://github.com/ilyhalight/voice-over-translation/pull/212)
# 1.3.2
- Исправлен баг из-за которого, если видео задетектилось как видео на русском языке, то оно имело неправильную языковую цепочку перевода: ru -> ru (должно быть: ru -> en)
- Добавлен экспериментальный детект языка видео с помощью выбранной аудио дорожки для YouTube
- Убрано обозначение, что функция доступна только на текущем сайте
- Добавлен пункт меню "Проксировать полученное аудио" (только для cloudflare-версии)
- Версия базы данных повышена до 2
- Добавлена логика смены версий базы данных для того, чтобы не нужно было вручную сбрасывать настройки расширения после введения новых функций, требующих обновления базы данных
- В cloudflare-воркер добавлен новый эндпоинт "/video-translation/audio-proxy" для проксирования аудио файла перевода
- Стандартный адрес cloudflare-воркера изменен на "vot.toil-dump.workers.dev"
# 1.3.1
- Исправлена работа для сайтов Piped
- Уменьшен отступ кнопки перевода от верхнего края видео
- Убрана ненужная проверка в регексе на фрагмент "/clip/" для Twitch (она не работало, потому что клипы на твиче имеют вид https://www.twitch.tv/КАНАЛ/clip/АЙДИ_КЛИПА)
- Добавлена поддержка Vimeo Direct Links (https://vimeo.com/ХХХ/ХХХ, если Яндекс сделают для них поддержку, то они будут работать, пока висим на "видео не доступно для перевода")
- Добавлена поддержка Twitch Clips (https://www.twitch.tv/NICKNAME/clip/)
- Добавлена поддержка Twitch Clips Embedded (https://clips.twitch.tv/embed)
- Добавлена поддержка VK Видео Embedded (https://vk.com/video_ext.php)
- Возвращена поддержка YouTube Embedded (https://www.youtube.com/embed/XXX)
- Добавлены минифицированные версии расширения (находятся в папке dist)
# 1.3.0
- Добавлено больше дебаг логов в режиме разработки
- Возвращена поддержка твича (из-за ошибки был отключен в 1.2.4)
- Исправлена работа в режиме Инкогнито (Firefox)
- Исправлено отображение ошибок, связанных с IndexedDB
- Добавлен немецкий язык
# 1.2.4 (by SashaXser)
- Отключен твич (возможно из-за ошибки)
- Некоторые другие изменения
- Переработано получение айди видео
- Переработано определение языка видео
- Улучшена проверка свойств для опций в меню выборки
- Добавлен Prettier
- Обновлены зависимости
# 1.2.3-Beta
- JQuery полностью убран - [ilyhalight/voice-over-translation#169](https://github.com/ilyhalight/voice-over-translation/pull/169)
- Добавлена возможность перевода Видео Mail.ru начинающихся с помощью /mail/
- Небольшие изменения в меню
- Добавлены все языки для озвучки
- Возвращена кнопка для m.youtube.com
# 1.2.2-Beta
- Добавлена поддержка перевода видео с эпизодами (bilibili [ilyhalight/voice-over-translation#160](https://github.com/ilyhalight/voice-over-translation/issues/160))
- Добавлена заготовка полей протобафа для перевода стримов (это не значит, что перевод стримов появится завтра, он может вообще не появится, но уже сейчас можно делать эксперименты с апи: проверять находится ли трансляция в вайтлисте (возможно, вайтлист выключен) и получать ссылки на переведенные отрезки (.m3u8))
- Теперь, по умолчанию перевод видео в Видео Mail.ru выполняется с русского языка на английский
- Принудительно установлен стиль "box-sizing: border-box" для дропдаунов, дабы на некоторых сайтах они не съезжали
# 1.2.1-Beta
- Добавлена поддержка видео mail.ru
- Исправлен визуальный баг с "белым текстом на белом фоне" в дропдаунах (blibli)
# 1.2.0-Beta
- Расширение частично переписано на чистый JavaScript (практически полностью отказался от JQuery)
- Добавлена поддержка bilibili.com (по умолчанию перевод выполняется с китайского)
- Починил работу кнопки при открытие первого видео с главной страницы ютуба (сломалась еще фиг знает когда)
- Теперь, по умолчанию перевод видео на rutube выполняется с русского языка на английский
- Немного переработал алгоритм для твиттера. Теперь, всё работает так же, как и для остальных сайтов, а не через 20 костылей
- Добавлен переключатель между языками видео и перевода (P.S.: нельзя выбрать Английский - Английский или Русский - Русский, а например Испанский - Английский вы сможете выбрать)
- "громкость оригинала" была везде переименована в "громкость видео"
- Увеличена длина слайдера в меню, теперь, он занимает всю длину (перфекционисты радуйтесь :))
- Добавлено отображение процента громкости до которой будет уменьшена громкость видео (стандартное значение громкости оригинала перенесено в раздел с конфигами, если хотите его изменить, ищите около комментария `// CONFIGURATION` переменную с названием `autoVolume`)
- Создание похожих элементов меню вынесено в отдельные функции
- Добавлены отдельные айдишники для элементов меню
- Поправлены некоторые сомнительные нейминги (например, нейминг в синхронизации громкости слайдеров)
- Исправлены ситуации, когда текст кнопки или иконки кнопки не меняли свой цвет
- z-index меню и кнопки увеличены до 100, дабы, всегда были поверх контента страницы (например, на bilibili их перекрывали субтитры (или что это))
- Исправлена ошибка из-за которой, даже, если был выключен автоперевод видео скрипт пытался получить айди видео при проигрывание видео
- Убрано несколько ненужных проверок
- Изменены правила автосборки, теперь, изменения в vot-cli будут игнорироваться
- Исправлены отступы в vot-cli/index.js
- Немного дополнен readme файл
# 1.1.3
- Добавлена поддержка clips.twitch.com
- Убрана лишняя переменная videoId при получение айди видео в VK
- Исправлено получение видео айди клипов для мобильной версии твич (и так работало, ну да ладно)
- Добавлена версия vot-cli написанная с помощью Python (vot-cli-py)
# 1.1.2.3
- Добавлена поддержка rutube embed
- Еще один рефакторинг от @SashaXse ([ilyhalight/voice-over-translation#142](https://github.com/ilyhalight/voice-over-translation/pull/142)
# 1.1.2.2
- Два эвента для кнопки перевода объединены в один
- Добавлено больше дебаг логов
- Испралена работа версии "cloudflare" на Линукс (возвращена установка translationPanding = false в калбеке к requestVideoTranslation)
# 1.1.2.1
- Исправлена работа в хроме после [ilyhalight/voice-over-translation#137](https://github.com/ilyhalight/voice-over-translation/pull/137)
# 1.1.2
- Добавлена поддержка Piped (протестировано только на piped.video)
- Исправлено выползание текста за края меню ([ilyhalight/voice-over-translation#126](https://github.com/ilyhalight/voice-over-translation/issues/126))
- Стандартная подложка слайдера смены громкости изменена на более яркую (сделано, чтобы у пользователей хромоподобных браузеров ее было лучше видно)
- Высота меню увеличена до 375 пикселей ([ilyhalight/voice-over-translation#132](https://github.com/ilyhalight/voice-over-translation/issues/132))
- Рефакторинг от @SashaXse ([ilyhalight/voice-over-translation#137](https://github.com/ilyhalight/voice-over-translation/pull/137))
# 1.1.1
- Задержка до повторного запроса немного уменьшена (70 -> 60)
- Добавлено отображение времени до окончания перевода
- Сделана заготовка под Facebook. В этом обновление не получилось его добавить из-за того, что Facebook в последний момент что-то обновили и всё сломалось (появился CSP из-за которого расширение не может загрузить аудио с сайта яндекса)
- Изменен конфиг дебага
- Добавлены дебаг логи
- Немного почищен скрипт отслеживающий изменение в айдишнике для ВК
- Починена работа переводчика при смене страницы в твиттере и ВК (получилось костыльно, ну да ладно)
- Починено отображение кнопки в твиттере при смене страницы
- Исправлено добавление кнопки для мобильного твича (классы устарели)
- Добавлена поддержка твич клипов
- Немного переработан Readme-файл
- Добавлена возможность перевода с русского на английский на YouTube
- Добавлен автодетект языка видео для Youtube
- В протобаф ответа добавлено новое поле "Оставшееся время ожидания" (время до получения перевода)
- В протобаф запроса добавлено новое поле "Требуемый язык перевода" (это язык на который видео будет переведено)
- Добавлена поддержка Rutube
- Изменена стандартная команда сборки. Теперь, команда `build` собирает сразу две версии, команда `build:default` собирает обычную версию, а команда `build:cloudflare` собирает версию для cloudflare
- Возвращены локализированные описания расширений
- Webpack-userscript обновлен до 3.2.2. Теперь, cloudflare версия нормально собирается
# 1.1.0
- Временно убраны английские названия плагинов из-за не совместимости с плагином WebpackUserscript (3.1.0)
- Теперь, vot-cloudflare.user.js и vot.user.js собираются из одного единого файла с помощью webpack, что убирает необходимость повторно писать один и тот же код. Готовые расширения перемещены в папку "dist" (расширения не сжаты)
# 1.1.0-pre
- Убрано немного мусора из кода
- Добавлена поддержка Twitter
# 1.0.9.9
- Добавлена проверка на то, является ли переводимое видео Прямой трансляцией (youtube.com)
- Добавлена проверка на то, является ли переводимое видео Премьерой (youtube.com)
- Добавлена проверка на длину видео (youtube.com)
- Исправлен перевод видео в VK
# 1.0.9.8
- Исправлено появление кнопки перевода для Youtube Mobile (m.youtube.com)
- Удалена кнопка переключения на новый дизайн для Youtube Mobile (m.youtube.com)
# 1.0.9.7
- Переработана синхронизация громкости перевода с громкостью видео (теперь, значения не будут привязываться друг к другу в соотношение 1:1, а будут совместно меняться при изменение одного из значений, например: перевод 95% --> 94% = видео 20% --> 19%)
- Длина менюшки расширения увеличена до 350 пикселей
- Добавлена стандартная опция, выставляющая громкость оригинала на 15% (по умолчанию включена, стандартный процент громкости можно поменять в коде расширения. За это отвечает переменная "defaultVideoVolume")
- Добавлено "живое" обновление значения громкости перевода. т.е, теперь, если вы включите перевод, а потом измените громкость перевода и перезапустите перевод, то громкость будет та, которую вы только что установили (ранее, громкость была та, которая была установлена до загрузки страницы и менялась, только, после перезагрузки страницы)
- Сделано, чтобы громкость видео возвращалась после отключения перевода к той, что была до включения перевода (#82)
- Возвращено, чтобы слайдер громкости оригинала появлялся только с включенным переводом
- Исправлены некоторые косяки в синхронизации громкости перевода с громкостью видео в версии расширения "VOT Cloudflare"
- Повторяющиеся действия при выключение перевода вынесены в отдельную функцию
- Удален некоторый дублирующийся код
# 1.0.9.6
- Теперь, слайдер громкости оригинала появляется, даже, если перевод выключен
- Теперь, слайдер громкости оригинала появляется и убирается простым нажатием на галочку
- Добавлена синхронизация слайдера громкости оригинала со слайдером громкости видео (пока только для YouTube (именно со слайдером громкости, а не с громкостью видео - сделано так из-за специфики ютуба)
- Добавлена опциональная синхронизация громкости перевода с громкостью видео (пока только для YouTube)
# 1.0.9.5
- Исправлена возможность случайно сбросить настройки расширения при включение видео
- Теперь, если не удалось перевести пишет ошибку полученную с сервера яндекса, а не статичный текст (#62)
# 1.0.9.4
- Добавлен перевод для 9GAG. Работает только на видео открытом в отдельной вкладке (видео для теста: https://9gag.com/gag/anzjZzn). При смене видео не воспроизводится аудио перевода (пока не разобрался как это исправить).
- Теперь, старая кнопка загруки первода удаляется при смене видео (twitch, vimeo)
- Добавлен перевод для Vimeo (видео для теста: https://vimeo.com/149640932)
- Уменьшено округление краев у кнопки загрузки
- Элементы абсолютного позиционирования перенесены в единый контейнер
# 1.0.9.3 (без изменений в основном скрипте)
- Добавлен VOT-CLI 1.0.0
# 1.0.9.3
- Добавлена поддержка Firemonkey в VOT Cloudflare
- Добавлено предупреждение о использование VOT с не совместимым расширением для юзерскриптов (Violentmonkey, FireMonkey, Greasemonkey, AdGuard)
- Добавлена поддержка смены видео на m.twitch.tv (Рекомендую использовать только совместно с автопереводом, ибо без него кнопка перевода требует 2-ого нажатия. Не знаю как это исправить :с))
- Добавлена кнопка загрузки файла перевода
- Исправлена ошибка из-за который при нажатие на элементы меню расширения воспроизводилось видео (Если вам не нравится это изменение - отпишите в отдельной issue, если многие будут против - верну)
- Исправлена ошибка из-за который при нажатие на слайдер внутри меню расширения воспроизводилось видео
- Уменьшено значение "анимации" первого открытия окна настроек расширения
- Добавлена частичная поддержка **[VK](https://vk.com/video)** (Рекомендую использовать только совместно с автопереводом, ибо без него кнопка перевода требует 2-ого нажатия. Не знаю как это исправить :с)
- Добавлена поддержка **[Invidious](https://github.com/iv-org/invidious)** (Добавлено для доменов yewtu.be, inv.vern.cc и других)
- Добавлена поддержка Twitch Player (player.twitch.tv)
- Добавлено округление числа в кастомном слайдере громкости (для чтобы не было чисел с множеством знаков после запятой)
- Добавлена поддержка Pornhub & Pornhub Embed
- Добавлена поддержка YouTube NoCookie (youtube-nocookie.com)
- Добавлена поддержка XVideos (Перевод получается супер странный, но ладно... + в хромоподобных браузерах не отображается картинка Алисы из-за ограничений ссылок со стороны сайта)
- Стили слайдера теперь применяются принудительно, независимо от стилей самого сайта
# 1.0.9.2
- Добавлена поддержка m.youtube.com (поддержка старого + нового дизайна, настройки для m.youtube.com не переносятся из настроек youtube.com)
- Фикс отображения кнопки перевода в Twitch Videos (для хромоподобных браузеров)
# 1.0.9.1
- Добавлена поддержка Twitch Videos & Twitch embed videos (m.twitch.tv)
- Добавлена поддержка Youtube Embed
- Функционал перевода вынесен в отдельную функцию
# 1.0.9
- Исправление issue #37
- Добавлен слайдер громкости оригинала
- Добавлена кнопка сброса настроек расширения
- Добавлено сохранение значения громкости перевода (Если громкость не сохраняется, попробуйте сбросить настройки расширения)
# 1.0.8
- Исправлено наложение запросов друг на друга при смене страницы или многократном нажатие на кнопку перевода
- Изменена иконка Алисы, переводчика и меню. Изменены отступы у кнопки меню
- Удален костыль для поддержки новых версий расширений-юзерскриптов
- Улучшена функция getVideoID (для работы с другими сервисами)
- Добавлен cursor:pointer для кнопки меню
- Убран user-select для кнопки (06.10.22 by riddle418)
- Добавлен cursor:pointer для кнопки перевода (06.10.22 by riddle418)
- Фикс расширения для оставшихся браузеров (06.10.22 by mynovelhost)
- Фикс расширения (04.10.22 by mynovelhost)
- Добавлен авторетрай перевода, если он имеет статус "Перевод займёт около минуты"
- Теперь, кнопка возвращается в начальное положение при автовоспроизведение видео
- Исправлено клонирование кнопки
# 1.0.7.1
- Теперь, при повреждение базы данных она автоматически пересоздается
- Везде, где были пропущены добавлены точки с запятой
- Добавлена частичная поддержка "Firemonkey" (функция перевода всё ещё не работает)
# 1.0.7-Fix
- Убрал появление ошибки "Ошибка загрузки или воспроизведения аудио"
# 1.0.7
- Фикс для расширений "Greasemonkey" (всё ещё не работает) и "UserScripts" (теперь работает)
- Добавлены все авторы, внесшие какой-либо вклад для плагина, в блок UserScript
- Добавлено мультиязычное описание и название плагина в блок UserScript
# 1.0.6
- Добавлена иконка расширения
- Плагина полностью переведен на русский (ранее часть сообщений была на английском)
- Версии плагина 1.0.5 и ниже больше не поддерживаются из-за обновленния стилей
- Убрана библиотека JQuery UI
- Переработан ползунок громкости (ранее он был сделан с помощью JQuery UI, но использовать целую библиотеку для 1 ползунка - это чересчур :) )
- Ползунок громкости перевода перенесен в дополнительное меню
- Добавлено дополнительное меню
- Переработана кнопка перевода
# 1.0.5.1 (thx, mynovelhost)
- Добавлен перевод с помощью API Яндекс
# 1.0.5
- Функционал отображения кнопки со стилем "ошибки" вынесен в отдельную функцию
- Фикс центрирования кнопки перевода при наличие большого текста
- Добавлена обработка ошибок запуска аудио
- Добавлено логирование успешной загрузки перевода в браузер
- Изменена нумерация версий в `vot.user.js`, теперь, они соответствуют версиям из этого чейндж-лога
# 1.0.4
- В конфиг добавлена настройка порта веб-сервера, настройка сохранения логов в файл, настройка показа дебаг логов (**"web-server/config/config.json**)
- Теперь, можно включить сохранение логов сервера в файлы (all.log (все логи), error.log(только ошибки))
- Изменен стиль показа логов в консоли
- Исправлен краш веб-сервера при закрытие Яндекс Браузера
- Добавлен стандартный аргумент запуска Яндекс Браузера "--no-sandbox" (нужен для работы в linux системах)
- Добавлена анимация появления и пропадания полосы громкости озвучки
- Другие мелкие исправления
# 1.0.3
- Добавлена регулировка громкости озвучки
- Исправлены стили ведущие на логотип Яндекс Алисы
- Удален дублирующийся tabindex у кнопки перевода
# 1.0.2
- Исправлен криво отображающийся "Чендж-лог"
- Перенес все используемые картинки в отдельную папку: **"img"**
- Изменил текст при возникновение ошибок
- Изменил внешний вид кнопки перевода, теперь, он более похож на оригинальную кнопку в Яндекс.Браузере
# 1.0.1
- Добавил скип рекламы при открытии видео в Яндекс.Браузере
- Добавил ариал-лейбл кнопке перевода
- При старте веб-сервера, теперь, автоматически запускается браузер
- Переделал анонимную функцию создания браузера в обычную и экспортнул её
- Сделал проверку на закрытие страницы, в случае ошибки, браузер вновь открывается и веб-сервер не падает
- Сделал несколько проверок-заглушек
- Перенес код фикса и веб-сервера с этой [проблемы](https://github.com/sodapng/voice-over-translation/issues/2#issuecomment-1001708367)
# 1.0.0
- Форкнул репозиторий [sodapng/voice-over-translation](https://github.com/sodapng/voice-over-translation)