chromecast-with-google-tv
Control Chromecast with Google TV via ADB: pair, pause, resume, status, and play/cast YouTube, Tubi, or episodic content in supported streaming apps.
Install
mkdir -p .claude/skills/chromecast-with-google-tv && curl -L -o skill.zip "https://mcp.directory/api/skills/download/8885" && unzip -o skill.zip -d .claude/skills/chromecast-with-google-tv && rm skill.zipInstalls to .claude/skills/chromecast-with-google-tv
About this skill
Chromecast with Google TV control
Use this skill when I ask to cast YouTube or Tubi video content, play or pause Chromecast media playback, check if the Chromecast is online, launch episodic content in another streaming app via global search fallback, or pair with a Chromecast device for the first time.
Setup
This skill runs with uv, adb, yt-api, and scrcpy in the PATH. No venv required.
- Ensure
uv,adb,yt-api, andscrcpyare available in the PATH. - Use
./runas a convenience wrapper arounduv run google_tv_skill.py.
First-time pairing
Before using this skill, you must pair your Chromecast with ADB wireless debugging:
- Enable Developer Options on the Chromecast (Settings > System > About > tap "Android TV OS build" 7 times)
- Enable USB debugging and Wireless debugging in Developer options
- Use the
paircommand to pair with the pairing code shown on screen:./run pair --show-instructions- Display detailed pairing instructions./run pair --pairing-ip <IP> --pairing-port <PORT> --pairing-code <CODE>- Perform pairing
After pairing once, you can use the connection port shown on the Wireless debugging screen for all other commands.
Capabilities
This skill provides a small CLI wrapper around ADB to control a Google TV device. It exposes the following subcommands:
- pair: pair with Chromecast using wireless debugging (first-time setup)
- status: show adb devices output
- play <query_or_id_or_url>: play content via YouTube, Tubi, or global-search fallback.
- pause: send media pause
- resume: send media play
Usage examples
./run pair --show-instructions
./run pair --pairing-ip 192.168.1.100 --pairing-port 12345 --pairing-code 123456
./run status --device 192.168.4.64 --port 5555
./run play "7m714Ls29ZA" --device 192.168.4.64 --port 5555
./run play "family guy" --app hulu --season 3 --episode 4 --device 192.168.4.64 --port 5555
./run pause --device 192.168.4.64 --port 5555
Device selection and env overrides
- You can pass --device (IP) and --port on the CLI.
- Alternatively, set CHROMECAST_HOST and CHROMECAST_PORT environment variables to override defaults.
- If you provide only --device or only --port, the script will use the cached counterpart when available; otherwise it will error.
- The script caches the last successful IP:PORT to
.last_device.jsonin the skill folder and will use that cache if no explicit device is provided. - If no explicit device is provided and no cache exists, the script will attempt ADB mDNS service discovery and use the first IP:PORT it finds.
- IMPORTANT: This skill does NOT perform any port probing or scanning. It will only attempt an adb connect to the explicit port provided or the cached port.
YouTube handling
- If you provide a YouTube video ID or URL, the skill will launch the YouTube app directly via an ADB intent restricted to the YouTube package.
- The skill attempts to resolve titles/queries to a YouTube video ID using the
yt-apiCLI (in the PATH). If ID resolution fails, the skill will report failure. - You can override the package name with
YOUTUBE_PACKAGE(defaultcom.google.android.youtube.tv).
Tubi handling
- If you provide a Tubi https URL, the skill will send a VIEW intent with that URL (restricted to the Tubi package).
- If the canonical Tubi https URL is needed, the skill can look it up via web_search and supply it to this skill.
- You can override the package name with
TUBI_PACKAGE(defaultcom.tubitv).
Global-search fallback for non-YouTube/Tubi
- If YouTube/Tubi resolution does not apply and you pass
--appwith another provider (for examplehulu,max,disney+), the skill uses a Google TV global-search fallback. - For this fallback, pass all three:
--app,--season, and--episode. scrcpymust be installed and available in the PATH for this flow.- The fallback starts
android.search.action.GLOBAL_SEARCH, waits for the Series Overview UI, opens Seasons, picks season/episode, then confirmsOpen in <app>when available. - Hulu profile-selection logic is intentionally not handled here.
Pause / Resume
./run pause
./run resume
Dependencies
- The script uses only the Python standard library (no pip packages required).
- The scripts run through
uvto avoid PEP 668/system package constraints. - The script expects
adb,scrcpy,uv, andyt-apito be installed and available in the PATH.
Caching and non-destructive defaults
- The script stores the last successful device (ip and port) in
.last_device.jsonin the skill folder. - It will not attempt port scanning; this keeps behavior predictable and avoids conflicts with Google's ADB port rotation.
Troubleshooting
- If adb connect fails, run
adb connect IP:PORTmanually from your host to verify the current port. - If adb connect is refused and you're running interactively, the script will prompt you for a new port and update
.last_device.jsonon success. - Connection refused after pairing: If connection is refused:
- Verify Wireless debugging is still enabled on the Chromecast
- The device may need to be re-paired if it was restarted or Wireless debugging was toggled off
- The interactive prompt will offer options to retry with a different port or re-pair
- Use
./run pair --show-instructionsfor detailed setup steps
Implementation notes
- The skill CLI code lives in
google_tv_skill.pyin this folder. It uses subprocess calls toadb,scrcpy, andyt-api, plus an internal global-search helper for fallback playback. - For Tubi URL discovery, the assistant uses web_search to find canonical Tubi pages and pass the https URL to the skill.
More by openclaw
View all skills by openclaw →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
pdf-to-markdown
aliceisjustplaying
Convert entire PDF documents to clean, structured Markdown for full context loading. Use this skill when the user wants to extract ALL text from a PDF into context (not grep/search), when discussing or analyzing PDF content in full, when the user mentions "load the whole PDF", "bring the PDF into context", "read the entire PDF", or when partial extraction/grepping would miss important context. This is the preferred method for PDF text extraction over page-by-page or grep approaches.
Related MCP Servers
Browse all serversGoogle GenAI Toolbox: open-source GenAI database agent and AI database connector for Google Cloud database—query Cloud S
Integrate with Gemini CLI for large-scale file analysis, secure code execution, and advanced context control using Googl
Control Gmail, Google Calendar, Docs, Sheets, Slides, Chat, Forms, Tasks, Search, and Drive with AI. Comprehensive Googl
Use DeepL Translator for accurate translations and rephrasing. Translate English to Spanish and more with formality cont
Integrate DuckDuckGo web search into your site with our MCP server, supporting features like Google custom search and ro
Generate stunning AI images with ImageGen, a unified AI image generator supporting DALL-E, Gemini & more, with smart par
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.