SoCo 0.11 release notes

SoCo 0.11 is a new version of the SoCo library. This release adds new features and fixes several bugs.

SoCo (Sonos Controller) is a simple Python class that allows you to programmatically control Sonos speakers.

New Features and Improvements

  • The new properties is_playing_tv, is_playing_radio and is_playing_line_in have been added (#225)

  • A method get_item_album_art_uri has been added to return the absolute album art full uri so that it is easy to put the album art in user interfaces (#240).

  • Added support for satellite speaker detection in network topology parsing code (#245)

  • Added support to search the music library for tracks, an artists’ albums and an artist’s album’s tracks (#246)

  • A fairly extensive re-organisation of the DIDL metadata handling code, which brings SoCo more into line with the DIDL-Lite spec, as adopted by Sonos. DIDL objects can have now have multiple URIs, and the interface is much simpler. (#256)

  • Event objects now have a timestamp field (#273)

  • The IP address (ie network interface) for discovering Sonos speakers can now be specified (#277)

  • It is now possible to trigger an update of the music library (#286)

  • The event listener port is now configurable (#288)

  • Methods that can only be executed on master speakers will now raise a SoCoSlaveException (#296)

  • An example has been added that shows how to play local files by setting up a temporary HTTP server in python (#307)

  • Test cleanup (#309)

Bugfixes

  • The value of the IP_MULTICAST_TTL option is now ensured to be one byte long (#269)

  • Various encoding issues have been fixed (#293, #281, #306)

  • Fix bug with browsing of imported playlists (#265)

  • The discover method was broken in Python 3.4 (#271)

  • An unknown / missing UPnP class in event subscriptions has been added (#266, #301, #303)

  • Fix add_to_queue which was broken since the data structure refactoring (#308, #310)

Backwards Compatability

  • The exception DidlCannotCreateMetadata has been deprecated. DidlMetadataError should be used instead. (#256)

  • Code which has been deprecated for more than 3 releases has been removed. See previous release notes for deprecation notices. (#273)