Skip to main content

google-tv

Control the Living Room Chromecast with Google TV via ADB

소스 정보

저장소
Kernel8901/ai-agent-skills-classification
최근 소스 활동
2026년 4월 4일 15:26
감지된 SKILL.md 언어
영어
스타
5
포크
1

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
5 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
google_tv
description
Control the Living Room Chromecast with Google TV via ADB
author
Anthony
# Google TV Control Use this skill when I ask to control the TV, play shows, or check if the TV is online. ## Setup This skill uses a local Python virtual environment to communicate with the TV via ADB. - Always use the skill-specific venv at `./.venv/bin/python3` (not the workspace `venv` folder). Activate or call that python explicitly when running the script. - The skill requires a few Python packages at runtime; ensure the venv has at minimum: `requests` and `beautifulsoup4` (bs4). To install into the skill venv run: ``` ./.venv/bin/python3 -m pip install -r requirements.txt ``` (See requirements.txt in the skill folder.) ## Capabilities This skill provides a small CLI wrapper around ADB to control a Google TV device. It exposes the following subcommands: - status: show adb devices output - play <query_or_id_or_url>: play content. Prefer providing a YouTube video ID or a provider URL/ID. - pause: send media pause - resume: send media play ### Usage examples `./.venv/bin/python3 google_tv_skill.py status --device 192.168.4.64 --port 5555` `./.venv/bin/python3 google_tv_skill.py play "7m714Ls29ZA" --device 192.168.4.64 --port 5555` `./.venv/bin/python3 google_tv_skill.py 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.json` in the skill folder and will use that cache if no explicit device is provided. - 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 — direct intent only (preferred) - If you provide a YouTube video ID or URL, the skill will launch the YouTube TV app directly via an ADB intent restricted to the YouTube TV package (no Assistant/UI fallback). - The skill attempts to resolve titles/queries to a YouTube video ID using the `yt-api` CLI (on PATH) and falls back to `/Users/anthony/go/bin/yt-api` if needed. If ID resolution fails, the skill will report failure rather than attempting UI search. - You can override the package name with `YOUTUBE_TV_PACKAGE` (default `com.google.android.youtube.tv`). ### Tubi handling - If you provide a numeric Tubi ID the skill will attempt the tubitv:// intent and then a VIEW https intent for a Tubi URL, both restricted to the Tubi package. - 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 assistant can look it up via web_search and supply it to this skill. - You can override the package name with `TUBI_PACKAGE` (default `com.tubitv`). ### Pause / Resume `./.venv/bin/python3 google_tv_skill.py pause` `./.venv/bin/python3 google_tv_skill.py resume` ### Behavior and logging - Default logging level is INFO. Use --verbose to enable DEBUG logging. - Exit codes: 0 success, 2 adb/connect error, 3 resolution error (e.g., could not resolve YouTube ID), 4 adb command failure. ### Dependencies & venv - requirements.txt includes required Python packages. Install them into the skill venv at `./.venv`. - The script expects `adb` to be on PATH and `yt-api` to be available on PATH or at `/Users/anthony/go/bin/yt-api`. ### Caching and non-destructive defaults - The script stores the last successful device (ip and port) in `.last_device.json` in 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:PORT` manually 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.json` on success. - If yt-api resolution fails, ensure `yt-api` is installed or accessible at `/Users/anthony/go/bin/yt-api`. ## Implementation notes - The skill CLI code lives in `google_tv_skill.py` in this folder. It uses subprocess calls to `adb` and to `yt-api` when needed. - For Tubi URL discovery, the assistant can use web_search to find canonical Tubi pages and pass the https URL to the skill.
GitHub에서 보기