roku

📺 局域网Roku设备智能遥控中心

🥥74总安装量 18评分人数 16
100% 的用户推荐

基于Python的安全CLI工具,通过本地网络ECP API实现Roku设备发现、遥控与桥接控制,支持Telegram远程指令,适合家庭媒体自动化场景。

A

基本安全,请在特定环境下使用

  • 来自社区或个人来源,建议先隔离验证
  • ✅ 代码安全规范,无危险函数(eval/exec/subprocess等)
  • ✅ 输入验证完善,按钮命令通过白名单映射字典(BUTTON_MAP)控制
  • ✅ 敏感配置(Token、IP)通过环境变量获取,无硬编码泄露风险
  • ⚠️ 依赖外部 `roku` Python 包,建议锁定版本防止供应链攻击
  • ⚠️ 命名管道和 Socket 使用固定 `/tmp/` 路径,需关注文件权限安全

使用说明

Roku CLI 是一款针对 Roku 流媒体设备设计的命令行控制工具,基于 TypeScript/Node.js 开发(安全审查显示底层依赖 Python 脚本实现),通过局域网 ECP(External Control Protocol)API 与设备进行通信。该工具提供了从基础遥控到高级自动化的完整解决方案,使用户能够通过终端、HTTP 接口甚至 Telegram 机器人实现对电视设备的精准控制。

核心用法方面,工具支持设备自动发现与别名管理,用户可通过 roku discover 快速扫描局域网内设备并保存别名,后续操作无需记忆 IP 地址。基础功能包括发送遥控按键(方向键、播放控制、电源等)、文字输入、应用启动和内容搜索。交互模式提供了沉浸式的终端遥控体验,支持键盘直接操控。最具特色的是 HTTP 桥接服务,可将 CLI 转换为常驻后台的 REST API 服务(支持 systemd/launchd),允许通过 curl 或第三方自动化工具发送指令;同时支持 Telegram 机器人集成,通过环境变量配置 TOKEN 后即可实现移动端远程控制。

显著优点体现在其架构的灵活性与安全性设计。采用环境变量存储敏感信息(如 Telegram Token、设备 IP),避免硬编码风险;命令映射通过白名单字典(BUTTON_MAP)严格校验,防止注入攻击;支持用户级服务部署(--user 标志),无需 root 权限即可运行守护进程。别名系统同时支持设备和应用映射,极大简化了复杂指令的输入。桥接模式的 Token 认证机制为本地 API 提供了基础安全保障。

潜在缺点与局限性不容忽视。首先,来源等级为 T3(个人开发者维护),虽代码质量达到 A 级安全标准,但长期维护稳定性存疑。其次,依赖的 roku Python 包版本未在文档中锁定,存在供应链更新风险。功能上严格限定于局域网环境,无法跨网络控制设备。命名管道和 Unix socket 使用固定的 /tmp/ 路径,可能与其他应用冲突或面临本地权限问题。此外,交互模式依赖终端输入,对于非技术用户存在一定学习曲线。

适合的目标群体主要包括:拥有 Roku 设备的智能家居爱好者,希望通过脚本实现自动化控制(如定时开关机、自动播放特定内容);家庭媒体中心管理员,需要集中管理多台 Roku 设备;开发者希望将 Roku 控制集成到现有自动化工作流或 CI/CD 流程中;以及希望通过 Telegram 实现手机远程遥控的技术用户。

使用风险方面,虽然代码本身无恶意行为,但用户需注意:Telegram Token 若泄露可能导致设备被未授权控制;固定路径的 IPC 机制(命名管道和 socket)在 multi-user 系统中可能产生权限冲突;桥接服务默认监听本地端口,若配置不当(如绑定 0.0.0.0)可能扩大攻击面。此外,ECP API 本身无加密,建议在可信局域网内使用,避免在公共 WiFi 环境下暴露设备控制接口。

roku 内容

手动下载zip · 7.3 kB
README.mdtext/markdown
请选择文件