Castor: 将网页视频实时投屏至智能电视

Castor: 将网页视频实时投屏至智能电视

Castor 是一款基于终端的实用程序,旨在将任意网页视频投屏到智能电视,而无需 Chromecast 或 AirPlay。它的工作原理是从网页中提取原始视频流,针对目标设备进行转码,并实时流式传输到电视上。

核心功能与能力

Castor 提供了一个完整的流水线,用于将网页内容移动到电视屏幕上,绕过了标准屏幕镜像或受限投屏应用的局限性。

流提取与自动化

Castor 使用带有随机指纹和隐身脚本的 headless Chrome 实例来绕过机器人检测。它通过 Chrome DevTools Protocol 监控网络流量,以捕获实际的视频流 URL。为了确保流被成功捕获,该工具执行了一套自动化操作流水线:进入最大的 iframe,解决 Cloudflare Turnstile 挑战,并在必要时模拟点击作为备选方案。

实时转码与投屏

一旦捕获到流,Castor 会使用 ffmpegffprobe 进行实时视频转码,以确保与目标电视支持的格式兼容。这使得它能够投屏全画质视频,而不是镜像屏幕,从而避免了与屏幕镜像相关的分辨率下降和延迟问题。

字幕集成

Castor 包含一个可选功能,可以将自动生成的字幕烧录到视频流中。这是通过集成 whisper.cpp 绑定实现的,该绑定利用一个小巧的(约 75 MB)模型来实时生成字幕。

支持的硬件与兼容性

DLNA/UPnP 支持

Castor 主要针对 DLNA/UPnP MediaRenderer:1 配置文件的设备进行设计。这涵盖了过去十年中销售的大多数智能电视,包括 Samsung、LG、Sony Bravia、Panasonic Viera、Philips、Hisense、TCL、VIZIO 和 Sharp 等品牌。它还支持 Kodi、VLC 和 Plex 等网络播放器。

Chromecast 支持

目前已实现对 Chromecast 的支持,但仍处于实验阶段且未经测试。

安装与设置

原生二进制文件(推荐)

为了获得最佳的网络发现能力,建议使用原生二进制文件。它要求系统 PATH 中已安装 Chrome/Chromium、ffmpegffprobe

  • macOS: 通过 Homebrew 使用 brew install --cask stupside/tap/castor 进行安装。
  • 从源码构建: 需要 Go 1.26+ 和 cmake。用户在构建 castor 二进制文件之前必须先构建 libwhisper.a

Docker 部署

Docker 是 Linux 主机的可选替代方案。由于设备发现依赖于 SSDP multicast,容器必须使用 --network host 模式运行。

警告:macOS 和 Windows 上的 Docker Desktop 不支持允许局域网发现的 --network host 模式。这些平台的用户必须使用原生二进制文件。

使用与配置

快速入门

Castor 需要一个 config.yaml 文件来定义目标设备和视频源。一个最小化配置如下:

device:
  name: "Living Room TV"
  type: dlna

sources:
  - proxies: ["https://vidsrc-embed.ru"]
    templates:
      movie: "/embed/movie/{itemID}"
      episode: "/embed/tv/{itemID}/{season}-{episode}"

投屏方法

用户可以使用几种不同的命令进行投屏:

  • 交互式浏览器: 运行 castor cast 并配合 TMDB API key,允许用户通过 TUI (Terminal User Interface) 搜索电影和剧集。
  • 网页投屏: castor cast player <URL> 从特定网页提取视频。
  • 基于 ID 的投屏: castor cast movie <IMDB/TMDB_ID> 通过配置的代理进行内容解析。
  • 直接 URL 投屏: castor cast url <URL> 直接投屏原始流 URL。

社区洞察与考量

Hacker News 上的社区讨论强调了关于该工具功能的几项技术和伦理考量:

  • Bot 检测: 一些用户质疑 Castor 绕过 Cloudflare Turnstile 的简易程度,指出模拟点击复选框可能比预想的更简单。
  • 法律与伦理使用: 该工具的作者明确表示,Castor 不托管任何内容,且是一个通用目的的投屏工具。用户有责任确保其行为符合法律以及所指向的视频源的使用条款。
  • 界面: 一些用户建议,电视原生界面会是比基于终端的控制系统更直觉的替代方案。

Sources