Castor: スマートTVへのリアルタイムWebビデオキャスティング

Castor: スマートTVへのリアルタイムWebビデオキャスティング

Castorは、ChromecastやAirPlayを必要とせずに、任意のWebビデオをスマートTVにキャストするために設計されたターミナルベースのユーティリティです。Webページから生のビデオストリームを抽出し、ターゲットデバイス向けにトランスコードして、TVにリアルタイムでストリーミングします。

主な機能と能力

Castorは、標準的な画面ミラーリングや制限されたキャスティングアプリの制限を回避し、Webコンテンツをテレビ画面に移動するための包括的なパイプラインを提供します。

ストリーム抽出と自動化

Castorは、ボット検知を回避するために、ランダム化されたフィンガープリントとステルススクリプトを備えたヘッドレスChromeインスタンスを使用します。Chrome DevTools Protocolを介してネットワークトラフィックを監視し、実際のビデオストリームURLをキャプチャします。ストリームを確実にキャプチャするために、このツールは自動化されたアクションパイプラインを実行します:最大のiframeへの移動、Cloudflare Turnstileの課題の解決、およびフォールバックとしてのクリックのシミュレーション。

リアルタイム・トランスコーディングとキャスティング

ストリームがキャプチャされると、Castorはffmpegffprobeを使用してリアルタイムでビデオをトランスコードし、ターゲットTVがサポートする形式との互換性を確保します。これにより、ミラーリングされた画面ではなくフル品質のビデオをキャストすることができ、画面ミラーリングに伴う解像度の低下やラグを回避できます。

字幕の統合

Castorには、自動生成された字幕をビデオストリームに焼き付けるオプション機能が含まれています。これは、whisper.cppとの統合を通じて実現され、小さな(約75 MB)モデルを使用してリアルタイムでキャプションを生成します。

サポートされているハードウェアと互換性

DLNA/UPnP サポート

Castorは、主にDLNA/UPnP MediaRenderer:1 プロファイルデバイス向けに設計されています。これは、Samsung、LG、Sony Bravia、Panasonic Viera、Philips、Hisense、TCL、VIZIO、およびSharpを含む、過去10年間に販売されたスマートTVの大部分をカバーしています。また、Kodi、VLC、およびPlexのようなネットワークプレーヤーもサポートしています。

Chromecast サポート

Chromecastのサポートは現在実装されていますが、実験的であり、テストされていません。

インストールとセットアップ

ネイティブバイナリ(推奨)

最適なネットワーク検出のために、ネイティブバイナリが推奨されます。システムPATHにChrome/Chromium、ffmpeg、およびffprobeがインストールされている必要があります。

  • macOS: Homebrewを使用してbrew install --cask stupside/tap/castorでインストールします。
  • From Source: Go 1.26+とcmakeが必要です。ユーザーはcastorバイナリをビルドする前にlibwhisper.aをビルドする必要があります。

Docker デプロイメント

Dockerは、Linuxホスト向けのオプションの代替手段です。デバイスの検出はSSDP multicastに依存しているため、コンテナは--network hostで実行する必要があります。

警告: macOSとWindows上のDocker Desktopは、LAN検出を可能にする方法で--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}"

キャスティング方法

ユーザーは、いくつかの異なるコマンドを使用してコンテンツをキャストできます:

  • Interactive Browser: castor castをTMDB APIキーと共に実行すると、ユーザーはTUI (Terminal User Interface)を介して映画やエピソードを検索できます。
  • Web Page Casting: castor cast player <URL>は、特定のWebページからビデオを抽出します。
  • ID-based Casting: castor cast movie <IMDB/TMDB_ID>は、設定されたプロキシを介してコンテンツを解決します。
  • Direct URL Casting: castor cast url <URL>は、生のストリームURLを直接キャストします。

コミュニティの洞察と検討事項

Hacker Newsでのコミュニティのディスカッションは、ツールの機能に関するいくつかの技術的および倫理的な検討事項をハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイスティング、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、はい、はい、はい、はい、はい、はい、

  • Bot Detection: CastorがCloudflare Turnstileを回避する容易さについて、チェックマークのクリックをシミュレートすることは予想以上に簡単であると指摘するユーザーがいました。

  • Legal and Ethical Use: ツールの作者は、明示的にCastorはコンテンツをホストしておらず、汎用的なキャスティングツールであると述べています。ユーザーは、ツールが指している先が法律や利用規約に適合しているかを確認する責任があります。

  • Interface: 一部のユーザーは、ターミナルベースの制御システムよりも、TV-nativeなインターフェースの方が直イント、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ直、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、ハイ扱い出し、Gar_id, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय,doi, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय-訳-訳-訳-訳-訳- हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय हाय, हाय, हाय, हाय, हाय, हाय, हाय,ハイ, ハイ, ハイ, ハイ, ハイ, ハイ, ハイ, ハイ, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, हाय, $\text{_id}$ $\text{_id}$ $\textt{_id}$ $\text{_id}$ $\text{_id}$ $\text{_id}$ $ ext{_id}$ $ extGoister, $\text{_id}$ $ ext{_id}$ $ extn{_id}$ $ ext{_id}$ $ ext{_id}$

  • Interface: 一部のユーザーは、ターミナルベースの制御システムよりも、TV-nativeなインターフェースの方がより直感的であると提案しました。

Sources