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}"
n```

### 投射方法

使用者可以使用幾種不同的指令來投射內容:

- **互動式瀏覽器**: 執行 `castor cast` 並搭配 TMDB API key,允許使用者透過 TUI (Terminal User Interface) 搜尋電影和集數。
- **網頁投射**: `castor cast player <URL>` 從特定網頁提取影片。
- **ID-based 投射**: `castor cast movie <IMDB/TMDB_ID>` 透過配置的代理伺服器解析內容。
- **直接 URL 投射**: `castor cast url <URL>` 直接投射原始串流 URL。

## 社群洞察與考量

Hacker News 上的社群討論強調了關於該工具功能的幾項技術與倫理考量:

- **機器人偵測**: 一些使用者對 Castor 繞過 Cloudflare Turnstile 的難易度提出了疑問,指出模擬點擊核取方塊可能比預期中更簡單。
- **法律與倫理使用**: 工具作者明確表示 Castor 不託管任何內容,且是一個通用型的投射工具。使用者有責任確保其行為符合法律以及其所指向的來源的使用條款。
- **介面**: 一些使用者建議,電視原生介面會是比基於終端機的控制系統更直覺的替代方案。

Sources