Инструменты пользователя

Инструменты сайта


projects:chrome:cast_tab_keeper

Это старая версия документа!


Cast Tab Keeper

Cast Tab Keeper — расширение для браузеров на базе Chromium (Chrome, Edge, Brave, Vivaldi и др.), которое возвращает возможность транслировать именно вкладку, а не только медиафайл.

Оно устраняет поведение, когда браузер перехватывает YouTube- или медиастраницы и отправляет на Chromecast/телевизор только сам видеофайл, блокируя полное зеркалирование вкладки.

cast_tab_keeper.zip

🔹 Установка

Распаковать в каталог назначения

🔹 Основные функции

Блокировка Cast SDK на выбранных сайтах. Если сайт в списке заблокирован — Chromecast видит поток как «tab mirroring» (полное зеркало вкладки). Если сайт разрешён — работает стандартное «smart cast» (браузер выступает пультом, а устройство само проигрывает контент).

Keep-alive (экспериментально) для трансляции Решает проблему, когда при статичной картинке поток «засыпает», и при возобновлении движения телевизор отстаёт на минуты. Расширение вставляет невидимый «пиксель-триггер» (1×1 px с микроскопическим изменением прозрачности), чтобы поток всегда обновлялся.

Светлый интерфейс (в стиле системных настроек).

🔹 Интерфейс

Popup (быстрый доступ)

Отображает текущий сайт и его статус (разрешён / заблокирован / отсутствует в списке).

Кнопки:

Allow here — добавить сайт и разрешить нативный Cast.

Block here — добавить сайт и блокировать Cast SDK (будет использоваться tab mirroring).

Remove — удалить сайт из каталога.

Options… — открыть страницу расширенных настроек.

Глобальный чекбокс Keep-alive (global) — позволяет быстро включить/выключить механизм удержания трансляции.

Options Page (полные настройки)

Управление каталогом сайтов (добавление, удаление, импорт/экспорт списка).

Быстрый пресет для YouTube (все основные домены).

Счётчик количества сайтов в каталоге.

Темы (Blue / Green / Red).

Управление Keep-alive:

включение/выключение,

интервал обновления (120–2000 мс),

выбор угла для «пикселя» (4 варианта).

🔹 Техническая реализация

Manifest V3 (совместим с актуальными Chrome и Edge).

Content script (keepalive.js) добавляет невидимый 1×1 элемент и переключает его прозрачность.

DeclarativeNetRequest — фильтрует запросы Cast SDK, подменяя логику.

Storage sync — хранение списка сайтов, темы и параметров keep-alive между браузерами (если включена синхронизация).

UI — HTML+CSS с переменными для кастомизации цветов.

🔹 Преимущества

Позволяет использовать телевизор как полноценный дополнительный монитор.

Работает на всех Chromium-браузерах (Chrome, Edge, Brave, Vivaldi, Opera).

Можно гибко выбирать:

для видео (аниме, фильмы, стримы) — tab mirroring,

для музыки (YouTube Music, радио) — нативный Cast.

Решает проблему «минутной задержки» при паузе/статике.

🔹 Ограничения

Расширение работает только в Chromium-браузерах. В Firefox API отличаются.

При публикации в Chrome Web Store может быть отклонено, если Google сочтёт вмешательством в Cast SDK. Для личного использования ограничений нет.

Для работы с file:-страницами нужно включить в chrome:extensions пункт «Allow access to file URLs».

Примечание

Проблема некорректной трансляции вкладок связана не с браузером, а с подгружаемым сайтом внешним скриптом Cast SDK:

https://www.gstatic.com/cv/js/sender/v1/cast_sender.js

Этот скрипт меняет поведение Chrome/Edge: вместо зеркалирования вкладки начинает работать прямой Cast API.

Поэтому решение можно реализовать двумя способами:

Простое — блокировать загрузку cast_sender.js (через firewall, hosts или правила браузера). Тогда всегда будет tab mirroring.

Расширенное — использовать расширение Cast Tab Keeper, которое:

даёт интерфейс для гибкого управления (разные сайты — разные режимы),

имеет keep-alive, чтобы трансляция не «засыпала» на статике,

позволяет быстро управлять через popup.


Личный проект. У меня работает, гарантии не прилагаются 😏.
💠 Поддержать на Boosty

2025/04/12 17:10 ·
projects/chrome/cast_tab_keeper.1755932560.txt.gz · Последнее изменение:

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution 4.0 International
CC Attribution 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki