Voice Over Translation

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

Voice Over Translation (aka VOT, Голосовой перевод видео, Спик фром май харт, Надмозг 2.0) — эпического масштаба костыль, возведенный в абсолют, представляющий собой юзерскрипт (расширение), призванный нести свет просвещения в темные массы Анонимусов, так и не осиливших изучение буржуйского наречия в школе. По сути своей является наглым, но благородным актом экспроприации главной (и, пожалуй, единственной годной) фичи Яндекс.Браузера — закадрового перевода видео нейросетями — с целью внедрения её в нормальные, православные браузеры вроде Firefox, Chrome и прочих хромоногих.

Суть[править]

В начале было Слово, и Слово было на английском. И увидел Яндекс, что это нехорошо для Рунета, ибо 95 % населения не могут отличить «London is the capital» от «Let me speak from my heart», и запилил нейросеть, способную на лету переводить и озвучивать видосы. Но, будучи корпорацией с амбициями захвата мира, они заперли эту фичу в своем анально огороженном браузере, надеясь, что хомячки массово мигрируют на их платформу.

Не тут-то было. Народные умельцы, вооружившись дебаггером, банкой энергетика и праведным гневом, расковыряли протоколы общения браузера с серверами, вытащили наружу кишки API и завернули это всё в удобный (местами) скрипт.

Суть работы VOT проста, как мычание, и сложна, как внутренний мир Битарда, одновременно. Скрипт перехватывает ссылку на видео, которое ты пытаешься посмотреть, формирует хитрый запрос, притворяясь Яндекс. Браузером (подменяя заголовки, User-Agent и прочие интимные подробности), и отправляет это дело на сервера Яндекса. Сервер, обманутый в лучших чувствах, думает, что с ним общается родное дитя, и радостно отдает обратно аудиодорожку с переводом. Скрипт ловит эту дорожку, синхронизирует её с видеорядом (иногда криво, но кто считает?) и вуаля — ты слышишь, как Илон Маск говорит голосом уставшего диктора с федерального канала.

История болезни[править]

Проект зародился в недрах GitHubа, когда некто sodapng решил, что эксклюзивность — это для Лохов, а коммунизм должен быть информационным. Первая версия была кривой, косой, держалась на синей изоленте и честном слове, но работала, вызывая бурный восторг у тех, кто не мог понять, о чем лопочет очередной индус в туториале по программированию.

Позже знамя подхватил ilyhalight и целая плеяда контрибьюторов, превратив поделку в монструозный комбайн, поддерживающий сотни сайтов и кучу настроек. История разработки напоминает бесконечную игру в кошки-мышки (или Специальную Олимпиаду). Яндекс меняет подписи HMAC — разработчики ломают их за вечер. Яндекс вводит токены авторизации — разработчики прикручивают вход через аккаунт. Яндекс банит запросы с левых IP — разработчики внедряют прокси-серверы и воркеры на Cloudflare. Это вечная битва брони и снаряда, где в роли снаряда выступает желание анона смотреть контент на халяву, а в роли брони — попытки Яндекса монетизировать свои вычислительные мощности.

Танцы с бубном[править]

Для работы сего чуда требуется Tampermonkey (или его аналоги типа Violentmonkey, но упаси вас Ктулху использовать Greasemonkey, ибо он мертв чуть более, чем полностью). Скрипт написан на TypeScript, что как бы намекает на серьезность намерений (а не на то, что это писали на коленке в «Блокноте»), и использует кучу зависимостей, от protobuf (ибо Яндекс общается с серверами на языке бинарных данных, а не на человеческом JSON) до Hls.js для проигрывания потокового аудио.

Самая мякотка заключается в обходе CORS (Cross-Origin Resource Sharing). Браузеры, заботясь о твоей безопасности (читай: мешая тебе жить), не дают скрипту с сайта youtube.com просто так взять и послать запрос на yandex.ru. Браузер считает это подозрительным и шлёт скрипт в пешее эротическое. Поэтому разработчикам пришлось городить огород из прокси-серверов. Твой запрос летит сначала на какой-нибудь vot-worker.toil.cc, там он переупаковывается, летит в Яндекс, получает ответ, и только потом возвращается к тебе. Если ты живешь в стране, где половина интернета забанена Роскомнадзором (ты знаешь, о какой стране речь), то тебе придется еще и включать режим проксирования всего и вся, иначе скрипт просто подавится ошибкой соединения.

