世界を動かす技術を、日本語で。

IPTVよりも優れていて安価な選択肢

2026年7月19日原文(github.com)

概要

  • Castor は任意のウェブ動画を高画質でTVにキャストできるターミナルツール
  • ChromecastやAirPlay不要 で、IMDB/TMDB IDやストリームURLにも対応
  • 自動字幕生成やTUIブラウザ 機能を搭載し、設定も簡単
  • DLNA/UPnP対応TV ならほぼ全機種で利用可能
  • インストールと使い方 もシンプルで、Linux/Mac/Windowsで動作

Castorとは

  • Castor は、スマートTVが直接キャストできないウェブ動画をPCから高画質でTVにキャストするツール
  • ChromecastやAirPlay がなくても利用可能
  • 任意のウェブページ、ストリームURL、IMDB/TMDB ID から動画を抽出・キャスト
  • 自動字幕生成 (Whisper対応)や TUI型インターフェース で直感的に操作可能
  • DLNA/UPnP対応TV (Samsung, LG, Sony, Panasonic, Philips, Hisense, TCL, VIZIO, Sharpなど)やKodi, VLC, Plexにも対応

動作の仕組み

  • ヘッドレスChrome を起動し、指紋ランダム化やステルススクリプトで自動化検知を回避
  • Chrome DevTools Protocol でネットワークトラフィックを監視し、動画ストリームを抽出
  • ページ内操作自動化 (クリック、iframe移動、Cloudflare Turnstile対応など)で動画検出率向上
  • ffmpeg/ffprobe によるトランスコードとフォーマット判定

インストール方法

  • ネイティブバイナリ推奨 (Mac/Linux/Windows)
    • Chrome/Chromium(ヘッドレス動作)、ffmpeg、ffprobeがPATHに必要
  • Homebrew(macOS)
    • brew install --cask stupside/tap/castor
  • Docker(Linux限定)
    • 依存ツール同梱イメージを利用可能
    • --network host必須、macOS/WindowsのDocker Desktopでは非推奨
  • ソースからビルド
    • Go 1.26+、cmake必要
    • git clone --recurse-submodules https://github.com/stupside/castor.git
    • cd castor && make

クイックスタート

  • TVの名前を確認
    • castor scanでネットワーク上のデバイス発見
  • config.yaml作成
    • デバイス名、タイプ(例: dlna)、プロキシ(動画ソース)を記載
    • TMDB APIキーはTUI利用時のみ必須(任意)
  • 動画キャスト例
    • IMDB/TMDB IDでキャスト: castor cast movie tt12300742
    • ウェブページの動画をキャスト: castor cast player https://example.com/watch/some-video
    • ストリームURL直接指定: castor cast url https://example.com/stream.m3u8
  • TUIでの操作
    • castor castでジャンル検索、ポスター閲覧、エピソード選択、キャスト

設定とカスタマイズ

  • config.yaml でデバイスやソース、タイムアウト、トランスコード設定などを上書き可能
  • 機密情報 はconfig.local.yamlや環境変数で管理推奨
  • 自動字幕生成(Whisper) も有効化可能(デフォルト無効、モデルは自動DL)

注意事項・免責

  • Castor自体は動画やコンテンツを一切ホストしない汎用ツール
  • サンプルのソースは例示用 であり、利用は自己責任
  • 著作権や利用規約を遵守 し、正当な権利があるコンテンツのみキャストすること

貢献・サポート

  • コントリビュート方法 はCONTRIBUTING.mdを参照
  • Chromecast対応は実装済みだが未検証、協力者募集中

使い方のまとめ

  • デバイス検出: castor scan
  • 映画キャスト: castor cast movie tt33028778
  • エピソードキャスト: castor cast episode tt2699128 --season 1 --episode 3
  • ウェブ動画キャスト: castor cast player https://example.com/watch/some-video
  • ストリームURLキャスト: castor cast url https://example.com/stream.m3u8
  • TUIブラウザ起動: castor cast
  • デバッグ/詳細出力: castor --debug ...
  • バージョン情報: castor info

サポートデバイス・環境

  • DLNA/UPnP対応TV (過去10年のほぼ全機種)
  • Kodi, VLC, Plex などのネットワークプレイヤー
  • Chromecast (実装済み・要検証)
  • Linux/Mac/Windows (Docker利用はLinux推奨)

まとめ

  • Castor は、手軽に高画質な動画キャストを実現する強力なCLIツール
  • ChromecastやAirPlayが不要 で、DLNA/UPnP対応TVならすぐに利用可能
  • 自動字幕生成・TUI・多彩な入力方式 により柔軟な運用が可能
  • 法令遵守と自己責任 での利用を推奨

Hackerたちの意見

ちょっとコンテキストが足りない気がするけど、これは何に使うの?海賊行為?

これは、ストリーミング動画をそのウェブサイトやサービスからなんとか引っこ抜いて、テレビにメディアをキャストする別の方法だよ。

これはCLI(コマンドラインインターフェース)で、映画を選ぶと、ストリーミングサイトからマッチするストリームを見つけて、リアルタイムで字幕を焼き込んで、テレビに再生させるんだ。

同意だな。使い道って、既にキャスティングに対応してる大手の動画ストリーム以外の何かってことだよね… つまり、違法なスポーツストリームとか?

これが海賊行為にどう役立つのか、よくわからないな。アクセスできるストリームしか再生できないし、暗号化を解除するわけでもないし。

ターンスタイルの目的はヘッドレスブラウザを検出することで、「バイパスするのが難しい」って聞いてたけど、どうやらチェックマークをクリックするのをシミュレートしてるだけみたい。そんなに簡単なの?

うん、まあね…

ヘッドレスブラウザを検出するってこと > どうやらチェックマークをクリックするのをシミュレートしてるだけみたい。 それだけじゃないよ。他にもいろいろブラウザの情報を偽装してる。普通のヘッドレスブラウザだと多分フラグが立つだろうね。

バックグラウンドで行われている他のチェックをすべて通過できれば、チェックマークをクリックするだけで済むよ。

WoWを自動化するのは、何十年も前からやってる人がいるよね。周辺機器を振動するファンにテープで貼り付けたりしてさ。それでも数百万ドルの予算があっても、これよりずっと複雑なものを打ち負かすために設計されてるんだから。ヘッドレスブラウザの自動化は、FPSゲームでのチートと同じように考えられると思う。赤チームは常に先手を取れるし、時間とお金をかければ勝てるよ。

正しいシミュレーションイベントがあれば、ヘッドレスブラウザはプラットフォーム検出なしで本物のブラウザと見分けがつかなくなる。これらのヘッドレスブラウザがLinux上でソフトウェアレンダラーを動かしているのは簡単にわかるよ。いずれ、Linuxユーザーを検出して、こういう回避策が使われ続けるなら、1つまたは複数のチャレンジを強制することになるだろうね。チェックボックスは、チェックが入るまでブラウザが何をしているか、特定のイベントにどう反応しているかを監視しているだけの小さな部分なんだ。その時点で「あなたは人間ですか?」というチャレンジが必要か、妨げなく通過できるかを判断するんだよ。

MacOSのDocker版だと、テレビが見つからないかもしれないよ。

Hacker Newsで議論の続きを見る