Castor: 即時網頁影片投射至智慧電視
Castor: 即時網頁影片投射至智慧電視
Castor 是一款基於終端機的工具,旨在將任意網頁影片投射到智慧電視,而無需 Chromecast 或 AirPlay。它的工作原理是從網頁中提取原始影片串流,針對目標裝置進行轉碼,並即時串流到電視上。
主要功能與能力
Castor 提供了一個完整的流程,將網頁內容移至電視螢幕,繞過標準螢幕鏡像或受限投射應用程式的限制。
串流提取與自動化
Castor 使用具有隨機指紋和隱身腳本的 headless Chrome 實例來繞過機器人偵測。它透過 Chrome DevTools Protocol 監控網路流量,以擷取實際的影片串流 URL。為了確保串流被擷取,該工具執行自動化動作流程:進入最大的 iframe,解決 Cloudflare Turnstile 挑戰,並在必要時模擬點擊作為備案。
即時轉碼與投射
一旦擷取到串流,Castor 會使用 ffmpeg 和 ffprobe 即時轉碼影片,以確保與目標電視支援的格式相容。這使得它能夠投射全畫質影片,而非鏡像螢幕,從而避免了與螢幕鏡像相關的解析度下降和延遲問題。
字幕整合
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、ffmpeg 和 ffprobe。
- 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 不託管任何內容,且是一個通用型的投射工具。使用者有責任確保其行為符合法律以及其所指向的來源的使用條款。
- **介面**: 一些使用者建議,電視原生介面會是比基於終端機的控制系統更直覺的替代方案。