Отдельного упоминания заслуживает алгоритм синхронизации губ (lipsync). Поскольку аудиодорожка генерируется отдельно, она может не совпадать по длительности с оригиналом. Скрипт пытается ускорять или замедлять оригинальное видео, чтобы перевод успевал за картинкой. Выглядит это иногда комично: спикер на экране начинает тараторить как Eminem, а потом внезапно замедляется, словно принял транквилизаторы, но зато смысл перевода сохраняется, и мозг не взрывается от диссонанса.

Что мы имеем с гуся[править]

Набор фич разросся до неприличия, превратив скрипт в операционную систему внутри браузера:

  • Перевод видео: Основная функция, ради которой всё затевалось. Работает на английском, французском, немецком, испанском, китайском, японском и еще куче языков, о существовании которых ты даже не подозревал.
  • Субтитры: Если ты эстет и любишь читать, скрипт может вытащить сгенерированные субтитры. Причем он умеет показывать их в формате JSON, VTT или SRT, да еще и с подсветкой слов, что полезно для изучающих язык (хотя зачем тебе учить язык, если есть этот скрипт, лол?).
  • Стримы: Да, оно умеет переводить прямые эфиры. С задержкой, с глюками, но умеет. Это позволяет смотреть презентации Apple или геймплей корейских киберкотлет в реальном времени с русским комментарием. Работает через магию HLS и молитвы разработчиков.
  • Громкость: Можно настроить так, чтобы при включении перевода оригинальная дорожка приглушалась до уровня шепота, а голос Алисы (или кого там Яндекс использует сейчас) гремел на всю квартиру, пугая кота и соседей.
  • Дизайн: Настройки позволяют двигать кнопку перевода по экрану, менять её цвет, размер и прозрачность, чтобы она не перекрывала важные части видео (например, субтитры или ватермарки порносайтов).
  • Скачивание: Для самых запасливых есть возможность скачать переведенную аудиодорожку в MP3. Полезно, если ты хочешь слушать лекции Гарварда в метро, где не ловит интернет, или если ты собираешь коллекцию озвучек для потомков.

География распространения[править]

Список поддерживаемых сайтов вызывает уважение и трепет. Конечно, король здесь — YouTube, ради которого всё и затевалось. Но аппетит приходит во время еды, и теперь VOT работает на:

  • Twitch — для любителей смотреть, как другие играют в игры.
  • Vimeo — для хипстеров и любителей «артхауса».
  • Twitter (ныне X, прости господи) — для любителей срачей в 280 символов.
  • TikTok — для деградирующих зумеров.
  • Udemy и Coursera — для тех, кто делает вид, что учится.
  • Pornhub, Xvideos, XHamster — да-да, анон, теперь ты можешь понимать сюжетные хитросплетения в фильмах для взрослых. «Я пришел чистить бассейн» теперь звучит на чистом русском!
  • VK и RuTube — даже туда добрались, хотя казалось бы.

Скрипт умеет выдирать видео даже из самых темных уголков интернета, включая прямые ссылки на .mp4 файлы, если ты вдруг решил посмотреть что-то с локального сервера.

Однако, не всё так гладко. Некоторые сайты (типа Udemy или Coursera) требуют авторизации или специальных токенов, потому что они жадные и прячут ссылки на видеофайлы глубоко в недрах своих плееров. Разработчикам приходится писать отдельные хелперы (модули) для каждого такого сайта, выковыривая ссылки на потоки клещами и такой-то матерью.

Проблемы и лулзы[править]

