Remote Control and Enhanced Metadata for AirPlay 2 #2257
mikebrady
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Remote Control for AirPlay 2
We are thrilled to announce that remote control of AirPlay 2 players is becoming available with the
developmentversion of Shairport Sync5.4-dev. In tandem with this, enhanced metadata is also available on the D-Bus interface for AirPlay 2 players.You'll know that Shairport Sync has had remote control facilities for classic AirPlay players for some time -- for example, you could control play and volume and some more things via Shairport Sync's MPRIS, D-Bus or MQTT interfaces, but this only worked only on "classic" AirPlay (aka AirPlay 1) players, and "Advanced" controls were only available for iTunes or the macOS Music app.
Now, most of these remote control facilities are available on AirPlay 2 players using the same Shairport Sync commands and properties.
Update: It emerges that paintarm287 has been working on this independently, and we look forward to incorporating what they have deciphered!
Enhanced Metadata for Airplay 2
AirPlay 2 provides much more metadata than classic AirPlay. This is now provided on the D-Bus interface alongside existing metadata. Much of it has not been figured out.
More Details
MPRISinterface has been brought closer to the trueMPRISstandard:Volume,LoopStatusandShuffleare now settable properties as specified in the standard, whereas up to now they were read-only properties.Volume,LoopStatusandShuffleare now settable properties. Most of theRemoteControlandAdvancedRemoteControlsuite of commands and properties are available on AirPlay 2 connections.NowPlayingInformationandCommandInformation. Both of these are essentially raw feeds of metadata coming from AirPlay 2. The only exception is that raw picture data is removed from theNowPlayingInformationand is replaced by a local file reference to the same data.MPRISand D-Bus interfaces now check parameters and report errors before accepting a command or setting a property.Other Changes
MPRIStest clientsshairport-sync-dbus-test-clientandshairport-sync-mpris-test-clienthave been updated to pretty-print the new metadata and command information.Divergences between AirPlay 2 and classic AirPlay
Although many properties and features remain the same, not everything is quite the same between classic AirPlay and AirPlay 2 commands and metadata.
The Picture is Evolving!
This picture is changing as we develop more understanding.
Deprecations!
There will likely be deprecations as these facilities evolve. For example,
AdvancedRemoteControl, duplicateVolumeandSetVolumeproperties and methods will go away;AdvancedRemoteControl.AvailableandRemoteControl.Availablemay disappear, etc. In theMPRISinterface, theSetVolumemethod may disappear -- it's not part of theMPRISstandard and is not needed any more.All reactions