Control Apple TV via pyatv. Use for play/pause, navigation, volume, launching apps, power control, and checking what's playing. Triggers on "Apple TV", "TV", "what's playing", "pause TV", "play TV", "turn off TV".
Control Apple TV via the pyatv library.
pipx install pyatv --python python3.11
Note: pyatv requires Python ≤3.13. Python 3.14+ has breaking asyncio changes. Use
--python python3.11orpython3.13with pipx.
Config file at ~/clawd/config/appletv.json:
{
"name": "Living Room",
"id": "DEVICE_ID",
"ip": "192.168.x.x",
"credentials": {
"companion": "...",
"airplay": "..."
}
}
# Find your Apple TV
atvremote scan
# Pair Companion protocol (required)
atvremote --id <DEVICE_ID> --protocol companion pair
# Pair AirPlay protocol (for media)
atvremote --id <DEVICE_ID> --protocol airplay pair
Save the credentials to the config file.
scripts/appletv.py status # Full status with now playing
scripts/appletv.py playing # What's currently playing
scripts/appletv.py play # Play/resume
scripts/appletv.py pause # Pause
scripts/appletv.py stop # Stop
scripts/appletv.py next # Next track/chapter
scripts/appletv.py prev # Previous
scripts/appletv.py up # Navigate up
scripts/appletv.py down # Navigate down
scripts/appletv.py left # Navigate left
scripts/appletv.py right # Navigate right
scripts/appletv.py select # Press select/OK
scripts/appletv.py menu # Menu button
scripts/appletv.py home # Home screen
scripts/appletv.py volume_up
scripts/appletv.py volume_down
scripts/appletv.py turn_on # Wake from sleep
scripts/appletv.py turn_off # Put to sleep
scripts/appletv.py power # Toggle
scripts/appletv.py apps # List installed apps
scripts/appletv.py app Netflix
scripts/appletv.py app YouTube
scripts/appletv.py app "Disney+"
scripts/appletv.py scan # Find Apple TVs on network
scripts/appletv.py statusscripts/appletv.py pausescripts/appletv.py turn_offscripts/appletv.py app Netflix