Смотреть видео с ноутбука на телевизоре без Chromecast или AirPlay — та ещё головная боль. Обычная трансляция экрана тормозит и режет качество. Разработчик под ником stupside создал утилиту Castor, которая решает эту задачу иначе — гонит на телевизор настоящий видеопоток в полном качестве, прямо из терминала.
Всё работает так: Castor запускает headless Chrome со случайным отпечатком браузера и скриптами, прячущими автоматизацию. Через Chrome DevTools Protocol он перехватывает весь сетевой трафик, находит видеопоток и выполняет цепочку действий: кликает по странице, ныряет в самый большой iframe, решает Cloudflare Turnstile, если вылез, и кликает ещё раз на всякий случай. Метод срабатывает на большинстве стриминговых сайтов, но против серьёзной защиты ботов не гарантирует успеха.
Утилите нужны установленные Chrome/Chromium, ffmpeg и ffprobe. Лучше ставить нативный бинар — так она видит телевизор в локальной сети. Docker тоже можно, но только на Linux-хосте. На macOS или Windows через Docker Desktop контейнер оказывается в изолированной подсети и телевизор не находит — --network host там просто игнорируется. Хак с Linux-виртуалкой на мосту (например, Lima + socket_vmnet) решит проблему, но проще запустить нативный бинар.
Castor дружит с любым телевизором или плеером, поддерживающим DLNA/UPnP MediaRenderer:1. Список внушительный: Samsung, LG, Sony Bravia, Panasonic Viera, Philips, Hisense, TCL, VIZIO, Sharp. Плюс софтовые плееры вроде Kodi, VLC и Plex. Чтобы найти устройство в сети, достаточно команды castor scan.
Настроить просто. В текущей папке нужен файл config.yaml — достаточно указать имя телевизора (из результатов scan) и список источников. Дальше можно кидать на телевизор фильм по IMDB/TMDB-идентификатору одной командой castor cast movie tt12300742. Есть и интерактивный режим с поиском по базе TMDB — он показывает постеры, метаданные, даёт копаться в сериалах и эпизодах. Для этого понадобится бесплатный ключ API TMDB. Поддерживается и кастинг напрямую по URL плейлиста (.m3u8) или видео с любой веб-страницы.
Субтитры можно вшить прямо в видео — Castor умеет генерировать их на лету через whisper.cpp (модель ~75 МБ скачивается автоматически). Функция выключена по умолчанию, включается в конфиге.
Castor не хранит видео и не поставляет контент — он только проксирует поток на телевизор. Какие сайты использовать и в рамках закона ли это, пользователь решает сам.