dotfiles/.local/bin/play.py
2025-05-28 18:33:04 +02:00

57 lines
1.4 KiB
Python

from roonapi import RoonApi, RoonDiscovery
appinfo = {
"extension_id": "python_roon_test",
"display_name": "Python library for Roon",
"display_version": "1.0.0",
"publisher": "gregd",
"email": "mygreat@emailaddress.com",
}
target_zone = "Study"
try:
core_id = open("my_core_id_file").read()
token = open("my_token_file").read()
except OSError:
print("Please authorise first using discovery.py")
exit()
discover = RoonDiscovery(core_id)
server = discover.first()
discover.stop()
roonapi = RoonApi(appinfo, token, server[0], server[1], True)
# get target zone output_id
zones = roonapi.zones
output_id = [
output["zone_id"]
for output in zones.values()
if output["display_name"] == target_zone
][0]
print("OUTPUT ID", output_id)
# Examples of using play_media
print("RADIO")
items = roonapi.play_media(output_id, ["My Live Radio", "BBC Radio 4"])
print("SINGLE ARTIST")
items = roonapi.play_media(output_id, ["Library", "Artists", "Neil Young"])
print("SINGLE ARTIST ALBUM")
items = roonapi.play_media(
output_id, ["Library", "Artists", "Neil Young", "After The Goldrush"]
)
print("PLAY SINGLE ARTIST ALBUM - use Queue")
items = roonapi.play_media(
output_id, ["Library", "Artists", "Neil Young", "Harvest"], "Queue"
)
print("PLAY SUB GENRE")
items = roonapi.play_media(output_id, ["Genres", "Jazz", "Cool"])
print("TAG")
items = roonapi.play_media(output_id, ["Library", "Tags", "Mix"])