# 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 "ленивой" загрузки субтитров
До При первом нажатии субтитры загружаются в фоновом режиме. Единственное, что об этом показывает - это иконка загрузки в кнопке перевода. После того, как субтитры от Яндекса были загружены появляется меню со списком субтитров. before loading subtitles
После При первом нажатии субтитры загружаются в фоновом режиме, но меню со списком субтитров появляется мгновенно. Благодаря этому вы можете сразу выбрать уже существующие субтитры от сайта, а не ждать для этого завершения загрузки субтитров от Яндекса. Для индикации загрузки субтитров от Яндекса добавлен лоадер в самом низу модального окна. after loading subtitles
- Убран сломанный 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) ![Image](https://github.com/user-attachments/assets/e7eac11e-b84d-455f-9fe3-53ba5067fd3a) - Переработано отображение информации в мини-версии кнопки (когда кнопка перевода находится в левой или в правой части плеера) и о недоступных функциях в меню расширения (например, если браузер не поддерживает WebAudio) ![Image](https://github.com/user-attachments/assets/eaa350ad-8257-44b1-a0a0-8b666e4dc0fd) ![Image](https://github.com/user-attachments/assets/d6a7c15f-09b4-4e3d-9492-729cbb247294) ![Image](https://github.com/user-attachments/assets/a329a507-c029-46b8-b1cc-7659623cb5bf) - Добавлена поддержка отображения кнопки перевода на последнем 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)