Apple TV component does not work on TVos 13

Yes! On a raspberry Pi.

@ postlund I will have soon to repass to a newest backup soon since a lot of automations are not working anymore in my home and that is a bit… annoying. BUT I really want to help you if you need I am looking into something before that. Just give me some news so I know how long I will have to live with an old school home (-:

It is ok to revert, make sure it works for you! I’ll have a look at this tomorrow to see if I can figure something out!

Can you just tell me which app you used for airplay, so I can try with the same?

I use Spotify and then I choose the Airplay within Spotify. See below:

I have tried with other program such as Tunein Radio and it works great as well!

Can I reinstall my Backup? In that backup I have the newest Pyatv and the artwork is not working. I will not be able to help you afterwards. Ok?

That will be fine!

Great! Good luck with the artwork (-:

1 Like

@postlund I really does not understand anything. Today when I repass to my newest backup with Pyatv v.ceb69bf… the artwork was working as a charm!

No idea what I did and what happened…

Hard to tell without logs from both occasions for comparisons I’m afraid. I’m still confused to why it works at all as I have never seen Spotify push this information over AirPlay before. Would be interesting to see the logs now though. This in your configuraiton.yaml would help:

logger:
  default: error
  logs:
    pyatv: debug
    custom_components.apple_tv: debug

I get the following error:

The websocket command media_player_thumbnail is deprecated. Use /api/media_player_proxy instead.
10:10:36 AM – Media player (WARNING) - message first occurred at 10:10:23 AM and shows up 3 times

But as I mentionned yesterday, the artwork is now working when I stream music on Spotify or another app such as TuneIn Radio

You can ignore that log, it is an issue in mini-media-player and will be fixed in the next release (if the release isn’t already out, not sure). I guess we will have to monitor the situation then. Logs would still be appreciated though, so I can see how AirPlay picks up metadata from Spotify (since I cannot reproduce it myself).

I have written the log config in my configuration. What should I do next to get the log file? I am a newbie, sorry! Using HA via Hassio on Raspberry Pi.

2020-03-31 21:43:23 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Data=d502a773a7f3ac948a3f0a62fa47d5cf7408a10056f1e30aa42a79e15aa13129197bcd571e2802f65ebfc5c66658f37090a3676cd96f816a99cffbb38a42256a81b50865944d66f9a70e848f190f3f2c6cf1b07c1f76eff02e516efa6d7beb3a5a32a3389afe648ef3b6b6f199decba43ce79a51feafc1430661e109b10c177e77b72b2c1cd0b90630db0e481defce1d501cf12945445430d4993e3d1cba72683cd5dbe314e40833eb23daeb4a4d0219a0b6a79750d14b972934f2ca6d6f50a96f85fc0ce2e9945e5408622d10f98468dd918380224bd62f2b754c5ec224b9f8ba0ae62027e2702a7706d0774f65990410447171ff17ce92117f837731693…)
2020-03-31 21:43:23 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Decrypted=08252000a201bd020a2435343630313336362d354439462d343233412d413830412d3036374636413339463145311204412054561a094170706c65c2a05456220631374b3434392a16636f6d2e6170706c652e6d6564696172656d6f7465643801404d480150016211636f6d2e6170706c652e54564d75736963680170017801820106dc56e736a5888801029a012437464245413344372d423234322d343239332d413236382d393939303533384432443338a2011164633a35363a65373a33363a61353a3839a80104b00100c00100d2012432444239323241302d323642432d344632452d393832452d303345344133393645323145e80100f00101fa0…)
2020-03-31 21:43:23 DEBUG (MainThread) [pyatv.mrp.connection] << Receive: Protobuf: type: DEVICE_INFO_UPDATE_MESSAGE
errorCode: 0
[deviceInfoMessage] {
uniqueIdentifier: “54601366-5D9F-423A-A80A-067F6A39F1E1”
name: “A TV”
localizedModelName: “Apple\302\240TV”
systemBuildVersion: “17K449”
applicationBundleIdentifier: “com.apple.mediaremoted”
protocolVersion: 1
lastSupportedMessageType: 77
supportsSystemPairing: true
allowsPairing: true
systemMediaApplication: “com.apple.TVMusic”
supportsACL: true
supportsSharedQueue: true
supportsExtendedMotion: true
bluetoothAddress: “\334V\3476\245\210”
sharedQueueVersion: 2
deviceUID: “7FBEA3D7-B242-4293-A268-9990538D2D38”
managedConfigDeviceID: “dc:56:e7:36:a5:89”
deviceClass: 4
logicalDeviceCount: 0
isProxyGroupPlayer: false
groupUID: “2DB922A0-26BC-4F2E-982E-03E4A396E21E”
isGroupLeader: false
isAirplayActive: true
systemPodcastApplication: “com.apple.podcasts”
enderDefaultGroupUID: “F1CC143C-AB87-4B94-BD7C-10D24F72CED4”
airplayReceivers: “TVAirPlay”
}
2020-03-31 21:43:23 DEBUG (MainThread) [pyatv.mrp.protocol] Dispatching message with type 37 (DeviceInfoMessage) to Listener(func=<bound method MrpPower._update_power_state of <pyatv.mrp.MrpPower object at 0x6c560870>>, data=None)
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Data=c00178742653b413e89ae6ecd438db401329a6a5e030e75425bea457639bb4122f032aabee4da624fdca17b2527a101fd6913257c4d015f9150a20459295da68bf8a64c162bfc583f2f65d4c10bee597fbf53f25af5d4910cde2b573f8798de6d41691ea3a021ba13a4fab89944d752dbb7775a495e49d0e041bff4f7ac69566669a454839612c6c96fa514b288e05cb833b08cc7c8db7a55fc06aa54b0239abc5d2d7439234205af1c3d150bd989c763720a582ba7dfdb3622b9ef7ab514d372029)
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Decrypted=080420004aa901124f0a04080310010a04080110010a04080210010a06082e100150010a06082f100158030a04080510010a04080610010a04081310000a04081210000a04080910010a04080b10010a07082d10018001004a560a0e080112044120545618cc86bde2041217087d1213636f6d2e6170706c652e5456416972506c61791a2b0a194d6564696152656d6f74652d44656661756c74506c61796572120e44656661756c7420506c61796572)
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive: Protobuf: type: SET_STATE_MESSAGE
errorCode: 0
[setStateMessage] {
supportedCommands {
supportedCommands {
command: TogglePlayPause
enabled: true
}
supportedCommands {
command: Play
enabled: true
}
supportedCommands {
command: Pause
enabled: true
}
supportedCommands {
command: ChangeRepeatMode
enabled: true
repeatMode: One
}
supportedCommands {
command: ChangeShuffleMode
enabled: true
shuffleMode: Songs
}
supportedCommands {
command: NextTrack
enabled: true
}
supportedCommands {
command: PreviousTrack
enabled: true
}
supportedCommands {
command: SkipBackward
enabled: false
}
supportedCommands {
command: SkipForward
enabled: false
}
supportedCommands {
command: BeginFastForward
enabled: true
}
supportedCommands {
command: BeginRewind
enabled: true
}
supportedCommands {
command: SeekToPlaybackPosition
enabled: true
canScrub: 0
}
}
playerPath {
origin {
type: Local
displayName: “A TV”
identifier: 1280262988
}
client {
processIdentifier: 125
bundleIdentifier: “com.apple.TVAirPlay”
}
player {
identifier: “MediaRemote-DefaultPlayer”
displayName: “Default Player”
}
}
}
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.protocol] Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.mrp.player_state.PlayerStateManager object at 0x6c8fdd50>>, data=None)
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Data=4d5588e8e0d8aefc9ce2d5357cb0435a123d30237867de32c40366f7721f63c80ce88ca99eb46b859317171056de7ef9efd96c3f605f2f6f4bdb24135655d0cf826f90cdd4c4eb75eecb0e2903306fc13853cd9d6d6a2c4921025a105b532109cf773b853e8a531b7f4595ee2e629f92b829cdfdf044e41c755ee0d266bd34a337f669267b1dbce4c78992201dd8d4eefd33f4c0efc2a5dda8f01d56493c0560d36017bd3f8fc03e734bd826fdf42625717d4001973ff1c42a98c78b3ec3)
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Decrypted=08372000da03360a34087d1213636f6d2e6170706c652e5456416972506c61793a0753706f746966794212636f6d2e73706f746966792e636c69656e74)
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive: Protobuf: type: UPDATE_CLIENT_MESSAGE
errorCode: 0
[updateClientMessage] {
client {
processIdentifier: 125
bundleIdentifier: “com.apple.TVAirPlay”
displayName: “Spotify”
bundleIdentifierHierarchys: “com.spotify.client”
}
}
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.protocol] Dispatching message with type 55 (UpdateClientMessage) to Listener(func=<bound method PlayerStateManager._handle_update_client of <pyatv.mrp.player_state.PlayerStateManager object at 0x6c8fdd50>>, data=None)
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Decrypted=082f20009a03580a560a0e080112044120545618cc86bde2041217087d1213636f6d2e6170706c652e5456416972506c61791a2b0a194d6564696152656d6f74652d44656661756c74506c61796572120e44656661756c7420506c61796572)
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive: Protobuf: type: SET_NOT_PLAYING_PLAYER_MESSAGE
errorCode: 0
[setNowPlayingPlayerMessage] {
playerPath {
origin {
type: Local
displayName: “A TV”
identifier: 1280262988
}
client {
processIdentifier: 125
bundleIdentifier: “com.apple.TVAirPlay”
}
player {
identifier: “MediaRemote-DefaultPlayer”
displayName: “Default Player”
}
}
}
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.player_state] Updated client
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Data=bf01e4c6c14f4b38bc2f9ed1914642f4aac81d36f2731336e1e714f76652e062206593d0a4868439d309896620060725e452203fda66660b884fac96756ff997b770d921a8a62b955e2627bc981480f62b3ad97c098528395735d5a156f912f498c4fca7363444d5abe4465a6490dfdc1a58c5c40e293fc958fedae8c538359e2fb89115ba213ae8917939cbc83924237cbed310eab19277935571c3ffe2b49cc82ccff58d8bcbdbda0122a3f1c8954875919078993a77072c9e80a03ab0aff5a1)
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Decrypted=080420004aa801124e0a04080110010a04080210010a04080310010a04080410010a04080510010a04080610010a04080910010a04080a10010a04080b10010a04080c10010a04080810010a04080710010a04082d10014a560a0e080112044120545618cc86bde2041217087d1213636f6d2e6170706c652e5456416972506c61791a2b0a194d6564696152656d6f74652d44656661756c74506c61796572120e44656661756c7420506c61796572)
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive: Protobuf: type: SET_STATE_MESSAGE
errorCode: 0
[setStateMessage] {
supportedCommands {
supportedCommands {
command: Play
enabled: true
}
supportedCommands {
command: Pause
enabled: true
}
supportedCommands {
command: TogglePlayPause
enabled: true
}
supportedCommands {
command: Stop
enabled: true
}
supportedCommands {
command: NextTrack
enabled: true
}
supportedCommands {
command: PreviousTrack
enabled: true
}
supportedCommands {
command: BeginFastForward
enabled: true
}
supportedCommands {
command: EndFastForward
enabled: true
}
supportedCommands {
command: BeginRewind
enabled: true
}
supportedCommands {
command: EndRewind
enabled: true
}
supportedCommands {
command: AdvanceRepeatMode
enabled: true
}
supportedCommands {
command: AdvanceShuffleMode
enabled: true
}
supportedCommands {
command: SeekToPlaybackPosition
enabled: true
}
}
playerPath {
origin {
type: Local
displayName: “A TV”
identifier: 1280262988
}
client {
processIdentifier: 125
bundleIdentifier: “com.apple.TVAirPlay”
}
player {
identifier: “MediaRemote-DefaultPlayer”
displayName: “Default Player”
}
}
}
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.protocol] Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.mrp.player_state.PlayerStateManager object at 0x6c8fdd50>>, data=None)
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Data=30aca2f7e013c5dad1ab0b250b2d61d9d4dd1244663d23fd678326cadd4340fbebe637198f50a1f3017a08fe8665991ecf)
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Decrypted=082e20009203190a17087d1213636f6d2e6170706c652e5456416972506c6179)
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive: Protobuf: type: SET_NOW_PLAYING_CLIENT_MESSAGE
errorCode: 0
[setNowPlayingClientMessage] {
client {
processIdentifier: 125
bundleIdentifier: “com.apple.TVAirPlay”
}
}
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.protocol] Dispatching message with type 46 (SetNowPlayingClientMessage) to Listener(func=<bound method PlayerStateManager._handle_set_now_playing_client of <pyatv.mrp.player_state.PlayerStateManager object at 0x6c8fdd50>>, data=None)
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.player_state] Active player is now com.apple.TVAirPlay
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Data=c0019f79667f303189922aee565a7a21c8291d5fb3f249300a8c79a1db9bf9d9b7c90e7a52bb3e3caf5005c21be859e2c40d90bb19a73f1f75f637ac0d976fc86986bb73d0e57ebcbff5baaf2a42750c072e5dcb3aba00da0f3b524b6e94da9120f32b8657d2f4137fc94848e6d2523ca99ac0bf712ff56ee5acca5260d46aaff1bd67b073835764d55f681716419d51ab86940d298cfa6805dbba4717c765e3f533f559812e8ae374b4170aff62f9dab713e41818cfcdc07448930daece2180666bf603e4a56bf8e7b194118d8c2063e616bf8c9145fcff5c6726296ff7ebe0fcbb71f0bf447a652a8694f92d344cc6ed5d3be0980aab1734f6cbd3762e0…)
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Decrypted=080420004aa901124f0a04080310010a04080110010a04080210010a06082e100150010a06082f100158030a04080510010a04080610010a04081310000a04081210000a04080910010a04080b10010a07082d10018001004a560a0e080112044120545618cc86bde2041217087d1213636f6d2e6170706c652e5456416972506c61791a2b0a194d6564696152656d6f74652d44656661756c74506c61796572120e44656661756c7420506c61796572)
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive: Protobuf: type: SET_STATE_MESSAGE
errorCode: 0
[setStateMessage] {
supportedCommands {
supportedCommands {
command: TogglePlayPause
enabled: true
}
supportedCommands {
command: Play
enabled: true
}
supportedCommands {
command: Pause
enabled: true
}
supportedCommands {
command: ChangeRepeatMode
enabled: true
repeatMode: One
}
supportedCommands {
command: ChangeShuffleMode
enabled: true
shuffleMode: Songs
}
supportedCommands {
command: NextTrack
enabled: true
}
supportedCommands {
command: PreviousTrack
enabled: true
}
supportedCommands {
command: SkipBackward
enabled: false
}
supportedCommands {
command: SkipForward
enabled: false
}
supportedCommands {
command: BeginFastForward
enabled: true
}
supportedCommands {
command: BeginRewind
enabled: true
}
supportedCommands {
command: SeekToPlaybackPosition
enabled: true
canScrub: 0
}
}
playerPath {
origin {
type: Local
displayName: “A TV”
identifier: 1280262988
}
client {
processIdentifier: 125
bundleIdentifier: “com.apple.TVAirPlay”
}
player {
identifier: “MediaRemote-DefaultPlayer”
displayName: “Default Player”
}
}
}
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.protocol] Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager.handle_set_state of <pyatv.mrp.player_state.PlayerStateManager object at 0x6c8fdd50>>, data=None)
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Decrypted=080420004adf031a8403080012ff020a2439313531304335452d363934412d343941422d393537432d44383046463141314334463912d6027123f2047b6e7a664098010099029921c98a37282940bd020000803fe2022439313531304335452d363934412d343941422d393537432d4438304646314131433446399a04850262706c6973743030d4010203040506070a582476657273696f6e592461726368697665725424746f7058246f626a6563747312000186a05f100f4e534b657965644172636869766572d1080954726f6f748001a30b0c1355246e756c6cd30d0e0f101112574e532e6b6579735a4e532e6f626a656374735624636c617373a0a…)
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.connection] << Receive: Protobuf: type: SET_STATE_MESSAGE
errorCode: 0
[setStateMessage] {
playbackQueue {
location: 0
contentItems {
identifier: “91510C5E-694A-49AB-957C-D80FF1A1C4F9”
metadata {
duration: 179.82598639455782
artworkAvailable: false
elapsedTime: 12.578548752834466
playbackRate: 1.0
contentIdentifier: “91510C5E-694A-49AB-957C-D80FF1A1C4F9”
nowPlayingInfoData: "bplist00\324\001\002\003\004\005\006\007\nX$versionY$archiverT$topX$objects\022\000\001\206\240
\020\017NSKeyedArchive…
elapsedTimeTimestamp: 607376607.745006
}
}
}
playerPath {
origin {
type: Local
displayName: “A TV”
identifier: 1280262988
}
client {
processIdentifier: 125
bundleIdentifier: “com.apple.TVAirPlay”
}
player {
identifier: “MediaRemote-DefaultPlayer”
displayName: “Default Player”
}
}
}
2020-03-31 21:43:27 DEBUG (MainThread) [pyatv.mrp.protocol] Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager.handle_set_state of <pyatv.mrp.player_state.PlayerStateManager object at 0x6c8fdd50>>, data=None)
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Data=a10542d4bb776ba08480e27babf35aace7dfd607356ec8a537c0be6743db0faecd38e3545eb973dfdd0109750f3c6a68a5ec226e0041d764da92c9e28d9afae02d601ea52971c50df7c21a9bfd6830e7e0dc8475d948e637b425e3026ed3c7d880a2e2d9c15e11e514ad2b08d4c6141464baaf716b8479ca18ec448d3e7a0bd52460751907d22e675311ef76ed5e669d658dc911c646ee0762e043dc923254a13275d65a244b469083ef9792b26f5494f4b317b925fdf7a3cb97ad76e8c20f54cb7d3655db367b5d6366c1a8e538c413b39d3a25fe7093abd870daa17e54ff574e41d38b06f1d7dd1118a4deb1aa6fd303217c91b87678a9ebfc9c35d34cc…)
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Decrypted=080420004a8a051aaf04080012aa040a2473706f746966793a747261636b3a364d30497361555834474e79746f346e69536567664912fb030a094e6f204f7074696f6e320f53746f6e6579202844656c757865293a0b506f7374204d616c6f6e6571df4f8d976e7a6640980101e2012773706f746966793a706c61796c6973743a3337693964515a4631445753576c6c6b39526d675a4dfa010a696d6167652f6a70656790020199027b14ae87d6c2e13fbd020000803fc80201d00212d80204e2022473706f746966793a747261636b3a364d30497361555834474e79746f346e6953656766498004018804019a04850262706c6973743030d4010203040…)
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] << Receive: Protobuf: type: SET_STATE_MESSAGE
errorCode: 0
[setStateMessage] {
playbackQueue {
location: 0
contentItems {
identifier: “spotify:track:6M0IsaUX4GNyto4niSegfI”
metadata {
title: “No Option”
albumName: “Stoney (Deluxe)”
trackArtistName: “Post Malone”
duration: 179.826
artworkAvailable: true
collectionIdentifier: “spotify:playlist:37i9dQZF1DWSWllk9RmgZM”
artworkMIMEType: “image/jpeg”
discNumber: 1
elapsedTime: 0.5550339365005493
playbackRate: 1.0
totalDiscCount: 1
totalTrackCount: 18
trackNumber: 4
contentIdentifier: “spotify:track:6M0IsaUX4GNyto4niSegfI”
mediaType: Audio
mediaSubType: Music
nowPlayingInfoData: "bplist00\324\001\002\003\004\005\006\007\nX$versionY$archiverT$topX$objects\022\000\001\206\240
\020\017NSKeyedArchive…
elapsedTimeTimestamp: 607376595.729384
artworkIdentifier: “DF4A068E-E3AA-4E46-AAE1-920C63AC9DAC”
legacyUniqueIdentifier: -1427170829195417957
}
artworkDataWidth: 600
artworkDataHeight: 600
}
}
playerPath {
origin {
type: Local
displayName: “A TV”
identifier: 1280262988
}
client {
processIdentifier: 125
bundleIdentifier: “com.apple.TVAirPlay”
}
player {
identifier: “MediaRemote-DefaultPlayer”
displayName: “Default Player”
}
}
}
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.protocol] Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.mrp.player_state.PlayerStateManager object at 0x6c8fdd50>>, data=None)
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] >> Send (Data=0820122433626262393135612d383434642d343432342d626466322d3566663537316137396661372000aa02160800100121000000000000f0bf290000000000007940)
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] >> Send (Encrypted=3c3f1806802bf52489a36ae9de3c8381a276c47e70c8e7ed71fedb61229a4ae6b6426ac946c09bb1bd2bbb1154277d5f9bff5e1ec968e33e33da4e7b3872b4ac54465ee35d952d25a1ccd62333e0ca778c0018)
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] >> Send: Protobuf: type: PLAYBACK_QUEUE_REQUEST_MESSAGE
identifier: “3bbb915a-844d-4424-bdf2-5ff571a79fa7”
errorCode: 0
[playbackQueueRequestMessage] {
location: 0
length: 1
artworkWidth: -1.0
artworkHeight: 400.0
}
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Data=a2ac03b5518e209d34c25f7c0d8ffb74a23551c1da6e2ac91e6742dbe0a4a22078919f5c7bd7d220b923cc96f0fc708fde32539cfc718f3ecd9154b47f679e92b1618d1fc3a4eba50078681dbb5b2256e1d535ccc5b6f5943d208394531f0ed824def55f4b7839a32a3074fcd3c208251127aa7c27a0ab454153f7a495a15b698c1f27e784d3d8297f4484cf42cb485a9b95e51bdd96f6d7fd5dbac24110b57908b366cd896c9a299298353b8c9d2ec7afe83b1a25d0d44b7eef672d3eef5de12f9a76e965a7801ecf0b0e8a0366022c4db0f9f1f74d83b04ab13ed7006f0755252bda8c0cf062effa0f8fac72093bb1539f4654230a2281f52f60d171876…)
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] Require 54818 bytes but only 13029 in buffer
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Data=e1219cc5ee32c44050451a91e017421dd0d57c68555a7708ed1ea4b76e666ec302006b1b0f70e76aae0d72352cfd7a7ef949ac2bcf202d4436384722cd1c34f51702195022eff11f66d42d0666828996d8d33337a2099f106525e484efd0cd5a40b9d7f3468bf0de9242e5ba601ab8869227a11bc2b1deac161e347bc2b916bf4f6b46f3d7b7df3b81901254e95c510dfd0772848aa806dde454bafb444db5acc34e002294a78f99934e97a47dd76a192458dfaf176d98710088cb349f735ed711da0c8e3f6b1ea577adc9405526a90ab54f30f26a7cf7660bfda5b87218ec4fdde6d91951ce966e9c00e91b28d8e6dab8770ecf61ae7c49019a9a4195a8d…)
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] Require 54818 bytes but only 33301 in buffer
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Data=a51d06d5cf602cd08df5d31d2e419795863231ebfb84e2776ee88c5097fd520e74949cdd1a172f8a77442e8703f9af9a963e08402e175990af6a1cf16aeba2e77db2fbd80dc26a4afae923b43e25368772f77e4e160c7ea77d2723cd2eba7323f49b41726bdc9f98d0cddccf4b948f7a14f5335501e5e1ba22ddb230631f60caafc121546513e48eab169738010dae58a5d17d3e609ca2c2987b82c3aec89ce0075a79427553147b24f0286a677970840ae60de691dbc5432c867a82444ecd3e4159ea7146a61bd463744fe93163dd45b76d2c29d4b518a83cbb338e7e680f618187af52395aa2639d04bd4c0409dfecf3e8d7fe8cd07e2ad7aa98331babc…)
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] Require 54818 bytes but only 46333 in buffer
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Data=84032463b66c2a6a3d274415a206e3221b0e695a807879e0bdae3413166f3d3b7b2270cdbd5b10b23a5146cbd28a2532f239f99b6f96722316774fe2efa16d5dfe4427316c4d56b860cd8b3b41a9b30d524edfc88321afb1292d74bc4eb8bf720e301bfdf64fdcdb43d3e5f87d4d02e75d251fbd5e84722758046b463feb8bc3b2dabab24f81ff9380e188934b3ce6935adff5732959494f4ef7c2a4fda89849088b4a773bec8fc2eba7996a333ef4cc266e881506b22633b222882f6297b01661bc5138ced45d8ada97469c0dd087e26d028287a299bd081ac58925f92b3d4b168b1e03dd9d28cb0f117dce6011306f69eba5e1b2893450056eadd3bf4b9…)
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Decrypted=0804122433626262393135612d383434642d343432342d626466322d35666635373161373966613720004ae4ab031acaaa03080012a9a9030a2473706f746966793a747261636b3a364d30497361555834474e79746f346e6953656766491af9a803ffd8ffe10ffe4578696600004d4d002a000000080005011a0005000000010000004a011b0005000000010000005201280003000000010002000002130003000000010001000087690004000000010000005a00000000000000480000000100000048000000010007900000070000000430323231910100070000000401020300a00000070000000430313030a00100030000000100010000a00200040…)
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] << Receive: Protobuf: type: SET_STATE_MESSAGE
identifier: “3bbb915a-844d-4424-bdf2-5ff571a79fa7”
errorCode: 0
[setStateMessage] {
playbackQueue {
location: 0
contentItems {
identifier: “spotify:track:6M0IsaUX4GNyto4niSegfI”
artworkData: "\377\330\377\341\017\376Exif\000\000MM\000*\000\000\000\010\000\005\001\032\000\005\000\000\000\001\000\000\000J\001\033\000\00…
artworkDataWidth: 400
artworkDataHeight: 400
}
requestId: “05929A7D-91CE-4A6D-A821-07BC70766157”
resolvedPlayerPath {
origin {
type: Local
displayName: “A TV”
identifier: 1280262988
}
client {
processIdentifier: 125
bundleIdentifier: “com.apple.TVAirPlay”
displayName: “Spotify”
bundleIdentifierHierarchys: “com.spotify.client”
}
player {
identifier: “MediaRemote-DefaultPlayer”
displayName: “Default Player”
}
}
}
playerPath {
origin {
type: Local
displayName: “A TV”
identifier: 1280262988
}
client {
processIdentifier: 125
bundleIdentifier: “com.apple.TVAirPlay”
}
player {
identifier: “MediaRemote-DefaultPlayer”
displayName: “Default Player”
}
}
request {
location: 0
length: 1
artworkWidth: -1.0
artworkHeight: 400.0
requestID: “05929A7D-91CE-4A6D-A821-07BC70766157”
}
}
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] Require 54681 bytes but only 4544 in buffer
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Data=162749064c491836d900619149d0864aff79791ca9f6b26f6513ac25f1c222fcf7fbb2b3ac2466574f691855b16db07ea08a1b0e1a444b9dd44e2a6b91c1125ac53f726a5ce0fda5c678a950b2f9572a525052b2d85d793a63b7f1610194a573ffff100b4aa8d6d796a2389933d010c4c6c531008c0826c8172b345eb8fac367dab6680e34e773a95e96bfb81636d8f2e237065aa455b5f4e1451b49f21bd2b59d51ea95b72c43b10a7f9af9cfba6ed8dd0c58724ce23681924c27eabd279a6828f3a132c1d1e2424755f0882452c16ebce14b08b2777789c97f89720ba5747b71c2b2708920e7514bd54f0d45803e1f1738a95e48e8ca08020fcd33af0c0…)
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] << Receive (Decrypted=08212000b20280ab0308021285aa030a81aa030a260a2473706f746966793a747261636b3a364d30497361555834474e79746f346e69536567664912a9a9030a2473706f746966793a747261636b3a364d30497361555834474e79746f346e6953656766491af9a803ffd8ffe10ffe4578696600004d4d002a000000080005011a0005000000010000004a011b0005000000010000005201280003000000010002000002130003000000010001000087690004000000010000005a00000000000000480000000100000048000000010007900000070000000430323231910100070000000401020300a00000070000000430313030a001000300000001000…)
2020-03-31 21:43:28 DEBUG (MainThread) [pyatv.mrp.connection] << Receive: Protobuf: type: TRANSACTION_MESSAGE
errorCode: 0
[transactionMessage] {
name: 2
packets {
packets {
key {
identifier: “spotify:track:6M0IsaUX4GNyto4niSegfI”
}
packetData: "\n$spotify:track:6M0IsaUX4GNyto4niSegfI\032\371\250\003\377\330\377\341\017\376Exif\000\000MM\000*\000\000\000\010\000\005\001\0…
identifier: “15BF9DB4-A43C-437D-8A9B-759D73789414”
totalLength: 54441
totalWritePosition: 0
}
}
3 {
1 {
1: 1
2: “A TV”
3: 1280262988
}
2 {
1: 125
2: “com.apple.TVAirPlay”
7: “Spotify”
8: “com.spotify.client”
}
3 {
1: “MediaRemote-DefaultPlayer”
2: “Default Player”
}
}
}
2020-03-31 21:43:40 DEBUG (MainThread) [pyatv.mrp] Retrieved artwork DF4A068E-E3AA-4E46-AAE1-920C63AC9DAC from cache
2020-03-31 21:43:43 DEBUG (MainThread) [pyatv.mrp] Retrieved artwork DF4A068E-E3AA-4E46-AAE1-920C63AC9DAC from cache

