Apple Media Remote (for HomePod, Apple TV, etc)

🎛️ Apple 设备命令行全能遥控器

基于 pyatv 库通过命令行控制 Apple TV、HomePod 及 AirPlay 设备的媒体播放、音量调节、导航与流媒体推送,适合本地网络智能家居自动化场景。

收藏
13.5k
安装
2.9k
版本
1.0.0
CLS 安全性认证2026-06-04
点击查看完整报告 >

使用说明

核心用法

apple-media 是 pyatv 命令行工具 atvremote 的封装技能,提供对 Apple TV、HomePod 及兼容 AirPlay 设备的完整控制。核心工作流为:扫描发现设备 → 配对(如需)→ 执行控制指令。

设备发现atvremote scan 可发现局域网内所有 Apple 媒体设备,返回名称、IP、协议及配对状态。支持限定 IP 范围加速扫描(--scan-hosts)。

设备定位:通过 -n(名称)、-s(IP)或 -i(标识符)三选一指定目标设备。

媒体控制:完整覆盖播放控制(play/pause/stop/next/previous)、进度跳转(skip_forward/backward、set_position)、播放模式(shuffle/repeat)及音量调节(0-100 或步进)。

流媒体推送:支持将本地音频文件(MP3、WAV、AAC、FLAC 等)或远程 URL 直接推送到设备播放,实现非 Apple 生态内容的 AirPlay 投射。

Apple TV 专属:提供 D-pad 导航(上下左右/select/menu/home)、键盘文本输入(get/set/append/clear)、应用列表与启动(bundle ID)、电源管理(turn_on/off)及多房间音频输出管理(add/remove/set_output_devices)。

实时监听push_updates 可持续监听播放状态变更,便于脚本触发自动化。

显著优点

  • 协议完整:基于 pyatv 逆向工程实现,支持 MRP(Media Remote Protocol)、AirPlay、RAOP 等私有协议,功能覆盖度远超通用 DLNA/UPnP 方案
  • 零硬件依赖:纯软件方案,无需 HomeKit 中枢或额外硬件
  • 脚本友好:命令行接口适合 Shell/Python 自动化、Cron 定时任务、家庭助理集成
  • 跨平台:pyatv 本身支持多平台,技能通过 pipx 隔离安装避免依赖冲突
  • 多设备协同:支持输出设备分组管理,可实现 Apple TV + HomePod 立体声组合或全屋同步播放

潜在缺点与局限性

  • Python 版本锁死:明确不兼容 Python 3.14+,必须用 ≤3.13 版本安装,增加环境维护成本
  • 本地网络限制:依赖 mDNS/Bonjour 发现,跨 VLAN、VPN 或复杂网络拓扑下设备发现可能失败
  • 配对摩擦:Apple TV 通常需首次手动配对并存储凭证,无人值守场景需预置 ~/.pyatv.conf
  • 功能不对称:导航、键盘、应用控制仅限 Apple TV;HomePod 仅支持媒体流与基础播放控制
  • 无官方支持:基于逆向工程,iOS/tvOS 更新可能破坏兼容性,存在协议变更风险
  • 音频格式限制:流媒体推送虽支持常见格式,但无损/空间音频的端到端保真度未经官方验证

适合人群

  • 智能家居极客:已将 Apple 设备纳入家庭自动化体系,需突破 HomeKit/Siri 限制的高级用户
  • 跨平台开发者:需在 Linux/Windows 服务器或 Docker 环境中远程控制 Apple 媒体的工程师
  • 多房间音频方案集成者:希望用统一脚本管理 Apple TV + HomePod 组合输出的全屋音频系统搭建者

常规风险

  • 网络暴露风险:pyatv 协议未加密传输控制信令,不建议在不受信任网络(公共 WiFi、访客网络)使用
  • 凭证泄露~/.pyatv.conf 存储配对凭证,需确保文件权限(建议 600)并避免纳入版本控制
  • 误操作停机turn_offstop 指令会终止播放会话,自动化脚本需区分 pausestop 语义
  • 协议兼容性:tvOS 大版本升级后可能出现功能失效,需关注 pyatv 上游更新

安全解读

核心用法

apple-media 是一款基于 pyatv 的文档型 Skill,通过 atvremote 命令行工具实现对 Apple 生态设备的远程控制。核心功能涵盖:

| 功能类别 | 关键命令示例 |
|---------|------------|
| **设备发现** | `atvremote scan` 扫描局域网内的 Apple TV、HomePod |
| **播放控制** | `play`/`pause`/`stop`、`next`/`previous`、进度跳转 `set_position=120` |
| **音量管理** | `set_volume=50`、`volume_up`/`volume_down` |
| **媒体推送** | `stream_file=/path/to.mp3`、`play_url=https://...` |
| **导航控制** | 方向键(`up`/`down`/`left`/`right`)、`select`、`home`、`menu` |
| **多房间音频** | `add_output_devices=<id>` 组建立体声或全屋播放 |
| **实时监控** | `push_updates` 获取播放状态变更推送 |

目标指定方式:支持 -n <设备名>-s <IP>-i <MAC> 三种方式,首次使用需执行 atvremote pair 完成配对,凭证自动保存至 ~/.pyatv.conf

显著优点

  • 生态完整:覆盖 Apple TV(含导航、键盘输入、App 启动)、HomePod(音频控制)、AirPlay 设备的全品类支持
  • 功能深度:支持进度精确定位、播放模式(随机/循环)、多房间音频组管理、实时状态推送等专业级功能
  • 安装灵活:通过 pipx 隔离安装,明确指定 Python ≤3.13 兼容性,避免版本冲突
  • 文档详尽:163 行 Markdown 完整覆盖 50+ 命令用法、配对流程、故障排查提示

潜在局限

  • 外部依赖强:必须额外安装 pyatv(~50MB),非纯内置 Skill
  • 协议限制:Apple TV 需首次配对,部分功能(如导航)仅限 Apple TV 不支持 HomePod
  • 网络依赖:需局域网环境,跨网段或 VPN 场景下设备发现可能失败
  • 无 GUI:纯命令行交互,对非技术用户门槛较高

适合人群

  • 智能家居自动化开发者(配合 Home Assistant、Node-RED 等)
  • 习惯 CLI 工作流的 Apple 生态用户
  • 需要批量管理多台 Apple TV/ HomePod 的系统管理员

常规风险

| 风险点 | 说明 | 缓解措施 |
|-------|------|---------|
| 凭证存储 | 配对凭证明文存储于 `~/.pyatv.conf` | 设置文件权限 `chmod 600` |
| 依赖来源 | `pyatv` 需从 PyPI 安装 | 拒绝非官方源,验证包签名 |
| 局域网暴露 | 控制指令在本地网络明文传输 | 确保 Wi-Fi 加密(WPA3),避免公共网络 |
| 误操作 | `stop` 会终止会话(不可恢复),与 `pause` 行为差异大 | 仔细阅读文档提示 |

安全认证评分 92/100(A 级),无代码执行风险,属于可信的文档型工具封装。

Apple Media Remote (for HomePod, Apple TV, etc) 内容

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