Install
openclaw skills install apple-media-officialpm-0-1-1Discover and control Apple media/AirPlay devices (HomePod, Apple TV, AirPlay speakers) from macOS. Use when you want to scan for AirPlay devices, map names→I...
openclaw skills install apple-media-officialpm-0-1-1Author: Parth Maniar — @officialpm
This skill is a thin workflow wrapper around two tools:
atvremote) for discovering Apple TVs/HomePods and (when supported/paired) remote-control style commands.airfoil skill) for reliable speaker connect/disconnect + volume control across AirPlay speakers (including HomePods).This skill uses pyatv installed via pipx.
Install/repair (pinned to Python 3.12 to avoid Python 3.14 asyncio issues):
pipx install pyatv || pipx upgrade pyatv
pipx reinstall pyatv --python python3.12
Verify:
atvremote --help | head
# Fast scan (5s)
./scripts/scan.sh 5
# Faster scan when you know IP(s)
./scripts/scan-hosts.sh "10.0.0.28,10.0.0.111" 3
# Or JSON output
node ./scripts/scan-json.js 5
You’ll see devices like:
Use Airfoil for speaker control (reliable for HomePods):
# List speakers Airfoil can see
../airfoil/airfoil.sh list
# Connect and set volume
./scripts/connect.sh "Living Room"
./scripts/volume.sh "Living Room" 35
# Disconnect (direct)
../airfoil/airfoil.sh disconnect "Living Room"
First, scan to find the Apple TV name or id, then run commands:
# Examples (device name can be Apple TV or other targets)
atvremote -n "TV" playing
atvremote -n "TV" play_pause
atvremote -n "TV" turn_on
atvremote -n "TV" turn_off
If you get auth/protocol errors, pairing/credentials are needed (device-dependent).
atvremote scan is the source of truth for IP/ID discovery.scripts/scan.shRuns atvremote scan with a configurable timeout.
./scripts/scan.sh 5
scripts/scan-json.jsParses atvremote scan output into a compact JSON summary (name, address, model, services).
node ./scripts/scan-json.js