smartest-tv について
smartest-tv は、Netflix、YouTube、Spotify などのコンテンツを名前で指定してスマートテレビで再生できるコマンドラインツールです。URL のキャスト、音量調整、複数部屋のオーディオ制御にも対応しています。ターミナルや AI アシスタントからテレビを操作したい利用者向けで、テレビ未設定時はブラウザで再生されます。
主な機能
- 01名前による検索とストリーミングアプリへのディープリンク
- 02任意の URL のキャストと再生キュー
- 03シーンプリセットと複数テレビの同期再生
- 04AI クライアント向けの 21 個の MCP ツール
- 05LG webOS、Samsung Tizen、Android TV、Roku への対応
活用シーン
- 01アシスタントに特定のエピソードの再生を依頼する
- 02複数のテレビで同じコンテンツを同時に再生する
- 03Home Assistant からテレビ再生を自動化する
MCP 対応
stv は MCP サーバーとして動作し(stv serve または uvx stv)、Claude や Cursor などの MCP クライアントに再生、操作、キュー、シーン、視聴統計をカバーする 21 個のツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
📺
smartest-tv
テレビが待ち望んでいた CLI。
Netflix / Apple TV+ / YouTube / Spotify を名前で再生。URL のキャスト。マルチルームオーディオ。AI コンシェルジュ。すべてターミナルから。
한국어 · 中文 · 日本語 · Español · Deutsch · Português · Français
pip install stv && stv play "Frieren"
テレビがなくても大丈夫。ブラウザーで開きます。テレビがある場合は、stv setup で接続できます。
| 😩 stv がない場合 | 😎 stv がある場合 |
|---|---|
約30秒 |
約3秒 |
テレビがなくても大丈夫です。 テレビを設定していない場合、stv はコンテンツをブラウザーで直接開きます。 Netflix、YouTube、Spotify、Disney+ を使うには、
pip install stvを実行するだけです。
🛋 雰囲気でコードを書いて、のんびり楽しむ
午前2時に雰囲気でコードを書く。Claude がコードを書いてくれる。番組をつけてと頼めば、実行してくれます。
you: play frieren on the living room tv
claude: Playing Frieren s2e8 on Living Room. (3s)
you: bit quieter
claude: Volume → 18.
you: good night
claude: All 3 TVs off.
stv をすでにインストールしていますか?Claude にこう伝えるだけです。
# Option 1 — just talk (zero config)
"run stv play netflix Frieren s2e8"
# Option 2 — install the Skill for auto-trigger
clawhub install smartest-tv
# now "play Frieren", "good night", "next episode" just work mid-session
Claude Code、Codex、Antigravity、その他の MCP クライアント向けに、MCP サーバー(21 ツール)としても利用できます。
🎯 stv と入力するだけ
サブコマンドを指定しないと、Now Playing カードと、視聴履歴に基づく状況に応じた次のアクションが3つ表示されます。30個ものコマンドが並ぶヘルプ一覧ではありません。
$ stv "play dark on netflix" # natural language works
$ stv play "Frieren" # auto-detects platform
$ stv next # continue last show
$ stv stats # → insights
認識できない入力には、エラーではなく、わかりやすいヒントが表示されます。
🎨 プロダクトのような見た目の CLI
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
すべてのコマンドで、Catppuccin Mocha のカラー、意味の分かりやすいアイコン、視覚的に整理された階層構造を表示します。別のパレットがお好みですか? STV_THEME=nord または STV_THEME=gruvbox を設定してください。
jq にパイプで渡す場合は、いつでも --format json を使えます。
✨ できること
🎬 名前で再生
名前を伝えるだけです。stv が ID を見つけ、アプリを開いて再生を開始します。Netflix と Apple TV+ は HTML の解析によって解決します。Disney+、Max、Prime、Hulu、Paramount+、Peacock、Crunchyroll、およびJustWatch に掲載されているすべてのプラットフォームは API を通じて解決します。ログインも API キーも不要です。プラットフォーム名を省略すると、stv が地域内で配信中のサービスを自動検出します。 |
🔗 あらゆる URL をキャスト
友人からリンクが届いたら、貼り付けるだけです。テレビで再生されます。 |
🎵 キューとパーティー
みんなで見たいものを追加します。テレビで順番に再生されます。 |
🎭 シーンプリセット
コマンドひとつで雰囲気を設定できます。 |
🔊 マルチルームオーディオ
画面をオフにして、どこでも音楽を楽しめます。 |
📺 テレビをディスプレイとして活用
ダッシュボード、時計、サイネージに。 |
📊 視聴インテリジェンス
Netflix に月額 18 ドルの価値はありますか? |
🌐 同期パーティー
すべてのテレビで同時に再生します。離れた場所にいる友人とも楽しめます。 |
🤖 AI コンシェルジュ
21 個の MCP ツール。ひと言伝えるだけで十分です。 |
🤖 AI にテレビの操作を頼む
stv は MCP サーバーです。Claude、GPT、Cursor など、あらゆる MCP クライアントから自然言語でテレビを操作できます。
|
セットアップ(1 行):
または OpenClaw 経由で:
|
あとは話しかけるだけです:
|
21 個すべての MCP ツール
| カテゴリ | ツール | 機能 |
|---|---|---|
| 再生 | tv_play | 名前で検索して再生 |
tv_cast | あらゆる URL をキャスト | |
tv_next | 視聴を続ける | |
tv_launch | ID を指定してアプリを起動 | |
tv_resolve | コンテンツ ID のみを取得 | |
| 検索 | tv_whats_on | トレンドのコンテンツ |
tv_recommend | パーソナライズされたおすすめ | |
| 操作 | tv_power | 電源のオン/オフ |
tv_volume | 音量の取得/設定/調整/ミュート | |
tv_screen | 画面のオン/オフ | |
tv_notify | トースト通知 | |
tv_status | 現在の状態 | |
| 整理 | tv_queue | 再生キュー |
tv_scene | シーンプリセット | |
tv_history | 視聴履歴 | |
| インテリジェンス | tv_insights | 視聴統計 |
tv_display | テレビをディスプレイとして活用 | |
tv_audio | マルチルームオーディオ | |
| 複数のテレビ | tv_sync | すべてのテレビで再生 |
tv_list_tvs | テレビの一覧 | |
tv_groups | テレビグループ |
📅 stv のある一日
| 時刻 | 内容 |
|---|---|
| 7am | stv display dashboard "Weather:18°C" "Meeting:10am" をキッチンのテレビで実行 |
| 8am | stv scene kids --tv kids-room -- Cocomelon、音量 15 |
| 12pm | 友人から Netflix のリンクが届く → stv cast <url> |
| 5pm | stv screen-time → 子どもたちの今日の視聴時間は 2 時間 15 分 |
| 6:30pm | stv scene movie-night -- 音量 20、シネマモード |
| 7pm | stv recommend --mood chill → Ozark をおすすめ |
| 9pm | stv audio play "friday vibes" -p spotify -- 家中で音楽を再生 |
| 10pm | stv --group party play netflix "Wednesday" s1e1 -- 同期再生 |
| 11:30pm | stv scene sleep → stv --all off -- おやすみなさい |
🔥 便利な組み合わせ
|
🌙 おやすみ自動モード
環境音を流し、画面を消し、自動タイマーを設定して、ほかのテレビをすべてオフにします。 |
🎧 Sonos を無料で
すべてのテレビをスピーカーとして使用できます。部屋ごとに音量を調整でき、画面はオフになります。 |
💰 サブスクリプションの確認
|
⚙️ 仕組み
"Play Dark S1E1"
│
▼
┌─── Resolution ───┐
│ Cache → API → Web │ content_id
│ 0.1s 1s 3s │──────────────▶ 📺 TV plays it
└───────────────────┘ │
Deep link via
LG / Samsung / Roku / Android
名前を指定すると、stv がコンテンツ ID を特定し、テレビのアプリにディープリンクで移動します。ブラウザー自動操作も、API キーも、クラウドへの依存もありません。結果はキャッシュされるため、2 回目以降はすぐに再生できます。
📦 インストール
pip install stv # LG webOS (default)
pip install "stv[samsung]" # Samsung Tizen
pip install "stv[android]" # Android TV / Fire TV
pip install "stv[all]" # Everything
stv setup # auto-discover + pair your TV
LG webOS · Samsung Tizen · Android TV / Fire TV · Roku に対応
Home Assistant(HACS)
カスタムリポジトリとして追加します(デフォルトリストへの登録は審査中です:hacs/default#6907)。
HACS → ⋮ (top right) → Custom repositories
URL: https://github.com/Hybirdss/smartest-tv
Category: Integration → Add
Then: Install → Restart HA
Settings → Integrations → Add → "Smartest TV" → auto-discovers your TVs
Android TV / Fire TV の場合、セットアップ中にテレビに 6 桁の PINが表示されます。
ペアリングフォームに入力して完了します。HA OS / HA Container では、ペアリング情報がコンテナの再構築後も保持されるよう、STV_CONFIG_DIR=/config/smartest-tv を設定してください。docs/integrations/home-assistant.md をご覧ください。
その後、自動化で使用できます。
service: media_player.play_media
target:
entity_id: media_player.living_room
data:
media_content_type: stv
media_content_id: "netflix:Frieren:s2e8"
これは、HA 組み込みの media_player.play_media ではできないことを実現します。番組名から作品を特定し、ストリーミングアプリにディープリンクで移動します。電源、音量、再生コントロールも、標準の HA メディアプレーヤーエンティティとして使用できます。
🔌 連携先
| 連携 | 方法 |
|---|---|
| Home Assistant | HACS カスタム連携 → コンテンツの特定に対応した media_player.play_media |
| Claude Code / Cursor | MCP 設定を追加 → "play Dark s1e1" |
| OpenClaw | clawhub install smartest-tv → Telegram ボット |
| cron | 0 7 * * * stv display dashboard ... |
| シェルスクリプト | sleep-mode、party-mode のワンライナー |
| 任意の MCP クライアント | 21 個のツール。stdio または HTTP(stv serve) |
📚 ドキュメント
| はじめに | あらゆるテレビブランドのセットアップ |
| コンテンツの再生 | 再生、キャスト、キュー、特定 |
| シーン | movie-night、kids、sleep、カスタム |
| 同期とパーティー | 複数のテレビ、リモート視聴パーティー |
| レシピ | 機能を組み合わせた強力なレシピ 10 件 |
| AI エージェント | Claude、Cursor、OpenClaw 向け MCP |
| CLI リファレンス | すべてのコマンドとオプション |
| MCP ツール | パラメーター付きの全 21 ツール |
🔓 オープンソース
stv のすべてのコードは GitHub で公開されています。CLI、リゾルバー(Netflix、Apple TV+、YouTube、Spotify、Disney+、Max、Prime Video、Paramount+、Hulu、Peacock、Crunchyroll など。JustWatch 経由)、4 種類すべての TV ドライバー(LG、Samsung、Roku、Android)、キャッシュ、同期エンジン、シーン、253 件すべてのテストが含まれます。ストリーミング配信状況データは JustWatch によって提供されています。
🔒 プライバシー
stv はローカルネットワーク上で動作します。テレメトリー、アナリティクス、クラウド同期、視聴内容の外部送信はありません。posthog も、amplitude も、sentry も、mixpanel もありません。ソースを grep して確認できます。
例外が 1 つあります。コミュニティキャッシュへの貢献です。 ローカルキャッシュにないコンテンツを再生すると、stv はウェブ解析を通じてそのコンテンツを解決し、解決した ID を共有コミュニティキャッシュに送信します。これにより、次のユーザーはすぐに検索できます。これは Wikipedia やパッケージミラーと同じ仕組みで、匿名で小さな貢献を集めます。
送信される情報(バックグラウンドで HTTPS 経由により送信。応答を待たず、再生を妨げることはありません):
- プラットフォーム名(
netflix/youtube/spotify) - コンテンツのスラッグ(例:
frieren) - 解決されたコンテンツ ID(Netflix のタイトル ID、YouTube の動画 ID、Spotify の URI)
送信されない情報:
- 名前、メールアドレス、その他のユーザー識別情報
- IP アドレス(CDN は通常の HTTP 通信と同様に接続元 IP を認識しますが、クライアントがこれを読み取ったり送信したりすることはありません)
- 視聴履歴や再生時刻
- テレビの IP アドレスやハードウェア情報
- stv の使用頻度や使用時刻に関する情報
キャッシュへの貢献を完全に無効にするには:
export STV_NO_CONTRIBUTE=1
ソース:src/smartest_tv/cache.py — _contribute を検索してください。
🤝 貢献
テストは 211 件あります。実行にテレビは必要ありません。
pip install -e ".[dev]"
python -m pytest tests/ -v
Samsung、Roku、Android TV のドライバーには実環境でのテストが必要です。お持ちの場合は、ぜひフィードバックをお寄せください。
MIT ライセンス · Python で開発 · クラウド不要
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。





