Table of Contents
- From 0.9.0-0.9.7
- From 0.8.2-0.9.0
- From 0.7.1-… to 0.8.0
- From 0.7.0 to 0.7.1
- From 0.6.0 to 0.7.0
- From 0.5.0 to 0.6.0
- From 0.4.0 to 0.5.0
- From 0.3.x to 0.4.0
This page contains details on how to migrate between different versions of pyatv. Beware that these guides are written according to “best effort” and might be incomplete or missing some details. If you find something to be unclear, please help out by writing an issue or creating a pull request
- Each service now has interface.BaseService.enabled, indicating if pyatv should connect to the service or not. Generally this is of little importance, but it must be verified before initiaing pairing. Pairing should never be initiated for disabled services.
- To restore support with tvOS 15, make sure to provide AirPlay credentials. Credentials obtained with earlier versions of pyatv are incompatible (pair again).
passwordproperty previously present in
conf.RaopServiceis now part of
- Make sure to verify interface.BaseService.pairing before calling pyatv.pair (in case new credentials are needed).
- Check interface.BaseService.requires_password if a password needs to be provided
- At least version 3.17.3 of protobuf is now required.
- mediafile replaced audio-metadata as a dependency
- Service specific configurations, e.g. conf.MrpService, have been replaced by conf.ManualService. Scheduled for removal in 1.0.0.
- interface.RemoteControl.volume_up and interface.RemoteControl.volume_down are now replaced by interface.Audio.volume_up and interface.Audio.volume_up. Scheduled for removal in 1.0.0.
From 0.7.1-… to 0.8.0
- The push updater interface is now considered a feature and availability (via interface.Features.get_feature and const.FeatureName.PushUpdates) should now be performed before using it.
- audio-metadata, bitarray and miniaudio are new dependencies in this release (used by RAOP).
- At least version 3.14 of protobuf is now required.
protocolto pyatv.connect is no longer needed and its value will be ignored. Scheduled for removal in version 1.0.0.
From 0.7.0 to 0.7.1
- Unicast scanning (i.e. passing
hoststo pyatv.scan) will not verify if hosts are on the same network anymore (
NonLocalSubnetErrorwill not be thrown). Requests will just time out. See [#775] for more details.
NonLocalSubnetErroris never thrown and shall not be checked for. It will be removed in 0.9.0.
From 0.6.0 to 0.7.0
- No library changes
- MRP arguments to atvproxy has been simplified (only credentials and IP to Apple TV must now be provided)
From 0.5.0 to 0.6.0
- interface.AppleTV.close has been changed to a regular function instead of a coroutine.
- All listeners are now stored as weak references
From 0.4.0 to 0.5.0
- Python 3.6 or later is now required
wakeupin interface.RemoteControl have been deprecated. Use interface.Power.turn_on and interface.Power.turn_off instead.
- helpers.auto_connect is now a coroutine. The example has been updated.
From 0.3.x to 0.4.0
- Device configuration has moved from
pyatv.connect_to_apple_tvhas been renamed to pyatv.connect
pyatv.scan_for_apple_tvshas been renamed to pyatv.scan
- Pairing has been made generic and is done via pyatv.pair
- Constants, e.g. media type, has been changed into enums
play_statehas been renamed to
- AirPlay interface has been renamed from
only_home_sharinghave been removed from pyatv.scan
Metadata.artwork_urlmethod has been deprecated and has no replacement
- All methods in the AirPlay interface has been deprecated in favor
of the generic pairing interface (except for
pyatv.pair_with_apple_tvhas been replaced by pyatv.pair which can pair all protocols