Sobre o projeto

Castor é um utilitário de linha de comando baseado em Go que transforma qualquer página web com vídeo incorporado em um stream transmissível para sua TV. Diferente de espelhamento de tela, ele extrai o stream de mídia real, transcodifica para corresponder às capacidades do seu display e o envia em tempo real—preservando qualidade em vez de comprimir uma captura de tela. Ele funciona iniciando uma instância headless do Chrome, monitorando o tráfego de rede através do Chrome DevTools Protocol e executando um pipeline de ações automatizadas: clicando na página, navegando para o maior iframe e clicando novamente como fallback para acionar a reprodução. Essa abordagem funciona em páginas que permitem reprodução automatizada, mas pode não ter sucesso em todos os lugares. Os protocolos de transmissão suportados incluem DLNA/UPnP (amplamente compatível com TVs Samsung, LG, Sony, Panasonic, Philips, Hisense, TCL, VIZIO, Sharp, além de players como Kodi, VLC e Plex), Chromecast (experimental) e Roku (via um canal sideloaded usando o External Control Protocol da Roku). A ferramenta fornece tanto uma interface de comando direta quanto um navegador TUI interativo (`castor cast`). Para este último, uma chave de API TMDB permite pesquisar títulos, que são então resolvidos contra fontes configuradas pelo usuário. Modelos de fonte permitem que usuários conectem qualquer serviço de vídeo incorporável que estejam autorizados a usar. Recursos adicionais incluem legendas transcritas automaticamente queimadas no vídeo usando Whisper, limitação de resolução via `max_height` e modo de entrega configurável (relay vs. device-fetch). Transcodificação de hardware via VA-API em Intel é suportada quando executado em Docker com passagem de GPU. A instalação está disponível via Homebrew no macOS, como imagem Docker pré-construída (`ghcr.io/stupside/castor`) ou compilada a partir do código-fonte com Go 1.26+. Dependências necessárias são Chrome/Chromium, ffmpeg 7.1+ e ffprobe 7.1+. O projeto é licenciado sob MIT e explicitamente isenta-se de lidar com DRM ou distribuição de conteúdo protegido por direitos autorais—ele transmite apenas o que o usuário aponta para ele.