核心用法
本技能是一个基于ADB的CLI工具,用于控制Chromecast with Google TV(含4K版)及潜在兼容的Android TV设备。核心功能包括:
设备配对与连接
- 首次使用需通过
pair子命令完成无线ADB配对(需开启开发者选项+无线调试) - 支持IP:PORT直连、环境变量覆盖(
CHROMECAST_HOST/CHROMECAST_PORT)、本地缓存(.last_device.json)及mDNS自动发现四层连接策略
内容投屏
- YouTube: 直接解析video ID或URL,通过
adb shell am start启动指定包名(com.google.android.youtube.tv) - Tubi: 接受canonical HTTPS URL,通过VIEW intent直达应用
- 其他流媒体: 采用
scrcpy驱动的全局搜索回退机制,模拟用户操作完成"搜索→选季→选集→确认打开应用"流程(需指定--app、--season、--episode)
播放控制
- 基础媒体键控制:play/pause/resume通过ADB发送媒体事件
- 设备状态查询:
status子命令展示ADB设备列表
显著优点
1. 零Python依赖: 仅使用标准库,通过uv运行规避PEP 668系统包限制,部署极轻量
2. 多源内容聚合: 原生支持YouTube(video ID/URL/query)、Tubi(URL),其他Hulu/Max/Disney+等通过通用搜索回退兼容
3. 智能连接管理: 四层连接策略(CLI参数→环境变量→本地缓存→mDNS发现)兼顾灵活性与便捷性
4. 安全设计: 明确声明不进行端口扫描,仅连接指定/缓存端口,避免ADB端口轮换冲突
潜在缺点与局限性
- 首次配置门槛高: 需手动开启Chromecast开发者选项、无线调试,并完成ADB配对流程,非技术用户友好度低
- Google TV Streamer兼容性未验证: 文档明确标注对新硬件支持"unknown"
- 回退机制脆弱: 非YouTube/Tubi内容依赖
scrcpy模拟UI操作,若Google TV界面更新可能导致选择器失效 - Hulu特殊处理缺失: 未处理Hulu profile选择弹窗,特定场景可能中断
- 网络环境敏感: 无线ADB对网络稳定性要求高,重启设备或调试开关切换后需重新配对
- 单设备局限: mDNS发现仅使用首个结果,多Chromecast环境需显式指定IP
适合人群
- 技术用户/开发者:熟悉ADB、环境变量配置及命令行操作
- 智能家居自动化爱好者:可将CLI集成至Home Assistant等自动化流程
- 跨平台内容消费者:需要在Mac/Linux主机上统一控制多平台流媒体播放
常规风险
| 风险类别 | 说明 |
|---------|------|
| **无线ADB暴露** | 启用无线调试后,局域网内其他设备理论上可尝试ADB连接(建议配对码使用后及时关闭调试或限制网络隔离) |
| **UI自动化脆弱性** | `scrcpy`回退依赖屏幕坐标/文字匹配,系统更新或应用改版可能导致自动化失效 |
| **凭证缓存安全** | `.last_device.json`存储上次连接信息,多用户共享主机存在信息泄露风险 |
| **网络依赖** | 无线ADB连接质量直接影响响应,高延迟网络可能导致`scrcpy`操作超时 |
| **第三方工具链** | 依赖`yt-api`(Go)、`scrcpy`(C)、`adb`等外部二进制,需自行维护工具链安全更新 |