Жизнь пользователя VOT полна приключений и неожиданностей.

  • Самая частая ошибка — «Перевод займет около минуты». Эта фраза стала локальным мемом. Если ты видишь её, это может означать что угодно: от того, что видео действительно переводится впервые и нужно подождать, до того, что сервера Яндекса лежат, твой IP забанен, или скрипт просто сошел с ума. Иногда «минута» растягивается на вечность, заставляя пользователя обновлять страницу до посинения пальца или в ярости закрывать вкладку.
  • Другая классика жанра — «Ошибка загрузки аудио». Обычно случается, когда Яндекс меняет что-то в своем API, и старые методы перестают работать. В такие моменты GitHub репозиторий проекта наполняется сотнями issues от паникующих школьников с криками «ПАМАГИТЕ НИРАБОТАЕТ!!1». Разработчики, вздохнув, выпускают патч, и цикл повторяется.
  • Также стоит упомянуть CSP (Content Security Policy). Некоторые сайты настолько параноидальны, что запрещают загрузку любых сторонних ресурсов. Скрипту приходится извиваться ужом, используя `GM_xmlhttpRequest` (особая магия тамперманки) или прокси-серверы, чтобы протащить аудиодорожку через защиты браузера. Иногда это приводит к тому, что звук есть, но он рассинхронизирован, или кнопка перевода появляется, но нажать на неё нельзя, потому что она перекрыта невидимым div-ом с рекламой.

Война с Яндексом[править]

Отношения проекта с Яндексом можно охарактеризовать как «напряженный нейтралитет». С одной стороны, VOT явно паразитирует на ресурсах Яндекса, создавая нагрузку на их сервера (GPU греются, электричество тратится) и не принося ни копейки денег (рекламу-то в скрипте не покажешь). С другой стороны, это популяризирует технологии Яндекса и показывает их превосходство над Google Translate.

Яндекс периодически вставляет палки в колеса, вводя подписи запросов через `HMAC-SHA256` или требуя `u_token`, который выдается только авторизованным юзерам.

В версии 1.10.0 разработчики VOT пошли на поклон к Яндексу и внедрили официальную авторизацию через OAuth. Теперь, чтобы пользоваться «живыми» (качественными) голосами, нужно залогиниться в свой Яндекс-аккаунт через расширение. Это позволяет Яндексу хотя бы посчитать халявщиков по головам и, возможно, собрать биг дату для товарища Майора. Тем не менее, кошки-мышки продолжаются, и каждый новый релиз Я.Браузера вызывает у разработчиков VOT нервный тик и необходимость реверс-инжиниринга новых обфусцированных скриптов.

Заключение[править]

Перевод видео — это не привилегия, это право каждого анона! — (с) Джейсон Стетхем (в переводе VOT).

