01
Перехват HLS-потока
Расширение слушает сетевые запросы браузера. Когда плеер загружает плейлист субтитров (.m3u8), расширение запоминает URL и скачивает все .vtt-сегменты через background service worker — это обходит CORS-ограничения.
02
Склейка сегментов
HLS-плеер разбивает субтитры на фрагменты по 5–10 секунд. Расширение скачивает их все и склеивает в один текст, убирая дубликаты на стыках.
03
Батчи на перевод
Текст разбивается на порции по 100 строк и отправляется в AI-модель. Первый батч — 50 строк, чтобы субтитры появились быстрее. Каждая порция переводится с сохранением нумерации и контекста.
04
Кеширование
Готовый перевод сохраняется локально и на сервере. При повторном просмотре субтитры появляются мгновенно. Лучшая модель побеждает: перевод Opus заменяет Sonnet.
05
Рендер поверх видео
Субтитры отображаются поверх видео в реальном времени через requestAnimationFrame. Оригинальные субтитры плеера скрываются. Поддерживаются двойные субтитры (оригинал + перевод) и подстройка тайминга.