Here is my log file when I start Spotify to Airplay. The artwork is working without issues for 2 days now.

Huh, look at that. Looks good, I wonder why I don’t get any metadata and artwork like that. As long as it works it’s good. If you run into the problem again, please enable logging again and include the logs :smile:

Don’t worry, I will do that since I really think it is a great function to get the artwork into this integration (-;
I mainly stream everything through the Apple TV and that is a big + to gathered in one place (your great Pyatv) artworks from different streaming media!
Keep in touch!

1 Like

FInally got back around to this … updated OpenSSL and it works as expected.

Thanks for the help/support/work on this project!

1 Like

Sorry if this is not the right forum for this, but I am experiencing the same problem to get the appleTV integration working.
I am on FreeNas 10.2. How did you updated OpenSSL in the jail? I have been browsing but it doesn’t seem straightforward and haven’t found a solution.
Thanks.

Hi @postlund, great job.
I have Home Assistant running in a FreeNAS (FreeBSD) jail. I have the same problem as @GeneralFailure with the current version of your appleTV integration. Seems that @GeneralFailure succeeded in upgrading to openssl 1.1.1, but I ended messing up my system. No great problem: I recovered from a snapshot. I am afraid that my knowledge is quite limited.
Is any way to install a previous version (0.4) of the appleTV integration?
I understand that this helps very little to your objetive of testing the versions, but I really want to to have it working.
Thank you very much.