Mouth with tongue.png Ланги – non penis canina, тащемта — он может позволить реализовать многие вещи
НатуральныеАнглийский (Do You Speak ItMiddle EnglishSpeak English or DieАнглицизмы) • Латынь (таки не уд лаялки) • МунспикРунглишСуржик (рекурсия) • ТарашкевицаФранцузскийРусский матРусский лангПлановый языкЕнохианский языкКириллицаПшш-пшш курва-курваБесполезные буквы русского языкаЧеловеческий языкРосийский западнический лангРоссийская локализацияИстинная речьПокаместАмбаЗначимая буква ёРусско-английский суржикОшибка в окончании ться и тсяРОКК ЕБОЛВысоковольтныйAdaëvonЯрослав ЗолотарёвДоколеГомоцацуцаГомословаВторой государственный языкПлеоназмЗапятая перед тиреЎИспанский языкНауатль
ПлановыеLeetLolspeak • «Албанский» • «Боярский» • «Гопотятский» • «Йожиный» • «Онотолица» • «Сибирский» • ЭсперантоЯзыковая модельТоки понаПереименование фильмовУкраинская моваОткинутьсяВаСемиотикаИспитьВакуидадСинонимы к слову «Попа»ПрошаренныйУдарение в слове статуяБароннАбугидаΓλῶσσαχάοςВаларинDà Yǒuနစ်မှန်းШаломDrygioniHastaХаатAlastАмбахหยดРечекрякМон-бирманское письмоАнглийский матАгглютинативные языкиVoice Over Translation
ЖаргонЖаргонКомпьютерныйГеймерский (MMORPGMUDаков) • МестныйМузыкальныйОфенскийХулиганскийНибирийский луркоязБастардизацияКонтр-страйковская письменностьX-джобИзбегание приставки бес-Неприличные прозвищаРасстрельный список фактических ошибокЛуркоязМагическая функция языкаОшибки перевода (Elden Ring)Язык Р'льехаGherЧувашский языкDEPARTMENTALISEDФренУдаление гласныхЭпичная форма словаDeepL
ЛексемыБармаглотБатареяВуглускрГлокая куздраЖе не манж па сис журОбаполРосатыйWНелицеприятныйBattleFieldДолбодолбБлЪПринятьУдарение в слове ременьШпрехенфюрерЛиберальный новоязЭм дашБелорусский языкСинтаксическая конструкцияСосулиФиванский алфавитESLDuolingoГреческий языкЯзык птицРуахВерблядьМясо, просо, колесоАлфавит С'гау КаренБвеНеолуркоязБукваДвойственное числоБы
ПрочееGrammar nazi (Расстрельный список) • /fl/KekekeLorem ipsumQWERTYRussian Reversal • (sic!) • TEHT9Who are you to fucking lecture me?Алфавит Анны-СофииАлфавит ДвачаВ/наГрамматикалияЁИероглифКЛБКосил косой косой косойКуННеприличный жестПилитьПриставкиРукопись ВойничаСанскрипт иероглифамиТипографикаФаллический редукционизмФонетизмШнурки в стаканеЫЭвфемизмЪѢСистема ХепбёрнаЛатинизация кириллических языковИчуньская КомпанияРусский — это прилагательноеКсеноглоссияМногократное повторение словаГрадус неадекватаShitСмешное прочтение английских словПобеда на стартеАзбукаИскажения словСиндром Татсу МаруРазница между британским и американским английскимРпт’рВеликая ИграЛожить
ПереводAll your base are belong to usMisheard lyricsPeacedoorballSquirrel instituteБлджадБуллшитБылинноБыстро, решительно!Герцог мираГуртовщики мышиДвиньте вперёдКузинатраМакаку чешетМашинный переводНадмозгНет путиНогохуйцПокрытияСамка собакиСистема ПоливановаТранслитТяни-толкайОхладите траханьеLolcatПрокатчикиСибирска кыскаПытался прочитать, чуть не вызвал сатануPuzzle EnglishBallonTranslatorНубская песочницаРедиска (жаргонизм)Отвечать за базарКозломордыеКороль МикеллаКризис переводов современных видеоигрГениально
Дефекты речиAmiriteGARLOLI HAET PIZZAO RLY?NO WAIPretty cool guyP. S.PwnedS — как долларАвафА также линиябНОПНЯВонниГыДиалог с собойЕбал её рукаЛец ми спик фром май харт ин инглишМнуМурсикиНевыносимо отвратительные словаНяОпечаткаПаукиПиздоблядское мудоёбищеПозязяСиндром ТуреттаСловесный поносСомаСрукСцукоТься/тсяЧерномырдинШизофазияНетуИхнийТащемтаАлсоЁжАдикНа'йахКакое-тованиеАнтиКотострофаКотоклизмаВадукХаракБеспочвенноВсеЯлдиСкоммуниздилУтопатьАйЭвоN-словоДиграфПисонQîralКонтритумГоловеньОтрицаниеМуховорАстаАштАастаМетонимияYatmaka-chkaГорнийΚότοςХумаTasik
App.png Весьма полезная вещь, позволяет машинам работать с помощью коммандычей
МетаПрограммаDRM (SecuROMStarForceАналоговая дыра) • БагБот (Автоответчик) • Варез (Repack) • ГлюкГуйДонатКопирайт (By design) • ЛогНюкРут (Не работай под рутом) • Спортивное программированиеМегапиксельКомпьютерВерсия 2.0КодОбфускацияСкриншотДатамайнПлагинТекстовый файлБольшие данныеАльфа и бета-тестыТаймстампКэшШаблоныHello WorldНейросетиФайлИнсталляцияВидеоМощный сбой Microsoft 19 июля 2024 годаCrowdStrikeПроект GNUUserscriptDxvkVkd3dБратан хорош давай давай впередКонечный автоматLumenЗаступник (приложение)NeeUnreal MCPОптимизацияДрайверТестированиеТройная буферизацияQBitTorrentСинтезаторОбрыв загрузки файла на 99%Polycount.comГрок написал программу о себеВредоносTamTamАппликацио
ФичиБагрепорт12309BSODCookiesEmbrace, extend and extinguishFL StudioSheep.exeWinlogon.exeБубенЗащита от дуракаКостыльМашинный переводПасхальное яйцоСвистелки и перделкиСм. рис. 1Съешь ещё этих мягких французских булокTermuxGNU MetroИндусский кодНескучные обои • Сжатие (За сжатие ДжипегаШакалШкала) • Работает — не трогайРандомайзерPDF (Распознавание PDF) • Дело Google в ФАСЧат-ботXMLМакросКритическая ошибкаФреймворкСинонимайзерSourceТрёхмерное отслеживаниеТрассировка фотоновHZB OcclusionДаунгрейд RTX 4070TressFXАвтопереводчикVSCodiumThorium BrowserShovelwareФайл подкачкиTea Dating AdviceSingle-Page ApplicationАптаймSafenSoft SysWatchМолния (мессенджер)C SharpОбновлениеOneDriveChatGPT AtlasVoice Over Translation
ВредоносноеБотнетБрутфорсВинлокЗвонилкаКитайские пингвиныПиксель смертиТроянЧервь МоррисаBonziBuddyMediaGetBrowser hijackingTinderМиссис МажорУтечка буфера обменаWin 10 TweakerОпараш Mozilla FirefoxЯндекс.МузыкаКрэкерБезопасность через умолчаниеGrifter.aviTrojan.Winlock.DeathМиссис МажорСредаDirectStorageDriverpackГенератор случайных чиселDisable Core 0РомхакингDDrawCompatWingetCreateWinGetCoowonЯндекс МессенджерVCPkgSELinuxXfireYouTube Auto-ResumeTape OperatorBotFatherMTProtoSignalDoubleClickFixGiteeБотофермаMalwareCeno BrowserLagoFastYouareanidiot
КомпанииApple / Apple (AppleScript) • GoogleMicrosoftSAPЯндексExiled Exchange 2BraveAdNauseamСкурвление FirefoxCafe BazaarAMD FEMFXPPSSPPАвтохукQuick machine recoveryПутинский мессенджер MAXBypassNROWizTreeJTubeGallium NineFalconRu-WireGuardМобильное приложениеWebRenderСмс-бомберInstaller-SHProton GEProcess LassoParkControlDolby AccessDevToolsDxWrapperБойкот мессенджера MaxFirejailLenzaБезопасность мессенджера MAXЦифровое гетто ГабенаQuasarRATGame MakerБрайан ЛандукСтарые форматы видеофайловMAX в школахdom.storage.default_quotaVirtualBoxArdourFlutter
ЛюдиВеб-мастерLovinGODБалмерГейтсГенерал ФейлорДжобсМитникПоттерингде РаадтСпольскиСтоллманТорвальдсШахиджанянAche666Марк ЦукербергЕвгений ПоповДенис КумпонМассовая компьютерная безграмотностьKomet ClientРеверс-инжинирингКроссплатформенностьDKMSАмигоAURWhiteMAX
Команды^H^WAlt+F4Ctrl+Alt+Delman/me/quitrm -rf
Internet2.png Великая сеть, которая переменила течения мира
Это интернет, деткаИнтернетыДаркнетУведомления в браузереВеб-скрейпингWWWПросмотр стрима в фонеWeb ArchiveИнфоповодОткрытый проксиСайтБраузеркаБугагашечкиДейтингЗаработокИдентификация пользователейИмиджбордаИмиджхостингИнтернет-магазинИнтернет-сервисыПокровитель интернетовКаталог сайтовАссоциация блогеров и агентствОлдфагЧебурнетАнкетаАватарИзоляция российских сайтовВидеохостингТильтGoogle дуракИнфобизнесменStalinism.ruРеестр запрещённых сайтовФайлообменникФотобанкХакеры, крекеры, спамы, кукиЗакат эпохи анонимусаТроллингВеб 3.0Интернет-энциклопедияСтриминговый сервисБлокировщики рекламыВеб-камераИнтернет-знаменитостьGoogle ChromeOperaMozilla FirefoxSafariFirefoxHttpHTTPSКритерий ХомакаРейтингИИ уничтожит TikTok, Instagram и OnlyFansСлопRGBOneDriveВсемирная атака на ИнтернетSignal упал во время падения AmazonChatGPT AtlasОшибка 403R:Anon ЧатДефейсингTimewebУничтожение ИнтернетаКиберпандемияБиометрия хуже пароляПодтверждение возрастаVLESSПодтверждение возраста как исполнение пророчеств про начертание ЗверяГеолокация в Твиттере (X)ВконтактеАнонимус не забываетРазновидности VPNБлокировка соцсетей для детейБелый списокVoice Over Translation
ИнтересноеПеревод в онлайнОблачное хранилище404 ошибкаДвухфакторная авторизацияВикипедияЭлектронная почтаРунетX (ранее Твиттер)HTML5Moswar.ruRu-CenterCerberxБизнес 18+ПИОННенавистьПолитика предотвращения распространения ватной чумыЭджлордВидеоПанорамное видео 360Нейтралитет в информационной войнеПервый поток влогеров рунетаЛысый из BrazzersЛагиНиколай ДуровОпараш ДуроваGoodbyeDPIАвтопереводчикКтотут.рфИнформацияМаносфераБесплатный хостингNginxSearxПолитическое ФГМТеперь мы — это медиаUserscriptMemojiМегасталинCulturalVibesПессимизация ИИХейтвотчингРечной крабFurAffinityOurworldoftextИнтернет-цензура в ГерманииСкроллингХорошие SEOшникиОТРЯД САСА – ОСПАТонилайфШизоидная деградация интернетаMeek-clientПоисковикИстория одного разумистаЛешие в интернетеDuckDuckGoКлоудфаерПутин приказал МВД цензурировать интернетСертификатDNS
ТерминыVPNПрокси-сервер (SOCKS-прокси) • Управление репутацией404ADSLDDoSFAQGPONI2PIPv6localhostMediaGetNO CARRIERSEOTorTOSViaWi-FiАккаунтБанБотБотнетВиртуалВордфильтрГолосование ногамиДиалапДомашняя страницаДорвейИнвайтКликбейтКомментКомьюнитиКикКириллические доменыЛесенкаЛинкЛогЛокалкаМемНикОфлайнОффтопикПисьма счастьяПоисковая бомбаПост (Некропост) • ПремодерацияПруфлинкРерайтингСабжСимпафкаСиндром вахтёраСкриншотСмайлСпамСпойлерТрафикТредТроянФлудФорумХотлинкингЭто вашеЮзерпикАнонимностьШок-сайтыПингИКСUser-AgentБраузерWhoisURLДесинкРазметка реддита🤡Перевод в онлайнChat Control.mdБлокировка СтарлинкаTAS-IXСириятелекомKyberQUICПостквантовая криптографияВебсокетSSLWebRTCВиртуальный серверВечная блокировкаGoDaddyАмигоCommand & Control
ПонятияЦифровая некромантияЗаднеприводная каптчаЭффект АстольфоКвантовый интернетИнформационный вирусОнлайнЛайкСторисХештегPunycodeЧастный сайтПоддерживатьИнтернет-проектФоркСамосбор (проект)Короткие доменыПиксельный ПатриотизмСтирание личной историиБотофермаЗастолблениеЗасираниеDeep TikTokИстория браузераНижний интернетИнторанетФидонетFirstVDSОбрыв загрузки файла на 99%Блокировка Cloudflare в РФПоисковый экстремизм1.1.1.1Запрет Старлинка в РоссииСкриншотная крысаЗапрет VPN на ЮтубеКотовая рыбаUztelecomCDNКраудфандингАтака боторабкоровКубтелекомУдаление перепискиФишки.нетЗухельВебодизайнГипертекстИИ-боты долбят сайтыМусорные ИИ-статьиЗамечательРаскруткаInternet.bsREG.RUПолянорусь
МетаВеб 2, или некоторые говорят Веб 2.0Будущее сети