Install
openclaw skills install @thcjp/chromecast-control使用catt工具控制局域网内的投屏设备。支持设备发现、媒体投放(视频/音频/网页)、 播放控制、进度跳转、音量调节、队列管理、字幕加载和设备别名管理. 适用于家庭娱乐、会议室投屏、多设备媒体管理等场景.
openclaw skills install @thcjp/chromecast-control功能说明: 本技能涵盖 中文交互 等核心能力。
功能说明: 本技能涵盖 时使用、化工作流场景 等核心能力。
使用 catt(Cast All The Things)工具控制局域网内的投屏协议设备。支持设备发现、媒体投放、播放控制、音量调节、队列管理、字幕加载和多设备别名管理.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 投屏设备控制处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
本Skill无需额外API Key(LLM能力由Agent平台内置提供)
通过 catt scan 命令扫描局域网内的所有投屏设备。返回设备名称和IP地址列表。使用 -d <device> 参数通过设备名称或IP地址指定目标设备。适用于初次配置或多设备环境下的设备定位。- 验证返回数据的完整性和格式正确性
通过 catt cast <url> 命令将视频、音频或网页投放到目标设备。支持YouTube视频/播放列表、Vimeo、Twitch直播、本地文件(MP4/MKV/WebM)和直接视频URL。使用 -b 参数在后台投放,-y format=best 指定优选格式。适用于家庭影院和会议演示场景.
处理: 解析用户提供的媒体URL或文件路径,验证格式兼容性后通过catt命令投放到目标Chromecast设备,自动处理设备发现和连接.
通过 catt play、catt pause、catt play_toggle 和 catt stop 命令控制播放状态。play_toggle 切换播放/暂停,stop 完全停止播放,skip 跳至内容末尾。适用于播放过程中的即时控制需求.
处理: 接收播放控制指令(play/pause/stop/skip),映射到对应的catt子命令并执行,返回播放状态变更确认.
通过 catt seek 命令跳转到指定时间点,支持秒数(如 catt seek 300 跳至5分钟)和HH:MM:SS格式(如 catt seek 01:30:00 跳至1小时30分)。catt ffwd 30 快进30秒,catt rewind 30 后退30秒。适用于长视频的快速定位和章节跳转.
处理: 解析时间参数(秒数或HH:MM:SS格式),通过catt seek/ffwd/rewind命令调整播放位置,返回当前播放进度.
通过 catt volume <0-100> 设置绝对音量(0-100范围),catt volumeup 10 增加10,catt volumedown 10 减少10。catt volumemute on 静音,catt volumemute off 取消静音。适用于不同内容间的音量统一和静音管理.
处理: 解析音量参数(绝对值0-100或相对增减),通过catt volume命令调整设备音量,返回设置后的音量值.
通过 catt add <url> 将媒体添加到播放队列,-n 参数将媒体添加为下一首播放。catt remove <url> 从队列移除,catt clear 清空整个队列。队列功能主要支持YouTube播放列表。适用于连续播放和多视频队列场景.
处理: 管理YouTube播放队列,通过catt add/remove/clear命令维护队列内容,返回当前队列状态.
通过 catt save 命令保存当前播放状态(进度、音量等),catt restore 恢复到上次保存的状态。适用于跨设备的播放状态迁移或中断后恢复播放。- 验证返回数据的完整性和格式正确性
通过 catt status 获取简要信息(当前时间、音量、静音状态),catt info 获取完整信息(标题、URL、播放器状态、媒体类型等)。适用于播放状态监控和设备状态查询.
处理: 调用catt status或catt info命令获取设备信息,返回设备名称、IP地址、播放状态、当前媒体等详情.
通过 catt cast -s ./subtitles.srt ./video.mp4 命令在投放本地视频时加载SRT格式字幕文件。使用 --no-subs 参数禁用字幕。-t 01:30:00 参数指定从特定时间点开始播放。适用于外语视频观看和字幕校对场景.
处理: 解析字幕文件路径和视频文件路径,通过catt cast -s命令加载字幕,返回加载状态和字幕格式信息.
通过 catt -d "Living Room TV" set_default 设置默认设备,catt -d 192.168.1.163 set_alias tv 为设备设置别名(如 tv)。catt -d tv del_alias 删除别名,catt del_default 取消默认设备。别名保存在 $HOME/.config/catt/catt.cfg 中。适用于多设备环境下的快速设备切换.
处理: 管理Chromecast设备别名,通过catt set_alias/del_alias命令配置,更新本地配置文件catt.cfg.
完成响应以Markdown格式返回,包含任务状态(成功/失败)、解析摘要和具体输出数据。失败时返回错误码和错误信息,便于定位问题。- 验证返回数据的完整性和格式正确性
catt scan 发现局域网内的投屏设备,记录设备名称或IP地址catt -d <device> set_default 设置默认设备,或使用别名快速引用catt cast <url> 或 catt cast ./video.mp4 投放媒体内容catt play/pause/stop 控制播放,catt seek/ffwd/rewind 调整进度catt volume <0-100> 调节音量,catt add <url> 管理播放队列catt status 或 catt info 查询当前播放状态结果验证: 任务完成后,查看输出确认状态。成功时返回摘要和数据;失败时根据错误信息排查,参考恢复章节获取修复步骤.
# 扫描局域网设备
catt scan
# 输出示例:
# 192.168.1.163 - Living Room TV
# 192.168.1.200 - Bedroom Speaker
# ...
# 设置默认设备
catt -d "Living Room TV" set_default
# ...
# 投放YouTube视频
catt cast "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
# ...
# 查看播放状态
catt status
# 输出: Time: 01:23 / 03:33 | Volume: 50 | Muted: False
# 设置设备别名
catt -d 192.168.1.163 set_alias tv
# ...
# 投放本地视频并加载SRT字幕
catt -d tv cast -s ./subtitles.srt ./movie.mp4
# ...
# 从1小时30分处开始播放
catt -d tv cast -t 01:30:00 ./movie.mp4
# ...
# 快进30秒
catt -d tv ffwd 30
# ...
# 设置音量为75
catt -d tv volume 75
# ...
# 保存当前播放状态
catt -d tv save
运行 catt scan 命令扫描局域网。返回结果包含设备名称和IP地址。如果扫描不到设备,可能是网络阻止了mDNS协议,此时可以直接使用设备IP地址连接:catt -d 192.168.1.163 cast <url>.
通过yt-dlp内部引擎支持YouTube(视频/播放列表/直播)、Vimeo、Dailymotion、Twitch、直接视频URL(MP4/MKV/WebM)和本地文件(视频/音频/图片)。使用 catt cast_site <url> 可投放整个网页.
使用 catt cast ./video.mp4 命令投射本地文件。需要确保TCP端口45000-47000开放(catt通过这些端口传输文件数据)。如果端口被阻止,可以将文件放在网络共享上使用URL投射.
使用 catt cast -s ./subtitles.srt ./video.mp4 命令加载SRT格式字幕文件。字幕文件必须与视频在同一台计算机上。使用 --no-subs 参数可以禁用字幕.
使用 catt -d <device> 参数指定目标设备,或通过 catt -d <name_or_ip> set_alias <alias> 设置别名后用别名引用。在 $HOME/.config/catt/catt.cfg 配置文件中可以设置默认设备和多个别名。使用 catt del_default 取消默认设备.
队列管理(catt add/remove/clear)主要支持YouTube视频和播放列表。使用 -n 参数将媒体添加为下一首播放。其他平台(如Vimeo、本地文件)不支持队列操作.
| 操作步骤 | 手动耗时 | 自动化耗时 | 时间节约 | 准确率提升 |
|---|---|---|---|---|
| 设备发现 | 5分钟 | 30秒 | 4分钟30秒 | 20% |
| 媒体投放 | 2分钟 | 15秒 | 1分钟45秒 | 15% |
| 播放控制 | 1分钟 | 5秒 | 54秒 | 10% |
| 进度跳转 | 1分钟 | 10秒 | 50秒 | 5% |
| 音量调节 | 1分钟 | 5秒 | 54秒 | 10% |
| 对比维度 | 本技能 | 手动操作 | Python脚本 | 专业软件 |
|---|---|---|---|---|
| 设备发现 | 自动发现局域网内的投屏设备 | 逐个手动搜索 | 需要编写代码,自动化程度低 | 需要专业软件,操作复杂 |
| 媒体投放 | 支持多种媒体格式和来源 | 手动选择和传输 | 需要编写代码,操作复杂 | 需要专业软件,操作复杂 |
| 播放控制 | 实时控制播放状态 | 手动操作 | 需要编写代码,操作复杂 | 需要专业软件,操作复杂 |
| 进度跳转 | 快速定位到指定时间点 | 手动寻找 | 需要编写代码,操作复杂 | 需要专业软件,操作复杂 |
| 音量调节 | 精确调节音量大小 | 手动调节 | 需要编写代码,操作复杂 | 需要专业软件,操作复杂 |
| 痛点 | 描述 | 影响范围 | 解决方案 | 量化效果 |
|---|---|---|---|---|
| 设备管理困难 | 多设备环境下,手动管理设备耗时耗力 | 家庭娱乐、会议室投屏等场景 | 自动发现和管理设备 | 时间节约20% |
| 媒体传输复杂 | 手动传输媒体文件到投屏设备 | 家庭娱乐、会议室投屏等场景 | 自动投放媒体 | 时间节约15% |
| 播放控制不便 | 手动控制播放状态效率低下 | 家庭娱乐、会议室投屏等场景 | 实时播放控制 | 效率提升10% |
| 错误现象 | 可能原因 | 诊断步骤 | 解决方案 |
|---|---|---|---|
| 无法发现设备 | 网络连接问题 | 检查网络连接,重启设备 | 重新扫描设备,确保网络连接正常 |
| 媒体无法播放 | 格式不支持 | 检查媒体格式,转换格式 | 转换媒体格式为设备支持的格式 |
| 播放控制失败 | 命令错误 | 检查命令格式,确认设备状态 | 重新发送正确命令,确保设备在线 |
| 音量调节无效 | 设备音量设置问题 | 检查设备音量设置,重置设备 | 重置设备音量设置,调整音量 |
| 队列管理异常 | 队列操作错误 | 检查队列操作,确认队列状态 | 重新执行队列操作,检查队列内容 |
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API密钥泄露 | 高 | 通过环境变量配置,禁止硬编码 | 定期检查代码和配置文件 |
| 命令执行风险 | 高 | 仅执行白名单命令,避免拼接用户输入 | 使用沙箱环境测试 |
| 网络通信安全 | 中 | 使用HTTPS协议,验证SSL证书 | 定期检查证书有效期 |
| 敏感数据暴露 | 高 | 输出结果中不包含密钥、令牌等敏感信息 | 日志脱敏审查 |
| 未授权访问 | 中 | 限制访问权限,实施认证机制 | 定期审计访问日志 |
针对投屏设备控制使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |