pyatv
pyatv copied to clipboard
Unable to stream audio to Apple TV 4k (2nd Generation)
Describe the bug
When attempting to use stream_file to stream a file to an Apple TV 4k 2nd Generation, I get no output or response from the device. I have RAOP and Companion creds, but in this instance believe I only need RAOP
Doing the same with a homepod plays the file as expected.
Error log
```atvremote --id "58:D3:49:EC:4B:5F" --raop-credentials cat ~/raop
--debug stream_file=out.mp3
2022-02-16 13:25:09 DEBUG [pyatv.scripts]: Running with pyatv 0.10.0
2022-02-16 13:25:09 DEBUG [pyatv.support.net]: Binding on :5353
2022-02-16 13:25:09 DEBUG [pyatv.support.net]: Binding on 127.0.0.1:0
2022-02-16 13:25:09 DEBUG [pyatv.support.net]: Binding on 192.168.188.58:0
2022-02-16 13:25:09 DEBUG [pyatv.core.scan]: Auto-discovered Apple TV 4k at 192.168.188.47:49152 via Protocol.Companion ({'rpmac': '1', 'rphn': 'add904d3e2d5', 'rpfl': '0xB67A2', 'rpha': 'bc915c67ac3f', 'rpmd': 'AppleTV11,1', 'rpvr': '330.5', 'rpad': '343ae2e2f0cd', 'rphi': 'b3b174099f4a', 'rpba': '8B:B3:FE:1E:9D:D4', 'rpmrtid': '19D22C47-75C3-4F31-9916-784457E0FB02'})
2022-02-16 13:25:09 DEBUG [pyatv.core.scan]: Auto-discovered Apple TV 4k at 192.168.188.47:7000 via Protocol.AirPlay ({'acl': '0', 'btaddr': '58:D3:49:EE:21:F0', 'deviceid': '58:D3:49:EC:4B:5F', 'fex': '1d9/St5/FbwI', 'features': '0x4A7FDFD5,0xBC157FDE', 'flags': '0x18644', 'gid': '9976945E-2AAD-5461-BBF6-2C709A58BFEF', 'igl': '1', 'gcgl': '1', 'gpn': 'Apple TV 4k', 'psgsz': '3', 'psgtp': '1', 'psgid': '9976945E-2AAD-5461-BBF6-2C709A58BFEF', 'pgm': '0', 'model': 'AppleTV11,1', 'protovers': '1.1', 'pi': 'a649af48-73d4-4984-a020-0563f7d1bf8e', 'psi': '19D22C47-75C3-4F31-9916-784457E0FB02', 'pk': '2eb0b3c36d1fd5b80328eff5365b0a858510a15e9c1e710feb392da7d1140d8e', 'srcvers': '605.1', 'osvers': '15.3', 'vv': '2'})
2022-02-16 13:25:09 DEBUG [pyatv.core.scan]: Auto-discovered 58D349EC4B5F@Apple TV 4k at 192.168.188.47:7000 via Protocol.RAOP ({'cn': '0,1,2,3', 'da': 'true', 'et': '0,3,5', 'ft': '0x4A7FDFD5,0xBC157FDE', 'sf': '0x18644', 'md': '0,1,2', 'am': 'AppleTV11,1', 'pk': '2eb0b3c36d1fd5b80328eff5365b0a858510a15e9c1e710feb392da7d1140d8e', 'tp': 'UDP', 'vn': '65537', 'vs': '605.1', 'ov': '15.3', 'vv': '2'})
2022-02-16 13:25:09 INFO [pyatv.scripts.atvremote]: Auto-discovered Apple TV 4k at 192.168.188.47
2022-02-16 13:25:09 DEBUG [pyatv.core.facade]: Adding handler for protocol Protocol.AirPlay
2022-02-16 13:25:09 DEBUG [pyatv.protocols.airplay]: Remote control not supported by device
2022-02-16 13:25:09 DEBUG [pyatv.protocols.companion]: Not adding Companion as credentials are missing
2022-02-16 13:25:09 DEBUG [pyatv.core.facade]: Adding handler for protocol Protocol.RAOP
2022-02-16 13:25:09 DEBUG [pyatv.core.facade]: Connecting to protocol: Protocol.AirPlay
2022-02-16 13:25:09 DEBUG [pyatv.core.facade]: Connected to protocol: Protocol.AirPlay
2022-02-16 13:25:09 DEBUG [pyatv.core.facade]: Connecting to protocol: Protocol.RAOP
2022-02-16 13:25:09 DEBUG [pyatv.core.facade]: Connected to protocol: Protocol.RAOP
2022-02-16 13:25:09 DEBUG [pyatv.core.facade]: Power management not supported by any protocols
2022-02-16 13:25:09 DEBUG [pyatv.core.facade]: Takeover (<class 'pyatv.interface.Audio'>, <class 'pyatv.interface.Metadata'>, <class 'pyatv.interface.PushUpdater'>, <class 'pyatv.interface.RemoteControl'>) by Protocol.RAOP
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Connected to 192.168.188.47
2022-02-16 13:25:09 DEBUG [pyatv.protocols.raop.raop]: Initializing RTSP with encryption=EncryptionType.FairPlaySAPv25|FairPlay|Unencrypted, metadata=MetadataType.Progress|Artwork|Text
2022-02-16 13:25:09 DEBUG [pyatv.protocols.raop.raop]: Update play settings to 44100/2/16bit
2022-02-16 13:25:09 DEBUG [pyatv.protocols.raop.raop]: Local ports: control=40325, timing=49790
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'GET /info RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nCSeq: 0\r\nDACP-ID: 17637169AC547979\r\nActive-Remote: 558547129\r\nClient-Instance: 17637169AC547979\r\n\r\n'
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:25:09 GMT\r\nContent-Length: 954\r\nContent-Type: application/x-apple-binary-plist\r\nServer: AirTunes/605.1\r\nCSeq: 0\r\n\r\nbplist00\xdf\x10\x17\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a!"\x1e$%&'()!+,-5\x1e789:;SpsiRvv_\x10\x14playbackCapabilities_\x10\x15canRecordScreenStream[statusFlags_\x10\x18keepAliveSendStatsAsBodyTname_\x10\x11volumeControlType_\x10\x0fprotocolVersion]senderAddressXdeviceIDRpi^screenDemoMode]initialVolumeZfeaturesEx_\x10\x10supportedFormats]sourceVersion_\x10\x16hasUDPMirroringSupportUmodelRpkZmacAddress_\x10\x15receiverHDRCapabilityXfeatures_\x10$19D22C47-75C3-4F31-9916-784457E0FB02\x10\x02\xd3\x1b\x1c\x1d\x1e\x1e\x1e_\x10\x15supportsInterstitials_\x10\x15supportsFPSSecureStop_\x10\x1dsupportsUIForAudioOnlyContent\t\t\t\x08\x12\x00\x01\x86D\t[Apple TV 4k\x10\x04S1.1_\x10\x14192.168.188.58:33378_\x10\x1158:D3:49:EC:4B:5F_\x10$a649af48-73d4-4984-a020-0563f7d1bf8e\x08#\xc0.\x00\x00\x00\x00\x00\x00\1d9/St5/FbwI\xd4./012334_\x10\x15lowLatencyAudioStream\screenStream[audioStream\bufferStream\x10\x00\x12\x01D\x08\x00\x12\x00\xe0\x00\x00U605.1\t[AppleTV11,1O\x10 .\xb0\xb3\xc3m\x1f\xd5\xb8\x03(\xef\xf56[\n\x85\x85\x10\xa1^\x9c\x1eq\x0f\xeb9-\xa7\xd1\x14\r\x8e_\x10\x1158:D3:49:EC:4B:5FT4k60\x13\xbc\x15\x7f\xdeJ\x7f\xdf\xd5\x00\x08\x009\x00=\x00@\x00W\x00o\x00{\x00\x96\x00\x9b\x00\xaf\x00\xc1\x00\xcf\x00\xd8\x00\xdb\x00\xea\x00\xf8\x01\x03\x01\x16\x01$\x01=\x01C\x01F\x01Q\x01i\x01r\x01\x99\x01\x9b\x01\xa2\x01\xba\x01\xd2\x01\xf2\x01\xf3\x01\xf4\x01\xf5\x01\xf6\x01\xfb\x01\xfc\x02\x08\x02\n\x02\x0e\x02%\x029\x02\x02a\x02j\x02w\x02\x80\x02\x98\x02\xa5\x02\xb1\x02\xbe\x02\xc0\x02\xc5\x02\xca\x02\xd0\x02\xd1\x02\xdd\x03\x00\x03\x14\x03\x19\x00\x00\x00\x00\x00\x00\x02\x01\x00\x00\x00\x00\x00\x00\x00<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03"' 2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:25:09 GMT', 'content-length': '954', 'content-type': 'application/x-apple-binary-plist', 'server': 'AirTunes/605.1', 'cseq': '0'}, body=b'bplist00\xdf\x10\x17\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a!"\x1e$%&\'()!+,-5\x1e789:;SpsiRvv_\x10\x14playbackCapabilities_\x10\x15canRecordScreenStream[statusFlags_\x10\x18keepAliveSendStatsAsBodyTname_\x10\x11volumeControlType_\x10\x0fprotocolVersion]senderAddressXdeviceIDRpi^screenDemoMode]initialVolumeZfeaturesEx_\x10\x10supportedFormats]sourceVersion_\x10\x16hasUDPMirroringSupportUmodelRpkZmacAddress_\x10\x15receiverHDRCapabilityXfeatures_\x10$19D22C47-75C3-4F31-9916-784457E0FB02\x10\x02\xd3\x1b\x1c\x1d\x1e\x1e\x1e_\x10\x15supportsInterstitials_\x10\x15supportsFPSSecureStop_\x10\x1dsupportsUIForAudioOnlyContent\t\t\t\x08\x12\x00\x01\x86D\t[Apple TV 4k\x10\x04S1.1_\x10\x14192.168.188.58:33378_\x10\x1158:D3:49:EC:4B:5F_\x10$a649af48-73d4-4984-a020-0563f7d1bf8e\x08#\xc0.\x00\x00\x00\x00\x00\x00\\1d9/St5/FbwI\xd4./012334_\x10\x15lowLatencyAudioStream\\screenStream[audioStream\\bufferStream\x10\x00\x12\x01D\x08\x00\x12\x00\xe0\x00\x00U605.1\t[AppleTV11,1O\x10 .\xb0\xb3\xc3m\x1f\xd5\xb8\x03(\xef\xf56[\n\x85\x85\x10\xa1^\x9c\x1eq\x0f\xeb9-\xa7\xd1\x14\r\x8e_\x10\x1158:D3:49:EC:4B:5FT4k60\x13\xbc\x15\x7f\xdeJ\x7f\xdf\xd5\x00\x08\x009\x00=\x00@\x00W\x00o\x00{\x00\x96\x00\x9b\x00\xaf\x00\xc1\x00\xcf\x00\xd8\x00\xdb\x00\xea\x00\xf8\x01\x03\x01\x16\x01$\x01=\x01C\x01F\x01Q\x01i\x01r\x01\x99\x01\x9b\x01\xa2\x01\xba\x01\xd2\x01\xf2\x01\xf3\x01\xf4\x01\xf5\x01\xf6\x01\xfb\x01\xfc\x02\x08\x02\n\x02\x0e\x02%\x029\x02
\x02a\x02j\x02w\x02\x80\x02\x98\x02\xa5\x02\xb1\x02\xbe\x02\xc0\x02\xc5\x02\xca\x02\xd0\x02\xd1\x02\xdd\x03\x00\x03\x14\x03\x19\x00\x00\x00\x00\x00\x00\x02\x01\x00\x00\x00\x00\x00\x00\x00<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03"'):
2022-02-16 13:25:09 DEBUG [pyatv.protocols.raop.raop]: Updated info parameters to: {'psi': '19D22C47-75C3-4F31-9916-784457E0FB02', 'vv': 2, 'playbackCapabilities': {'supportsInterstitials': True, 'supportsFPSSecureStop': True, 'supportsUIForAudioOnlyContent': True}, 'canRecordScreenStream': False, 'statusFlags': 99908, 'keepAliveSendStatsAsBody': True, 'name': 'Apple TV 4k', 'volumeControlType': 4, 'protocolVersion': '1.1', 'senderAddress': '192.168.188.58:33378', 'deviceID': '58:D3:49:EC:4B:5F', 'pi': 'a649af48-73d4-4984-a020-0563f7d1bf8e', 'screenDemoMode': False, 'initialVolume': -15.0, 'featuresEx': '1d9/St5/FbwI', 'supportedFormats': {'lowLatencyAudioStream': 0, 'screenStream': 21235712, 'audioStream': 21235712, 'bufferStream': 14680064}, 'sourceVersion': '605.1', 'hasUDPMirroringSupport': True, 'model': 'AppleTV11,1', 'pk': b'.\xb0\xb3\xc3m\x1f\xd5\xb8\x03(\xef\xf56[\n\x85\x85\x10\xa1^\x9c\x1eq\x0f\xeb9-\xa7\xd1\x14\r\x8e', 'macAddress': '58:D3:49:EC:4B:5F', 'receiverHDRCapability': '4k60', 'features': -4893864827358814251}
2022-02-16 13:25:09 DEBUG [pyatv.protocols.airplay.auth]: Setting up new AirPlay Pair-Verify procedure with type AuthenticationType.Legacy
2022-02-16 13:25:09 DEBUG [pyatv.protocols.airplay.srp]: Authentication keys (Private=606af368412bf52d79ed60b96a270fb64565c0823cf49b5b01486efe1630efb6, Public=5db5639145c91ff1370d6dd033d5e082de51c6669feefe405cd5794318e7597e)
2022-02-16 13:25:09 DEBUG [pyatv.protocols.airplay.srp]: Verification keys (Private=606af368412bf52d79ed60b96a270fb64565c0823cf49b5b01486efe1630efb6, Public=e3ebaed7897212fce473b6fd964a5ef0ce6957d6fa71a6500498401e720e5b62)
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Sending HTTP/1.1 message: b'POST /pair-verify HTTP/1.1\r\nContent-Length: 68\r\nUser-Agent: AirPlay/320.20\r\nConnection: keep-alive\r\nContent-Type: application/octet-stream\r\n\r\n\x01\x00\x00\x00\xe3\xeb\xae\xd7\x89r\x12\xfc\xe4s\xb6\xfd\x96J^\xf0\xceiW\xd6\xfaq\xa6P\x04\x98@\x1er\x0e[b]\xb5c\x91E\xc9\x1f\xf17\rm\xd03\xd5\xe0\x82\xdeQ\xc6f\x9f\xee\xfe@\\xd5yC\x18\xe7Y~'
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Received: b'HTTP/1.1 200 OK\r\nDate: Wed, 16 Feb 2022 12:25:09 GMT\r\nContent-Length: 96\r\nContent-Type: application/octet-stream\r\nServer: AirTunes/605.1\r\n\r\n\xfd4YUar}\xaap\xa9W\r\xac\x04\xf5\x08/\xbd\xd3m\x88\xd7[g\x98\x8c\xb0@\xe2\x9bmK\xe8\x06A\xf6OKn#9\x14\xb8a.\xf1\xd5\n4\xd2\x9e\xc2\xf3U\xc9R\x1a\xc0 i\xce\xef\x06\xf4M\xabH\x9fe\xb9\x13<\x15\x1d\xbd|\xeeB4y\x9b\xac\xc6\xff^\xba\xd4\x14f\xb7\xffV)\xc6\xf3'
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Got HTTP response: HttpResponse(protocol='HTTP', version='1.1', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:25:09 GMT', 'content-length': '96', 'content-type': 'application/octet-stream', 'server': 'AirTunes/605.1'}, body=b'\xfd4Y*Uar}\xaap\xa9W\r\xac\x04\xf5\x08/\xbd\xd3m\x88\xd7[g\x98\x8c\xb0@\xe2\x9bmK\xe8\x06A\xf6OKn#9\x14\xb8a.\xf1\xd5\n4\xd2\x9e\xc2\xf3U\xc9R\x1a\xc0 i\xce\xef\x06\xf4M\xabH\x9fe\xb9\x13<\x15\x1d\xbd|\xeeB4y\x9b\xac\xc6\xff^\xba\xd4\x14f\xb7\xffV)\xc6\xf3'):
2022-02-16 13:25:09 DEBUG [pyatv.protocols.airplay.srp]: Verify (Data=4be80641f64f4b6e233914b8612ef1d50a34d29ec2f355c9521ac02069ceef06f44dab489f65b9133c151dbd7cee4234799bacc6ff5ebad41466b7ff5629c6f3, PublicSecret=fd34592a5561727daa70a9570dac04f5082fbdd36d88d75b67988cb040e29b6d)
2022-02-16 13:25:09 DEBUG [pyatv.protocols.airplay.srp]: Shared secret (Secret=8913a85e17f76cf9e7bb48a1caad78b14183f10a56c1b202fd96114dbc84c203)
2022-02-16 13:25:09 DEBUG [pyatv.protocols.airplay.srp]: Pair-Verify-AES (IV=e88a9cec58a6007a874cd286daa49a69, Key=b7773c6a16663a83dea7efbdc610f570)
2022-02-16 13:25:09 DEBUG [pyatv.protocols.airplay.srp]: Signature (Signature=67d09b0bd496e1bc047495aa3a681c57dbecd8bce86f0eb2ee2985c63aaee3a5c61a9db3d1ba64773ba073b42e7a936aa0706906944dbe6434e598bc433c59ea)
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Sending HTTP/1.1 message: b'POST /pair-verify HTTP/1.1\r\nContent-Length: 68\r\nUser-Agent: AirPlay/320.20\r\nConnection: keep-alive\r\nContent-Type: application/octet-stream\r\n\r\n\x00\x00\x00\x00g\xd0\x9b\x0b\xd4\x96\xe1\xbc\x04t\x95\xaa:h\x1cW\xdb\xec\xd8\xbc\xe8o\x0e\xb2\xee)\x85\xc6:\xae\xe3\xa5\xc6\x1a\x9d\xb3\xd1\xbadw;\xa0s\xb4.z\x93j\xa0pi\x06\x94M\xbed4\xe5\x98\xbcC<Y\xea'
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Received: b'HTTP/1.1 200 OK\r\nDate: Wed, 16 Feb 2022 12:25:09 GMT\r\nContent-Length: 0\r\nContent-Type: application/octet-stream\r\nServer: AirTunes/605.1\r\n\r\n'
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Got HTTP response: HttpResponse(protocol='HTTP', version='1.1', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:25:09 GMT', 'content-length': '0', 'content-type': 'application/octet-stream', 'server': 'AirTunes/605.1'}, body=b''):
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'ANNOUNCE rtsp://192.168.188.58/3749893080 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nContent-Type: application/sdp\r\nContent-Length: 186\r\nCSeq: 1\r\nDACP-ID: 17637169AC547979\r\nActive-Remote: 558547129\r\nClient-Instance: 17637169AC547979\r\n\r\nv=0\r\no=iTunes 3749893080 0 IN IP4 192.168.188.58\r\ns=iTunes\r\nc=IN IP4 192.168.188.47\r\nt=0 0\r\nm=audio 0 RTP/AVP 96\r\na=rtpmap:96 AppleLossless\r\na=fmtp:96 352 0 16 40 10 14 2 255 0 0 44100\r\n'
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:25:09 GMT\r\nContent-Length: 0\r\nServer: AirTunes/605.1\r\nCSeq: 1\r\n\r\n'
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:25:09 GMT', 'content-length': '0', 'server': 'AirTunes/605.1', 'cseq': '1'}, body=''):
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'SETUP rtsp://192.168.188.58/3749893080 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nCSeq: 2\r\nDACP-ID: 17637169AC547979\r\nActive-Remote: 558547129\r\nClient-Instance: 17637169AC547979\r\nTransport: RTP/AVP/UDP;unicast;interleaved=0-1;mode=record;control_port=40325;timing_port=49790\r\n\r\n'
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:25:09 GMT\r\nContent-Length: 0\r\nTransport: RTP/AVP/UDP;unicast;mode=record;server_port=56589;control_port=64085;timing_port=0\r\nSession: 1\r\nAudio-Jack-Status: connected\r\nServer: AirTunes/605.1\r\nCSeq: 2\r\n\r\n'
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:25:09 GMT', 'content-length': '0', 'transport': 'RTP/AVP/UDP;unicast;mode=record;server_port=56589;control_port=64085;timing_port=0', 'session': '1', 'audio-jack-status': 'connected', 'server': 'AirTunes/605.1', 'cseq': '2'}, body=''):
2022-02-16 13:25:09 DEBUG [pyatv.protocols.raop.raop]: Remote ports: control=64085, timing=0, server=56589
2022-02-16 13:25:09 DEBUG [pyatv.protocols.raop.raop]: Starting periodic sync task
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'SET_PARAMETER rtsp://192.168.188.58/3749893080 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nContent-Type: text/parameters\r\nContent-Length: 28\r\nCSeq: 3\r\nDACP-ID: 17637169AC547979\r\nActive-Remote: 558547129\r\nClient-Instance: 17637169AC547979\r\n\r\nprogress: 66150/66150/242550'
2022-02-16 13:25:09 DEBUG [pyatv.protocols.raop.raop]: Sending sync packet (Frac=3930587136, RtpTime=66150, Sec=2208991802, SyncPacket=90d400070000000083aa8a3aea48000000010266)
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:25:09 GMT\r\nContent-Length: 0\r\nServer: AirTunes/605.1\r\nCSeq: 3\r\n\r\n'
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:25:09 GMT', 'content-length': '0', 'server': 'AirTunes/605.1', 'cseq': '3'}, body=''):
2022-02-16 13:25:09 DEBUG [pyatv.protocols.raop.raop]: Playing with metadata: AudioMetadata(title=None, artist=None, album=None, duration=4.2056875)
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'SET_PARAMETER rtsp://192.168.188.58/3749893080 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nContent-Type: application/x-dmap-tagged\r\nContent-Length: 8\r\nCSeq: 4\r\nDACP-ID: 17637169AC547979\r\nActive-Remote: 558547129\r\nClient-Instance: 17637169AC547979\r\nSession: 1\r\nRTP-Info: seq=18575;rtptime=66150\r\n\r\nmlit\x00\x00\x00\x00'
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:25:09 GMT\r\nContent-Length: 0\r\nServer: AirTunes/605.1\r\nCSeq: 4\r\n\r\n'
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:25:09 GMT', 'content-length': '0', 'server': 'AirTunes/605.1', 'cseq': '4'}, body=''):
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'POST /feedback RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nCSeq: 5\r\nDACP-ID: 17637169AC547979\r\nActive-Remote: 558547129\r\nClient-Instance: 17637169AC547979\r\n\r\n'
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:25:09 GMT\r\nContent-Length: 55\r\nContent-Type: application/x-apple-binary-plist\r\nServer: AirTunes/605.1\r\nCSeq: 5\r\n\r\nbplist00\xd1\x01\x02Wstreams\xa0\x08\x0b\x13\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14'
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:25:09 GMT', 'content-length': '55', 'content-type': 'application/x-apple-binary-plist', 'server': 'AirTunes/605.1', 'cseq': '5'}, body=b'bplist00\xd1\x01\x02Wstreams\xa0\x08\x0b\x13\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14'):
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'RECORD rtsp://192.168.188.58/3749893080 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nCSeq: 6\r\nDACP-ID: 17637169AC547979\r\nActive-Remote: 558547129\r\nClient-Instance: 17637169AC547979\r\nRange: npt=0-\r\nSession: 1\r\nRTP-Info: seq=18575;rtptime=66150\r\n\r\n'
2022-02-16 13:25:09 DEBUG [pyatv.protocols.raop.raop]: Starting keep-alive task
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:25:09 GMT\r\nContent-Length: 0\r\nAudio-Latency: 0\r\nServer: AirTunes/605.1\r\nCSeq: 6\r\n\r\n'
2022-02-16 13:25:09 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:25:09 GMT', 'content-length': '0', 'audio-latency': '0', 'server': 'AirTunes/605.1', 'cseq': '6'}, body=''):
2022-02-16 13:25:10 DEBUG [pyatv.protocols.raop.raop]: Sending sync packet (Frac=3783720960, RtpTime=108742, Sec=2208991803, SyncPacket=80d400070000a66083aa8a3be18700000001a8c6)
2022-02-16 13:25:10 DEBUG [pyatv.protocols.raop.raop]: Sent 44352 frames in 1.003632s (current frames: 44352, expected: 44261)
2022-02-16 13:25:11 DEBUG [pyatv.protocols.raop.raop]: Sending sync packet (Frac=3808296960, RtpTime=153094, Sec=2208991804, SyncPacket=80d40007000153a083aa8a3ce2fe000000025606)
2022-02-16 13:25:11 DEBUG [pyatv.protocols.raop.raop]: Sent 44352 frames in 1.003933s (current frames: 88704, expected: 88534)
2022-02-16 13:25:12 DEBUG [pyatv.protocols.raop.raop]: Sending sync packet (Frac=3798532096, RtpTime=197094, Sec=2208991805, SyncPacket=80d400070001ff8083aa8a3de2690000000301e6)
2022-02-16 13:25:12 DEBUG [pyatv.protocols.raop.raop]: Sent 44352 frames in 1.005187s (current frames: 133056, expected: 132863)
2022-02-16 13:25:13 DEBUG [pyatv.protocols.raop.raop]: Sending sync packet (Frac=3823042560, RtpTime=241446, Sec=2208991806, SyncPacket=80d400070002acc083aa8a3ee3df00000003af26)
2022-02-16 13:25:13 DEBUG [pyatv.protocols.raop.raop]: Sent 44352 frames in 1.006777s (current frames: 177408, expected: 177262)
2022-02-16 13:25:14 DEBUG [pyatv.protocols.raop.raop]: Sending sync packet (Frac=3847618560, RtpTime=285798, Sec=2208991807, SyncPacket=80d4000700035a0083aa8a3fe556000000045c66)
2022-02-16 13:25:14 DEBUG [pyatv.protocols.raop.raop]: Sent 44352 frames in 1.004432s (current frames: 221760, expected: 221557)
2022-02-16 13:25:15 DEBUG [pyatv.protocols.raop.raop]: Audio finished sending in 5.707697s
2022-02-16 13:25:15 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'TEARDOWN rtsp://192.168.188.58/3749893080 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nCSeq: 7\r\nDACP-ID: 17637169AC547979\r\nActive-Remote: 558547129\r\nClient-Instance: 17637169AC547979\r\nSession: 1\r\n\r\n'
2022-02-16 13:25:15 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:25:15 GMT\r\nContent-Length: 0\r\nServer: AirTunes/605.1\r\nCSeq: 7\r\n\r\n'
2022-02-16 13:25:15 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:25:15 GMT', 'content-length': '0', 'server': 'AirTunes/605.1', 'cseq': '7'}, body=''):
2022-02-16 13:25:15 DEBUG [pyatv.core.facade]: Release (<class 'pyatv.interface.Audio'>, <class 'pyatv.interface.Metadata'>, <class 'pyatv.interface.PushUpdater'>, <class 'pyatv.interface.RemoteControl'>) by Protocol.RAOP
2022-02-16 13:25:15 DEBUG [pyatv.scripts.atvremote]: Waiting for 0 remaining tasks
2022-02-16 13:25:15 DEBUG [pyatv.protocols.raop.raop]: Audio connection lost (None)
2022-02-16 13:25:15 DEBUG [pyatv.protocols.raop.raop]: Feedback task finished
2022-02-16 13:25:15 DEBUG [pyatv.protocols.raop.raop]: Periodic sync task ended
### How to reproduce the bug?
pair an apple tv 4k 2nd generation via raop, enter pin, and record the credentials as ~/raop
use those credentials to attempt to stream an mp3 file to the apple tv via atvemote, i.e.
atvremote --id "58:D3:49:EC:4B:5F" --raop-credentials `cat ~/raop` --debug stream_file=out.mp3
### What is expected behavior?
Audio plays on apple tv
### Operating System
Debian Buster
### Python
3.7
### pyatv
0.1.0.0
### Device
Apple TV 4k (2nd Generation) A2169, tvOS 15.3
### Additional context
My ultimate goal is to pipe an alsa loopback device to a homepod stereo pair. My current implementation involves encoding to mp3 and playing back via stdin, but ideally there'd be a way to directly address it.
Additional log when including airplay, raop, and mrp creds
pi@pibox:~/RPi-Jukebox-RFID/shared/audiofolders $ atvremote --id "58:D3:49:EC:4B:5F" --airplay-credentials `cat ~/airplay` --raop-credentials `cat ~/raop` --mrp-credentials `cat ~/mrp_creds` --debug stream_file=out.mp3
2022-02-16 13:38:29 DEBUG [pyatv.scripts]: Running with pyatv 0.10.0
2022-02-16 13:38:29 DEBUG [pyatv.support.net]: Binding on *:5353
2022-02-16 13:38:29 DEBUG [pyatv.support.net]: Binding on 127.0.0.1:0
2022-02-16 13:38:29 DEBUG [pyatv.support.net]: Binding on 192.168.188.58:0
2022-02-16 13:38:29 DEBUG [pyatv.core.scan]: Auto-discovered Apple TV 4k at 192.168.188.47:49152 via Protocol.Companion ({'rpmac': '1', 'rphn': '0c3bf07480ae', 'rpfl': '0xB67A2', 'rpha': '910b56ff152c', 'rpmd': 'AppleTV11,1', 'rpvr': '330.5', 'rpad': '627934c30958', 'rphi': '409f89db5ddd', 'rpba': 'E5:A5:EA:C3:E8:89', 'rpmrtid': '19D22C47-75C3-4F31-9916-784457E0FB02'})
2022-02-16 13:38:29 DEBUG [pyatv.core.scan]: Auto-discovered Apple TV 4k at 192.168.188.47:7000 via Protocol.AirPlay ({'acl': '0', 'btaddr': '58:D3:49:EE:21:F0', 'deviceid': '58:D3:49:EC:4B:5F', 'fex': '1d9/St5/FbwI', 'features': '0x4A7FDFD5,0xBC157FDE', 'flags': '0x18644', 'gid': '9976945E-2AAD-5461-BBF6-2C709A58BFEF', 'igl': '1', 'gcgl': '1', 'gpn': 'Apple TV 4k', 'psgsz': '3', 'psgtp': '1', 'psgid': '9976945E-2AAD-5461-BBF6-2C709A58BFEF', 'pgm': '0', 'model': 'AppleTV11,1', 'protovers': '1.1', 'pi': 'a649af48-73d4-4984-a020-0563f7d1bf8e', 'psi': '19D22C47-75C3-4F31-9916-784457E0FB02', 'pk': '2eb0b3c36d1fd5b80328eff5365b0a858510a15e9c1e710feb392da7d1140d8e', 'srcvers': '605.1', 'osvers': '15.3', 'vv': '2'})
2022-02-16 13:38:29 DEBUG [pyatv.core.scan]: Auto-discovered 58D349EC4B5F@Apple TV 4k at 192.168.188.47:7000 via Protocol.RAOP ({'cn': '0,1,2,3', 'da': 'true', 'et': '0,3,5', 'ft': '0x4A7FDFD5,0xBC157FDE', 'sf': '0x18644', 'md': '0,1,2', 'am': 'AppleTV11,1', 'pk': '2eb0b3c36d1fd5b80328eff5365b0a858510a15e9c1e710feb392da7d1140d8e', 'tp': 'UDP', 'vn': '65537', 'vs': '605.1', 'ov': '15.3', 'vv': '2'})
2022-02-16 13:38:29 INFO [pyatv.scripts.atvremote]: Auto-discovered Apple TV 4k at 192.168.188.47
2022-02-16 13:38:29 DEBUG [pyatv.core.facade]: Adding handler for protocol Protocol.AirPlay
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay]: Remote control channel is supported
2022-02-16 13:38:29 DEBUG [pyatv.core.facade]: Adding handler for protocol Protocol.MRP
2022-02-16 13:38:29 DEBUG [pyatv.protocols.companion]: Not adding Companion as credentials are missing
2022-02-16 13:38:29 DEBUG [pyatv.core.facade]: Adding handler for protocol Protocol.MRP
2022-02-16 13:38:29 DEBUG [pyatv.core.facade]: Adding handler for protocol Protocol.RAOP
2022-02-16 13:38:29 DEBUG [pyatv.core.facade]: Connecting to protocol: Protocol.AirPlay
2022-02-16 13:38:29 DEBUG [pyatv.core.facade]: Connected to protocol: Protocol.AirPlay
2022-02-16 13:38:29 DEBUG [pyatv.core.facade]: Connecting to protocol: Protocol.MRP
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.remote_control]: Setting up remote control connection to 192.168.188.47:7000
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Connected to 192.168.188.47
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.auth]: Setting up new AirPlay Pair-Verify procedure with type AuthenticationType.HAP
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Sending HTTP/1.1 message: b"POST /pair-verify HTTP/1.1\r\nContent-Length: 37\r\nUser-Agent: AirPlay/320.20\r\nConnection: keep-alive\r\nX-Apple-HKP: 3\r\nContent-Type: application/octet-stream\r\n\r\n\x06\x01\x01\x03 \x06\x01\xffYE?4,\xcc\x1cv|1)yB+\xe3\xad\xea?\xa6[\x87tl.\xf8\xf1\xd3\x98'"
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Received: b'HTTP/1.1 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:29 GMT\r\nContent-Length: 159\r\nContent-Type: application/octet-stream\r\nServer: AirTunes/605.1\r\n\r\n\x05x\xf1\xc6\xd1\xcb\xdd\xbf\x1bs\xfd$\x83\x95ia\x8f\x1f\x91V\x8dz\xeb9d\xecv\x121\xc7\xfa\xa3i\xc8+\x7f\x88f\x94\xc0\x0c\x0fF\x9e\xdd\n\x8d\x93\x93\x87\x9d\x9e\xef\xf1B\xe1\xf4b@\xe1.\xad\xd60\x12\xf2\x8e\x1b\xda\x19\x16\xafym\xd1\xad\xf7\xfa\x85\x96\xae\x8cx\x19k\xb7:R\xfa\x91\xf9\x9e\x13\xbaNeLd"\xc2\x9e&C3Wg\xda\xd3\xe2\xf9\xac\xf2\xcc;\x17\x97\x1d\xf7\xc2\xab\xbd\x81\x06\x01\x02\x03 U\xa5\x98\xeaRr\x96O\x92\x1b(\x9d\x1e\xa3@}\xd1J\xcd\x01\x87F_`\xa9{\x81\x15\xe6\xf1[W'
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Got HTTP response: HttpResponse(protocol='HTTP', version='1.1', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:29 GMT', 'content-length': '159', 'content-type': 'application/octet-stream', 'server': 'AirTunes/605.1'}, body=b'\x05x\xf1\xc6\xd1\xcb\xdd\xbf\x1bs\xfd$\x83\x95ia\x8f\x1f\x91V\x8dz\xeb9d\xecv\x121\xc7\xfa\xa3i\xc8+\x7f\x88f\x94\xc0\x0c\x0fF\x9e\xdd\n\x8d\x93\x93\x87\x9d\x9e\xef\xf1B\xe1\xf4b@\xe1.\xad\xd60\x12\xf2\x8e\x1b\xda\x19\x16\xafym\xd1\xad\xf7\xfa\x85\x96\xae\x8cx\x19k\xb7:R\xfa\x91\xf9\x9e\x13\xbaNeLd"\xc2\x9e&C3Wg\xda\xd3\xe2\xf9\xac\xf2\xcc;\x17\x97\x1d\xf7\xc2\xab\xbd\x81\x06\x01\x02\x03 U\xa5\x98\xeaRr\x96O\x92\x1b(\x9d\x1e\xa3@}\xd1J\xcd\x01\x87F_`\xa9{\x81\x15\xe6\xf1[W'):
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.auth.hap]: Device (Encrypted=f1c6d1cbddbf1b73fd24839569618f1f91568d7aeb3964ec761231c7faa369c82b7f886694c00c0f469edd0a8d9393879d9eeff142e1f46240e12eadd63012f28e1bda1916af796dd1adf7fa8596ae8c78196bb73a52fa91f99e13ba4e654c6422c29e2643335767dad3e2f9acf2cc3b17971df7c2abbd81, Public=07f59ae3ef6d6c405e50bbf834058f37004fb0c558130128b48afbb782b5651f)
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Sending HTTP/1.1 message: b'POST /pair-verify HTTP/1.1\r\nContent-Length: 125\r\nUser-Agent: AirPlay/320.20\r\nConnection: keep-alive\r\nX-Apple-HKP: 3\r\nContent-Type: application/octet-stream\r\n\r\n\x06\x01\x03\x05x\xad!\x0e%\x9dO#A\xads\xaf\x17\x97H\xfa\xc6d\xfdD\x01z\xdds\xfa3\xbe\\\xad\xe8/\xbd\xd3\xa3H\xc7\x88\xb5\x14K>l\xac`$5*\x06\xa8iO\xd4\xb6\xca\x0e\x81\x0e\xef\x1c\x81\x19\x0c\x05;/YC\xc7\x06\xdc\n\x19\x01-\x9cb \x06\xb3\x03\xf6\x83Y\x85\xa8\x86\xd8\x17\x88\xf1b\xa9?\x9e\xf09\x1d\xc0N\xa00P\xbd\x9c*\x03\xe9\xa4\xe7p\xe5\xafC\xe2|\xe5\xfd\xaf\xa1\xa7:'
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Received: b'HTTP/1.1 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:29 GMT\r\nContent-Length: 3\r\nContent-Type: application/octet-stream\r\nServer: AirTunes/605.1\r\n\r\n\x06\x01\x04'
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Got HTTP response: HttpResponse(protocol='HTTP', version='1.1', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:29 GMT', 'content-length': '3', 'content-type': 'application/octet-stream', 'server': 'AirTunes/605.1'}, body=b'\x06\x01\x04'):
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_srp]: Keys (Input=d06721ca069df88c5258fd151e4c91f6e20178ddbbd2d4dc865e932669c9cd7a, Output=58227aa0c7d82ea32ab7e7f162c0edb29d4f837428ec708546497f442e5aba3e)
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'SETUP rtsp://192.168.188.58/3603847835 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nContent-Length: 367\r\nCSeq: 0\r\nDACP-ID: F019BB198DC9F88\r\nActive-Remote: 169222516\r\nClient-Instance: F019BB198DC9F88\r\nContent-Type: application/x-apple-binary-plist\r\n\r\nbplist00\xdb\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16XdeviceID_\x10\x13isRemoteControlOnlyZmacAddressUmodelTname^osBuildVersionVosNameYosVersion[sessionUUID]sourceVersion^timingProtocol_\x10\x11FF:EE:DD:CC:BB:AA\t_\x10\x11AA:BB:CC:DD:EE:FFZiPhone10,6UpyatvU18G82YiPhone OSV14.7.1_\x10$3D959879-C615-4EB5-8AC3-5E7D5E0D3D5DV550.10TNone\x00\x08\x00\x1f\x00(\x00>\x00I\x00O\x00T\x00c\x00j\x00t\x00\x80\x00\x8e\x00\x9d\x00\xb1\x00\xb2\x00\xc6\x00\xd1\x00\xd7\x00\xdd\x00\xe7\x00\xee\x01\x15\x01\x1c\x00\x00\x00\x00\x00\x00\x02\x01\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01!'
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:29 GMT\r\nContent-Length: 59\r\nContent-Type: application/x-apple-binary-plist\r\nServer: AirTunes/605.1\r\nCSeq: 0\r\n\r\nbplist00\xd1\x01\x02YeventPort\x11\xe0\x84\x08\x0b\x15\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18'
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:29 GMT', 'content-length': '59', 'content-type': 'application/x-apple-binary-plist', 'server': 'AirTunes/605.1', 'cseq': '0'}, body=b'bplist00\xd1\x01\x02YeventPort\x11\xe0\x84\x08\x0b\x15\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18'):
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_srp]: Keys (Input=ff1b53d0676d11310aedd496a019eb6c326cb768db74b2aeef82dfe87ff29484, Output=38000e109f034d9435182d2f7db02006aa6456dcf645db0356a3831e82af19d9)
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Connected to 192.168.188.47:57476
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'RECORD rtsp://192.168.188.58/3603847835 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nCSeq: 1\r\nDACP-ID: F019BB198DC9F88\r\nActive-Remote: 169222516\r\nClient-Instance: F019BB198DC9F88\r\n\r\n'
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:29 GMT\r\nContent-Length: 0\r\nAudio-Latency: 0\r\nServer: AirTunes/605.1\r\nCSeq: 1\r\n\r\n'
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Received data (Data=000495e825667ae7a85983e0cb247b4ef60a0d42b949a8387e8949e2b6f3eee8073d515e94e5cf1ebaf02b07c5396d0514f15f7e6cd66cfbaf87f9d5c94bb3f4937b640425059940ba0c085066ff14c3ee6e36efd5f5362221e237f295f91b426722b13b21572067e79d126fa6ed642428314558e7ad4fc68e9bb434ad147aec117c11c25cfb15447503ed55caec7e43f257caf88afa22c06050156ca1240dde6f0cf7a0e17205309a7c27f9466cbf17743cc1e3478ce743ef0aa82f3b9563a80fec2f40a7c61032c816dbc5f593af9aa6c31c985cac5f5575b47cb43f16dce14ec48b70c69d1852a5782e9ca75b830c55ebf5e94e9421cda5c1daf51d3b7...)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.channels]: Not enough data to parse request on event channel
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2e0259d671636d50a5de072b8f42a8d6cedd866665506af0dcd2a9f6ab261e5a6143042d0c8fb67279079fe993ce480c58d695c73db5c1ac5f7592ab34bf402d80ab0420f1a91a7b2fa3fc01c2daa5d262a7cdd16b93579a8533ab5d3e30477351539e122ad40f9a726a28f54e532edfa7ad9d236517524d070363952059ce1125e2c6713c93813c6c43862713ede4fbfa382c6905eece0aefc6dadaf97b9b7a8103721259759800130a88020d0aeab97e70d98b2093d2bc7cd65f290ab85a70d2ddb01df85e21d8f6cbf6ad449127f845a2217e21c8202d62c20718388b1d512aa4ef5b0629d4430ff4d5ce223cf5fbb80c73c7d163fd9571ceb3f8e7500...)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.channels]: Got message on event channel: HttpRequest(method='POST', path='/command', protocol='RTSP', version='1.0', headers={'cseq': '0', 'content-length': '1477', 'content-type': 'application/x-apple-binary-plist'}, body=b'bplist00\xd2\x01\x02\x03\x04TtypeUvalueZupdateInfo\xdf\x10\x18\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f&\'#)*+,-.&0123;#=>?@ASpsiRvv_\x10\x14playbackCapabilities_\x10\x15canRecordScreenStream[statusFlags_\x10\x18keepAliveSendStatsAsBodyTname_\x10\x0fprotocolVersion_\x10\x11volumeControlType]senderAddressXdeviceIDRpi^screenDemoMode]initialVolumeZfeaturesExZtxtAirPlay_\x10\x10supportedFormats]sourceVersion_\x10\x16hasUDPMirroringSupportUmodelRpkZmacAddress_\x10\x15receiverHDRCapabilityXfeatures_\x10$19D22C47-75C3-4F31-9916-784457E0FB02\x10\x02\xd3 !"###_\x10\x15supportsInterstitials_\x10\x15supportsFPSSecureStop_\x10\x1dsupportsUIForAudioOnlyContent\t\t\t\x08\x12\x00\x01\x86D\t[Apple TV 4kS1.1\x10\x04_\x10\x14192.168.188.58:34134_\x10\x1158:D3:49:EC:4B:5F_\x10$a649af48-73d4-4984-a020-0563f7d1bf8e\x08#\xc09\x80\x00\x00\x00\x00\x00\\1d9/St5/FbwIO\x11\x01\xd3\x05acl=0\x18btaddr=58:D3:49:EE:21:F0\x1adeviceid=58:D3:49:EC:4B:5F\x10fex=1d9/St5/FbwI\x1efeatures=0x4A7FDFD5,0xBC157FDE\rflags=0x18644(gid=9976945E-2AAD-5461-BBF6-2C709A58BFEF\x05igl=1\x06gcgl=1\x0fgpn=Apple TV 4k\x07psgsz=3\x07psgtp=1*psgid=9976945E-2AAD-5461-BBF6-2C709A58BFEF\x05pgm=0\x11model=AppleTV11,1\rprotovers=1.1\'pi=a649af48-73d4-4984-a020-0563f7d1bf8e(psi=19D22C47-75C3-4F31-9916-784457E0FB02Cpk=2eb0b3c36d1fd5b80328eff5365b0a858510a15e9c1e710feb392da7d1140d8e\rsrcvers=605.1\x0bosvers=15.3\x04vv=2\xd44567899:_\x10\x15lowLatencyAudioStream\\screenStream[audioStream\\bufferStream\x10\x00\x12\x01D\x08\x00\x12\x00\xe0\x00\x00U605.1\t[AppleTV11,1O\x10 .\xb0\xb3\xc3m\x1f\xd5\xb8\x03(\xef\xf56[\n\x85\x85\x10\xa1^\x9c\x1eq\x0f\xeb9-\xa7\xd1\x14\r\x8e_\x10\x1158:D3:49:EC:4B:5FT4k60\x13\xbc\x15\x7f\xdeJ\x7f\xdf\xd5\x00\x08\x00\r\x00\x12\x00\x18\x00#\x00V\x00Z\x00]\x00t\x00\x8c\x00\x98\x00\xb3\x00\xb8\x00\xca\x00\xde\x00\xec\x00\xf5\x00\xf8\x01\x07\x01\x15\x01 \x01+\x01>\x01L\x01e\x01k\x01n\x01y\x01\x91\x01\x9a\x01\xc1\x01\xc3\x01\xca\x01\xe2\x01\xfa\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02#\x02$\x020\x024\x026\x02M\x02a\x02\x88\x02\x89\x02\x92\x02\x9f\x04v\x04\x7f\x04\x97\x04\xa4\x04\xb0\x04\xbd\x04\xbf\x04\xc4\x04\xc9\x04\xcf\x04\xd0\x04\xdc\x04\xff\x05\x13\x05\x18\x00\x00\x00\x00\x00\x00\x02\x01\x00\x00\x00\x00\x00\x00\x00B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05!')
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=4f00d186105ce3328cc6238de2d7924f9de261065af47d9d89e7ce290866da02d812bc84e503fdfe103af54f89a0842e9bc45a8d16a9ca0acee99fd683fe3f4040f20cc5db492fb8570c4fe1372fd10b32890fad492baa399712a0eca6c3370060)
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:29 GMT', 'content-length': '0', 'audio-latency': '0', 'server': 'AirTunes/605.1', 'cseq': '1'}, body=''):
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'SETUP rtsp://192.168.188.58/3603847835 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nContent-Length: 324\r\nCSeq: 2\r\nDACP-ID: F019BB198DC9F88\r\nActive-Remote: 169222516\r\nClient-Instance: F019BB198DC9F88\r\nContent-Type: application/x-apple-binary-plist\r\n\r\nbplist00\xd1\x01\x02Wstreams\xa1\x03\xd7\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11YchannelID^clientTypeUUIDZclientUUID[controlTypeTseedTtype_\x10\x14wantsDedicatedSocket_\x10$B28E295C-1B89-49EF-9336-711C6C16C963_\x10$1910A70F-DBC0-4242-AF95-115DB30604E1_\x10$6C66561F-A9CA-4C01-976B-5BF1AAC5EB05\x10\x02\x14\x00\x00\x00\x00\x00\x00\x00\x00\xb7\x9d\xf6&-\xb09\x80\x10\x82\t\x00\x08\x00\x0b\x00\x13\x00\x15\x00$\x00.\x00=\x00H\x00T\x00Y\x00^\x00u\x00\x9c\x00\xc3\x00\xea\x00\xec\x00\xfd\x00\xff\x00\x00\x00\x00\x00\x00\x02\x01\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00'
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:29 GMT\r\nContent-Length: 100\r\nContent-Type: application/x-apple-binary-plist\r\nServer: AirTunes/605.1\r\nCSeq: 2\r\n\r\nbplist00\xd1\x01\x02Wstreams\xa1\x03\xd3\x04\x05\x06\x07\x08\tTtypeXstreamIDXdataPort\x10\x82\x10\x01\x11\xe0\x85\x08\x0b\x13\x15\x1c!*357\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00:'
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:29 GMT', 'content-length': '100', 'content-type': 'application/x-apple-binary-plist', 'server': 'AirTunes/605.1', 'cseq': '2'}, body=b'bplist00\xd1\x01\x02Wstreams\xa1\x03\xd3\x04\x05\x06\x07\x08\tTtypeXstreamIDXdataPort\x10\x82\x10\x01\x11\xe0\x85\x08\x0b\x13\x15\x1c!*357\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00:'):
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_srp]: Keys (Input=6a629f3d50d9f414b35d508e4b3d5975b930130b177c974add70dee561d1d0da, Output=1c5e9fa500dabb6a2ecf97cc65b6227673aac5b004b2595e306d62f5b226d0c3)
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Connected to 192.168.188.47:57477
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=3c0112d3f68f136da42a14949125ea67524f3c262a1a3bc6bac72331a1161a8998d48b34f358204c69dfd2cf0efe81665d50f07c6c1a59bd75be6a39b8d4cab56d95f719b2f735cbb2cd9db3cac5ac9ad4bdbbb5d4820a300c3b879b0eb78e6527b762be678ef56928555eca4efeb58b24d2dc73ccb8f4fcc35a6b57c01f24ec7a904e364252b7a5676bcbc53d8d6e2ff6783f59963f12b835bca34c736676944692c073f7909c5751ce770ae1ff1016005e39106255072f77f714067b074c754888a6618755dceea246d8a3d95d3fc5c5da16319dfea593949ed7602bb1d993df3160b4ffe1dc02e25835c31d7764ae333e6e24f827f3e71c0c01d3a0189...)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: >> Send: Protobuf: type: DEVICE_INFO_MESSAGE
identifier: "536C741F-63B8-4E93-95B5-6E80840651D5"
errorCode: NoError
[deviceInfoMessage] {
uniqueIdentifier: "bbd08ae8-1343-4c30-94c7-353d78309bc8"
name: "pyatv"
localizedModelName: "iPhone"
systemBuildVersion: "18A393"
applicationBundleIdentifier: "com.apple.TVRemote"
applicationBundleVersion: "344.28"
protocolVersion: 1
lastSupportedMessageType: 108
supportsSystemPairing: true
allowsPairing: true
systemMediaApplication: "com.apple.TVMusic"
supportsACL: true
supportsSharedQueue: true
supportsExtendedMotion: true
sharedQueueVersion: 2
deviceClass: iPhone
logicalDeviceCount: 1
}
uniqueIdentifier: "2E748D3B-420E-4B11-891A-A8DF98F221CB"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Starting heartbeat loop (AirPlay:192.168.188.47)
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2000d5c6167d9a34c4284477845b47bdf6eebd3e83e317214503e909ab7f65d2e82f46150824370515278bb56aa73c2c954f)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.channels]: Not enough data on data channel (has 32, expects 74)
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2a00f2587c32fac80f56ac047ab36c384785a2fb8de1c4a42707979a61de0accea2856d5bd6f34fb4a4539e0e73664337cfa1f8670fdb523e70defb0)
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2000645a98b20b95003b6fb33b4765dbd9d026e3d4dab7adce666c8ace58a8fa29eb1ada5e2238ba949ce27b376dc9ec684c)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.channels]: Not enough data on data channel (has 32, expects 717)
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Received data (Data=ad02155fa58c1b3252d22c47f6ad64869ed3e785bafbbeb47eb9eed07389843b2b3638e8223923eb34ccafd5222c92677b298d691cd9e2f690032aee336d7ee30675af74aba09e75dc3d5c221eca77a170e0e995c22f3c9a8f76e6ebebaa2984e07501e1e499b01bdf0ba52395dd6e2f1042e4373c84a466d0c53fd92ca4c8f7e19e8f162cb470b5c8b69a451354a3abe24a389c806961abb85ff3d940adcb656b6287970274f36330bd8aae6ab9f58a6d2a021ac40a406a6b854d4b08c23d4b5ddda4284fdf70190817a3d4e872c08424dc8e9b42ad13e73e902a1e7a9f55ac811ef4b1fd986a9fb5b157ba4e4f4f01cbc86558dae2351c8b4872bb70d76...)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: DEVICE_INFO_MESSAGE
identifier: "536C741F-63B8-4E93-95B5-6E80840651D5"
[deviceInfoMessage] {
uniqueIdentifier: "19D22C47-75C3-4F31-9916-784457E0FB02"
name: "Apple TV 4k"
localizedModelName: "Apple\302\240TV"
systemBuildVersion: "19K547"
applicationBundleIdentifier: "com.apple.mediaremoted"
protocolVersion: 1
lastSupportedMessageType: 121
supportsSystemPairing: true
allowsPairing: true
systemMediaApplication: "com.apple.TVMusic"
supportsACL: true
supportsSharedQueue: true
supportsExtendedMotion: true
sharedQueueVersion: 3
deviceUID: "19D22C47-75C3-4F31-9916-784457E0FB02"
managedConfigDeviceID: "58:d3:49:ec:4b:5f"
deviceClass: AppleTV
logicalDeviceCount: 1
isProxyGroupPlayer: false
groupUID: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
groupName: "Apple TV 4k"
isGroupLeader: true
isAirplayActive: false
systemPodcastApplication: "com.apple.podcasts"
enderDefaultGroupUID: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
airplayReceivers: "TVAirPlay"
clusterID: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
clusterLeaderID: "19D22C47-75C3-4F31-9916-784457E0FB02"
clusterType: 2
isClusterAware: true
modelID: "AppleTV11,1"
40: 0
41: "577E1BCA-2D9B-41C2-A8F8-C515CE8072D4"
42: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
43: "com.apple.TVBooks"
}
uniqueIdentifier: "C8009879-55D3-4562-9D7A-BD6BF1049A8D"
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=2000f9a991c4a0732522f2f7a30fdc6c4cd85e457df49dc69112d51beee80008746188d983721e63aa9a350b7f804e09602a)
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 15 to <bound method MrpPower._update_power_state of <pyatv.protocols.mrp.MrpPower object at 0x74da2930>>
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=9300dd0a73b829c55d8bae66ef366f3d99a8c40beacad4c5ae9b1ad92e1c85263fadea0ac26c09c7e5d4ff1c1566374bed2ae5bd26a5dc175eda080693c10455d5ab17d0ab1f7ba0b80b106dfec9901d1d316254fe61601f6d7e8f5cbacc731359e01827ab7e8b766129632381e3ca6af5ef36d20e8bc0ec1129b34de7345459083a75ed18e913aee9a0cb7dcdf824b09d68d526bba6eaffeb21ad2e065104122694e277e9)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: >> Send: Protobuf: type: SET_CONNECTION_STATE_MESSAGE
errorCode: NoError
[setConnectionStateMessage] {
state: Connected
}
uniqueIdentifier: "46FE3BF0-F341-45AF-8D38-BFFACA13C399"
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=c100d58c929be8db89a0cde2e0a7c59e3c0ba46d4d106f62603f8ce692a6307f6771a8d1c03b6b6be341c41eb48769f22b99c5321193f2d05ce01703fe2d3569153dd088b730b19429738446dab77789ed0f6c6341e09f7e69e01cd6c0306a0b6cb8f2d940af6be119001a98fd860e06cd5840ce8d57c7d62c7566c61911dabd691ae56fa7241ecc06e35269b97d29ca70d2428153386a9fd2c57955c86a3ea607f49b98f0529991be12db68bcc11680bda7527bb95f1ac67b80786bd74c009cebf7bc2f37b021877b74c8bdc65b7cb7b6290a)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: >> Send: Protobuf: type: CLIENT_UPDATES_CONFIG_MESSAGE
identifier: "12FE38B8-40FA-42AC-A175-632E292342A4"
errorCode: NoError
[clientUpdatesConfigMessage] {
artworkUpdates: true
nowPlayingUpdates: false
volumeUpdates: true
keyboardUpdates: true
outputDeviceUpdates: true
}
uniqueIdentifier: "51DDB02B-6ED2-4EE1-9A57-E6E0FA983A94"
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Received data (Data=20000431a92b9024dfbb1ff9a37f602a5ff9e7109ad8f8888bf65f8e7a89bbed9e310d66a6feb1fd602e52236c185c068fce)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.channels]: Not enough data on data channel (has 32, expects 74)
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2a003b9c9c6c3ee681edb29948336b0a759c8593bc0f0b8dbf93f27fca7c6af5c3a9f4a286095d946aa2fb43d1db1929c87299f9c4dd6d3f63f4094a)
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2000e2d77b0296aa214cf8e47e9d747b5d30236a2ef74f4e0741d27be76da7f5221a860832c9c39a9995b009ef093fe50355)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.channels]: Not enough data on data channel (has 32, expects 74)
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2a00d517aa13f5e699c67d7a9b6578c57ac813cee7378aed7f9175d9366eb66389a32fe3c2a886f7e0327216a63ea2f85a881f750f103cde39b1b5bc)
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2000e756195974cc44365367b0320bd94a16552166ba26c70d4f97f485aec479d99e1b4cbc01806f17c8adf6f326be0ca196)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.channels]: Not enough data on data channel (has 32, expects 11380)
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Received data (Data=542c40241c96aed2d6e0921eeadc1dd48615db91602042d61893832331c7e24d06a5a6c11db00e43fdf8a8f0482cba60c12caf72ed014c9c70ec424167c1f5a26a6831096ff42ce23e9bc78b4dcb232f95f95edd2e93fafbdb2eff8fc469a1b62ba4cac867a3bb30c64661ede2b7a4523550b19fc5f2126e904fe3a1974e97571310f9b41df559e8c0a2ad2a948656f4bf7a61ab081c17a246f9bbf20fcb0a21f3df3f25ce7eb2ad9cf53edef0564beac53d20c65bc99b183d91d9e836448c8bb4157d6b22d1dcad6318e1e2b256c246a0b1c7c661eae5b1a9d8ff623f93415000031aafafcc168ea423a2878def200b966d7a349dee830b50b9747568165...)
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Received data (Data=0a814bc512ee12dff24da709a9ed54f336494f9d4f2f3c06b8c93f7fb1ba37a95d062ffc9e79339545b5aac1df57a57a34b2f92e2455b7cc3e093435055d2393130d33ec0d878662bbd2dbf11ae221d0d97b4de8dda63e924fa0e6e4d6fc7c1a68e760eca83c346bfe8ef8df4a2e32aa58f53785834ffbe91f4170bd4fcbcbf417cc554db0e270cd46b149bf8ef1f53faadfb1396da61d4ddedd49619cf7cc4b5a9d1f9b36bf4066fab90c17c1c08a62128f9e14bd174adda4a52d7e1888a90b1e1dbf164458bb98095054ff8b30e2353cfefb400c4f8b05e94f102be81c29fa7b71b9213e237d129f3bc7fcc9e6368209cd9d1c7b5cbd67fc5bc1b54e22d...)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_OUTPUT_DEVICE_MESSAGE
[updateOutputDeviceMessage] {
outputDevices {
name: "Apple TV 4k"
uniqueIdentifier: "19D22C47-75C3-4F31-9916-784457E0FB02"
modelID: "AppleTV11,1"
deviceType: AirPlay
deviceSubType: AppleTV
}
outputDevices {
name: "Living Room"
uniqueIdentifier: "D661593F-E305-4ECD-B95B-8A5F30AB6F2D"
modelID: "AudioAccessory1,1"
deviceType: AirPlay
deviceSubType: HomePod
}
outputDevices {
name: "Living Room"
uniqueIdentifier: "162642B2-496E-4ED2-934A-1D11BC7C8875"
modelID: "AudioAccessory1,1"
deviceType: AirPlay
deviceSubType: HomePod
}
clusterAwareOutputDevices {
name: "Apple TV 4k"
uniqueIdentifier: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
groupID: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
modelID: "AppleTVHTCluster"
macAddress: "\377\377\377\377\377\377"
canAccessRemoteAssets: false
isRemoteControllable: false
isGroupLeader: true
isGroupable: true
deviceType: AirPlay
deviceSubType: Cluster
modelSpecificInfoData: "bplist00\324\001\002\003\004\005\006\007\nX$versionY$archiverT$topX$objects\022\000\001\206\240_\020\017NSKeyedArchiver...
isLocalDevice: true
supportsExternalScreen: false
requiresAuthorization: true
sourceInfo {
routingContextUID: "577E1BCA-2D9B-41C2-A8F8-C515CE8072D4"
multipleBuiltInDevices: false
}
isDeviceGroupable: true
canRelayCommunicationChannel: false
isProxyGroupPlayer: false
canAccessAppleMusic: true
canAccessiCloudMusicLibrary: true
groupContainsGroupLeader: true
supportsBufferedAirPlay: true
canPlayEncryptedProgressiveDownloadAssets: false
canFetchMediaDataFromSender: false
resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets: false
isAirPlayReceiverSessionActive: true
parentGroupIdentifier: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
parentGroupContainsDiscoverableLeader: true
isAddedToHomeKit: true
volumeCapabilities: 2
supportsHAP: false
usingJSONProtocol: false
clusterCompositions {
name: "Apple TV 4k"
uniqueIdentifier: "19D22C47-75C3-4F31-9916-784457E0FB02"
modelID: "AppleTV11,1"
deviceType: AirPlay
deviceSubType: AppleTV
}
clusterCompositions {
name: "Living Room"
uniqueIdentifier: "D661593F-E305-4ECD-B95B-8A5F30AB6F2D"
modelID: "AudioAccessory1,1"
deviceType: AirPlay
deviceSubType: HomePod
}
clusterCompositions {
name: "Living Room"
uniqueIdentifier: "162642B2-496E-4ED2-934A-1D11BC7C8875"
modelID: "AudioAccessory1,1"
deviceType: AirPlay
deviceSubType: HomePod
}
clusterType: 2
primaryUID: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
configuredClusterSize: 3
producesLowFidelityAudio: false
45: 1
47: "AVOutputDeviceBluetoothListeningModeNormal"
48: 0
50: 18446744073709551615
51: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
52: 1
}
}
uniqueIdentifier: "0E54F316-1766-453B-8E7E-4432AD9DD5FF"
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: VOLUME_CONTROL_AVAILABILITY_MESSAGE
[volumeControlAvailabilityMessage] {
volumeControlAvailable: true
volumeCapabilities: Relative
}
uniqueIdentifier: "F1C7FC1F-A4D4-46E6-9D96-95BA2ECFDC6B"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 17 to <bound method MrpAudio._volume_control_availability of <pyatv.protocols.mrp.MrpAudio object at 0x74da2910>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_DEFAULT_SUPPORTED_COMMANDS_MESSAGE
[setDefaultSupportedCommandsMessage] {
supportedCommands {
supportedCommands {
command: Play
enabled: true
}
supportedCommands {
command: PrepareForSetQueue
enabled: true
}
supportedCommands {
command: SetPlaybackQueue
enabled: true
supportedPlaybackQueueTypes: 7
supportedPlaybackQueueTypes: 3
supportedPlaybackQueueTypes: 6
supportedPlaybackQueueTypes: 2
supportedPlaybackQueueTypes: 5
supportedPlaybackQueueTypes: 1
supportedPlaybackQueueTypes: 8
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.radio"
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.tracklist"
supportedCustomQueueIdentifiers: "com.apple.MediaPlaybackCore.playbackContextArchive-v1.opack"
supportedCustomQueueIdentifiers: "com.apple.mediaplayer.playbackcontext"
}
supportedCommands {
command: SetPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:4683722"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:4683722"
}
supportedCommands {
command: PreloadedPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:4683722"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:4683722"
}
}
displayID: "com.apple.TVMusic"
playbackQueueCapabilities {
}
playerPath {
client {
bundleIdentifier: "com.apple.TVMusic"
}
}
}
uniqueIdentifier: "1B33D602-092A-4473-947A-C924E11F7384"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 72 to <bound method PlayerStateManager._handle_set_default_supported_commands of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_DEFAULT_SUPPORTED_COMMANDS_MESSAGE
[setDefaultSupportedCommandsMessage] {
supportedCommands {
supportedCommands {
command: Play
enabled: true
}
supportedCommands {
command: SetPlaybackQueue
enabled: true
supportedPlaybackQueueTypes: 3
supportedPlaybackQueueTypes: 6
supportedPlaybackQueueTypes: 2
supportedPlaybackQueueTypes: 5
supportedPlaybackQueueTypes: 1
}
supportedCommands {
command: SetPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.podcasts.MTPlaybackQueueController.GenericQueue"
currentPlaybackSessionTypes: "com.apple.podcasts.MTPlaybackQueueController.GenericQueue"
}
}
displayID: "com.apple.podcasts"
playbackQueueCapabilities {
}
playerPath {
client {
bundleIdentifier: "com.apple.podcasts"
}
}
}
uniqueIdentifier: "8C395771-176C-4B16-866A-FD96B995EF7A"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 72 to <bound method PlayerStateManager._handle_set_default_supported_commands of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: ORIGIN_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "8C585252-AFE9-4BCE-AE35-8E155452405B"
[originClientPropertiesMessage] {
lastPlayingTimestamp: 666697727.231672
}
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_NOW_PLAYING_CLIENT_MESSAGE
[setNowPlayingClientMessage] {
client {
processIdentifier: 4468
bundleIdentifier: "com.apple.TVMusic"
}
}
uniqueIdentifier: "5BA27CFD-F143-4543-8DDB-269370C12846"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 46 to <bound method PlayerStateManager._handle_set_now_playing_client of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_CLIENT_MESSAGE
[updateClientMessage] {
client {
processIdentifier: 41870
bundleIdentifier: "com.firecore.infuse"
processUserIdentifier: 501
displayName: "Infuse"
}
}
uniqueIdentifier: "E71FE9A1-B453-4AF2-81A1-45345B68E03D"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 55 to <bound method PlayerStateManager._handle_update_client of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
playbackQueue {
location: 0
}
displayName: "Infuse"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple TV 4k"
identifier: 1280262988
}
client {
processIdentifier: 41870
bundleIdentifier: "com.firecore.infuse"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
6: 0
}
}
playbackStateTimestamp: 666533450.678079
}
uniqueIdentifier: "8A62FD26-326F-44D6-B1E3-1D2B63C69C8A"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 4 to <bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "3D027672-E77C-437B-85B9-CEB7AC63AC20"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple TV 4k"
identifier: 1280262988
5: 1
}
client {
processIdentifier: 41870
bundleIdentifier: "com.firecore.infuse"
processUserIdentifier: 501
displayName: "Infuse"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
6: 0
}
}
lastPlayingTimestamp: 666533450.678494
}
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_CLIENT_MESSAGE
[updateClientMessage] {
client {
processIdentifier: 202
bundleIdentifier: "com.apple.TVAirPlay"
processUserIdentifier: 501
displayName: "Music"
bundleIdentifierHierarchys: "com.apple.Music"
}
}
uniqueIdentifier: "BBFA9DD2-E275-4675-973C-941D95109F20"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 55 to <bound method PlayerStateManager._handle_update_client of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
supportedCommands {
supportedCommands {
command: Play
enabled: true
}
supportedCommands {
command: Pause
enabled: true
}
supportedCommands {
command: Stop
enabled: true
}
supportedCommands {
command: TogglePlayPause
enabled: true
}
supportedCommands {
command: NextTrack
enabled: true
}
supportedCommands {
command: PreviousTrack
enabled: true
}
supportedCommands {
command: PlayItemInPlaybackQueue
enabled: true
}
supportedCommands {
command: SetPlaybackQueue
enabled: true
supportedPlaybackQueueTypes: 7
supportedPlaybackQueueTypes: 3
supportedPlaybackQueueTypes: 6
supportedPlaybackQueueTypes: 2
supportedPlaybackQueueTypes: 5
supportedPlaybackQueueTypes: 1
supportedPlaybackQueueTypes: 8
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.sharedlistening"
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.radio"
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.tracklist"
supportedCustomQueueIdentifiers: "com.apple.MediaPlaybackCore.playbackContextArchive-v1.opack"
supportedCustomQueueIdentifiers: "com.apple.mediaplayer.playbackcontext"
}
supportedCommands {
command: SetPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:d2dfb1e"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:d2dfb1e"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:storeFront:143441"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:storeFront:143441"
currentPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:d2dfb1e"
currentPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:storeFront:143441"
playbackSessionIdentifier: "73EAD988-DBE3-451A-8628-AFAF5C9E8458"
}
supportedCommands {
command: PrepareForSetQueue
enabled: true
}
supportedCommands {
command: InsertIntoPlaybackQueue
enabled: true
supportedPlaybackQueueTypes: 7
supportedPlaybackQueueTypes: 3
supportedPlaybackQueueTypes: 6
supportedPlaybackQueueTypes: 2
supportedPlaybackQueueTypes: 5
supportedPlaybackQueueTypes: 1
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.tracklist"
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.radio"
supportedCustomQueueIdentifiers: "com.apple.mediaplayer.playbackcontext"
supportedInsertionPositions: 0
supportedInsertionPositions: 2
supportedInsertionPositions: 3
}
supportedCommands {
enabled: true
1: 25010
}
supportedCommands {
command: SkipForward
preferredIntervals: 30.0
}
supportedCommands {
command: SkipBackward
preferredIntervals: 30.0
}
supportedCommands {
command: LikeTrack
enabled: true
active: false
localizedShortTitle: "Like"
presentationStyle: 2
}
supportedCommands {
command: DislikeTrack
enabled: true
active: false
localizedShortTitle: "Never Play"
presentationStyle: 2
}
supportedCommands {
command: SeekToPlaybackPosition
enabled: true
canScrub: 1
}
supportedCommands {
command: BeginFastForward
enabled: true
}
supportedCommands {
command: EndFastForward
enabled: true
}
supportedCommands {
command: BeginRewind
enabled: true
}
supportedCommands {
command: EndRewind
enabled: true
}
supportedCommands {
command: CreateRadioStation
enabled: true
}
supportedCommands {
command: ChangeRepeatMode
enabled: true
repeatMode: Off
}
supportedCommands {
command: ChangeShuffleMode
enabled: true
shuffleMode: Off
}
supportedCommands {
command: AdvanceRepeatMode
enabled: true
repeatMode: Off
}
supportedCommands {
command: AdvanceShuffleMode
enabled: true
shuffleMode: Off
}
supportedCommands {
command: Reshuffle
enabled: true
}
supportedCommands {
command: ChangeQueueEndAction
enabled: true
currentQueueEndAction: AutoPlay
supportedEndQueueActions: Reset
supportedEndQueueActions: AutoPlay
}
supportedCommands {
command: ReorderPlaybackQueue
enabled: true
}
supportedCommands {
command: RemoveFromPlaybackQueue
enabled: true
}
supportedCommands {
enabled: true
1: 25001
}
supportedCommands {
command: PreloadedPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:d2dfb1e"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:d2dfb1e"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:storeFront:143441"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:storeFront:143441"
}
supportedCommands {
command: AddNowPlayingItemToLibrary
enabled: true
active: false
}
supportedCommands {
command: AddItemToLibrary
enabled: true
}
supportedCommands {
command: ChangePlaybackRate
}
supportedCommands {
enabled: true
1: 25020
}
}
playbackQueue {
location: 0
}
displayName: "Music"
playbackState: Stopped
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple TV 4k"
identifier: 1280262988
}
client {
processIdentifier: 202
bundleIdentifier: "com.apple.TVAirPlay"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
6: 0
}
}
playbackStateTimestamp: 666539876.58381
}
uniqueIdentifier: "580B0718-EF93-48A1-AB82-602B3951115B"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 4 to <bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "A51DEBDF-2C51-4E2A-A209-5AD9A993E673"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple TV 4k"
identifier: 1280262988
5: 1
}
client {
processIdentifier: 202
bundleIdentifier: "com.apple.TVAirPlay"
processUserIdentifier: 501
displayName: "Music"
bundleIdentifierHierarchys: "com.apple.Music"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
6: 0
}
}
lastPlayingTimestamp: 666539786.190316
}
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_CLIENT_MESSAGE
[updateClientMessage] {
client {
processIdentifier: 4468
bundleIdentifier: "com.apple.TVMusic"
processUserIdentifier: 501
displayName: "Music"
}
}
uniqueIdentifier: "4769650E-C836-4443-8679-EC67B3D1164D"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 55 to <bound method PlayerStateManager._handle_update_client of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_NOW_PLAYING_PLAYER_MESSAGE
[setNowPlayingPlayerMessage] {
playerPath {
origin {
displayName: "Apple TV 4k"
identifier: 1280262988
}
client {
processIdentifier: 4468
bundleIdentifier: "com.apple.TVMusic"
}
player {
identifier: "Music"
displayName: "Music"
6: 0
}
}
}
uniqueIdentifier: "F6FD07EE-192D-4633-9E11-4280C4BBAFB8"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 47 to <bound method PlayerStateManager._handle_set_now_playing_player of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
supportedCommands {
supportedCommands {
command: Play
enabled: true
}
supportedCommands {
command: Pause
enabled: true
}
supportedCommands {
command: Stop
enabled: true
}
supportedCommands {
command: TogglePlayPause
enabled: true
}
supportedCommands {
command: NextTrack
enabled: true
}
supportedCommands {
command: PreviousTrack
enabled: true
}
supportedCommands {
command: PlayItemInPlaybackQueue
enabled: true
}
supportedCommands {
command: SetPlaybackQueue
enabled: true
supportedPlaybackQueueTypes: 7
supportedPlaybackQueueTypes: 3
supportedPlaybackQueueTypes: 6
supportedPlaybackQueueTypes: 2
supportedPlaybackQueueTypes: 5
supportedPlaybackQueueTypes: 1
supportedPlaybackQueueTypes: 8
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.sharedlistening"
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.radio"
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.tracklist"
supportedCustomQueueIdentifiers: "com.apple.MediaPlaybackCore.playbackContextArchive-v1.opack"
supportedCustomQueueIdentifiers: "com.apple.mediaplayer.playbackcontext"
}
supportedCommands {
command: SetPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:4683722"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:4683722"
currentPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:4683722"
currentPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:storeFront:143441"
playbackSessionIdentifier: "ECB42B3E-AB0B-42A8-A015-070C3E291DDD"
}
supportedCommands {
command: PrepareForSetQueue
enabled: true
}
supportedCommands {
command: InsertIntoPlaybackQueue
enabled: true
supportedPlaybackQueueTypes: 7
supportedPlaybackQueueTypes: 3
supportedPlaybackQueueTypes: 6
supportedPlaybackQueueTypes: 2
supportedPlaybackQueueTypes: 5
supportedPlaybackQueueTypes: 1
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.tracklist"
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.radio"
supportedCustomQueueIdentifiers: "com.apple.mediaplayer.playbackcontext"
supportedInsertionPositions: 0
supportedInsertionPositions: 3
}
supportedCommands {
enabled: true
1: 25010
}
supportedCommands {
command: SkipForward
preferredIntervals: 30.0
}
supportedCommands {
command: SkipBackward
preferredIntervals: 30.0
}
supportedCommands {
command: LikeTrack
enabled: true
active: false
localizedShortTitle: "Like"
presentationStyle: 2
}
supportedCommands {
command: DislikeTrack
enabled: true
active: false
localizedShortTitle: "Never Play"
presentationStyle: 2
}
supportedCommands {
command: SeekToPlaybackPosition
enabled: true
canScrub: 1
}
supportedCommands {
command: CreateRadioStation
enabled: true
}
supportedCommands {
command: ChangeQueueEndAction
enabled: true
currentQueueEndAction: AutoPlay
supportedEndQueueActions: Reset
supportedEndQueueActions: AutoPlay
}
supportedCommands {
command: ReorderPlaybackQueue
enabled: true
}
supportedCommands {
command: RemoveFromPlaybackQueue
enabled: true
}
supportedCommands {
enabled: true
1: 25001
}
supportedCommands {
command: PreloadedPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:4683722"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:4683722"
}
supportedCommands {
command: ChangePlaybackRate
}
}
playbackQueue {
location: 0
contentItems {
identifier: "EeeXewwH8\342\210\206Xw6HnHFFp"
metadata {
title: "That Time of Year"
isPlayable: true
albumName: "Olaf\'s Frozen Adventure (Original Soundtrack)"
trackArtistName: "Josh Gad, Idina Menzel, Kristen Bell & Cast - Olaf\'s Frozen Adventure"
duration: 183.228
artworkAvailable: true
lyricsAvailable: true
editingStyleFlags: 3
artworkMIMEType: "image/jpeg"
elapsedTime: 45.046143838
genre: "Soundtrack"
isAlwaysLive: false
playbackRate: 0.0
radioStationName: "Shiny Station"
radioStationString: "ra.cp-1440639398"
iTunesStoreIdentifier: 1440633922
iTunesStoreSubscriptionIdentifier: 1440633922
iTunesStoreArtistIdentifier: 284749120
iTunesStoreAlbumIdentifier: 1440633323
defaultPlaybackRate: 1.0
mediaType: Audio
mediaSubType: Music
userInfoData: "bplist00\324\001\002\003\004\005\006\007\nX$versionY$archiverT$topX$objects\022\000\001\206\240_\020\017NSKeyedArchiver\321\...
artworkURL: "https://is4-ssl.mzstatic.com/image/thumb/Music125/v4/82/5b/3a/825b3ac5-1114-f33d-3720-0238d1cb5d03/17UM1IM29099.rgb.jpg/1200x1...
deviceSpecificUserInfoData: "bplist00\324\001\002\003\004\005\006\007\nX$versionY$archiverT$topX$objects\022\000\001\206\240_\020\017NSKeye...
collectionInfoData: "bplist00\324\001\002\003\004\005\006\007\nX$versionY$archiverT$topX$objects\022\000\001\206\240_\020\017NSKeyedArchive...
elapsedTimeTimestamp: 666697727.235718
inferredTimestamp: 666690809.95772
artworkIdentifier: "https://is4-ssl.mzstatic.com/image/thumb/Music125/v4/82/5b/3a/825b3ac5-1114-f33d-3720-0238d1cb5d03/17UM1IM29099.rgb.jpg...
isLoading: false
artworkURLTemplatesData: "bplist00\324\001\002\003\004\005\006\007\nX$versionY$archiverT$topX$objects\022\000\001\206\240_\020\017NSKeyedAr...
legacyUniqueIdentifier: 1440633922
albumYear: "0"
songTraits: Lossless
preferredFormat {
tier: HighQualityStereo
bitrate: 0
sampleRate: 44100
bitDepth: 24
codec: 1634492771
spatialized: false
multiChannel: false
channelLayout: 6619138
audioChannelLayoutDescription: "Stereo"
groupID: "audio-alac-stereo-44100-24"
stableVariantID: "3123a5fedbbf54a2c7070787664eaa0fbfb930cc5e6529d573fd9f9c6f3c26da"
}
activeFormat {
tier: HighQualityStereo
bitrate: 0
sampleRate: 44100
bitDepth: 24
codec: 1634492771
spatialized: false
multiChannel: false
channelLayout: 6619138
audioChannelLayoutDescription: "Stereo"
groupID: "audio-alac-stereo-44100-24"
stableVariantID: "3123a5fedbbf54a2c7070787664eaa0fbfb930cc5e6529d573fd9f9c6f3c26da"
}
activeFormatJustification: UserPreference
formatTierPreference: Lossless
audioRoute {
name: "Apple TV 4k"
supportsSpatialization: true
1: 9
4: 1
}
alternativeFormats {
tier: HighQualityStereo
bitrate: 0
sampleRate: 44100
bitDepth: 24
codec: 1634492771
spatialized: false
multiChannel: false
channelLayout: 6619138
audioChannelLayoutDescription: "Stereo"
groupID: "audio-alac-stereo-44100-24"
stableVariantID: "3123a5fedbbf54a2c7070787664eaa0fbfb930cc5e6529d573fd9f9c6f3c26da"
}
alternativeFormats {
tier: LowBandwidthStereo
bitrate: 256000
sampleRate: 0
bitDepth: 0
codec: 1633772320
spatialized: false
multiChannel: false
channelLayout: 6619138
audioChannelLayoutDescription: "Stereo"
groupID: "audio-stereo-256"
stableVariantID: "7ced4006a04fd16f6f69c70655ff3d5bff14c44c2bbbaf0b6d3509fb08b72685"
}
alternativeFormats {
bitrate: 128000
sampleRate: 0
bitDepth: 0
codec: 1633772320
spatialized: false
multiChannel: false
channelLayout: 6619138
audioChannelLayoutDescription: "Stereo"
groupID: "audio-stereo-128"
stableVariantID: "76000aba729ec5b0695870deeeb89c3485a483dcc8e0ba75b88c763919d01db8"
1: 0
}
alternativeFormats {
bitrate: 64000
sampleRate: 0
bitDepth: 0
codec: 1633772392
spatialized: false
multiChannel: false
channelLayout: 6619138
audioChannelLayoutDescription: "Stereo"
groupID: "audio-HE-stereo-64"
stableVariantID: "33c34e20af0085c9d0d2f7f7ab2a6801120133d90ecd0cee0a3473409430cc55"
1: 0
}
99: 1
}
}
queueIdentifier: "ECB42B3E-AB0B-42A8-A015-070C3E291DDD"
}
displayName: "Music"
playbackState: Paused
playbackQueueCapabilities {
requestByRange: true
requestByIdentifiers: true
}
playerPath {
origin {
displayName: "Apple TV 4k"
identifier: 1280262988
}
client {
processIdentifier: 4468
bundleIdentifier: "com.apple.TVMusic"
}
player {
identifier: "Music"
displayName: "Music"
6: 0
}
}
playbackStateTimestamp: 666697727.220342
}
uniqueIdentifier: "F3A80D09-0493-4E2B-AFE1-0AB038B17789"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 4 to <bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "2ECB390F-C9DD-4DE6-B587-A59CC0605198"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple TV 4k"
identifier: 1280262988
5: 1
}
client {
processIdentifier: 4468
bundleIdentifier: "com.apple.TVMusic"
processUserIdentifier: 501
displayName: "Music"
}
player {
identifier: "Music"
displayName: "Music"
6: 0
}
}
lastPlayingTimestamp: 666697727.221059
}
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_CLIENT_MESSAGE
[updateClientMessage] {
client {
processIdentifier: 56094
bundleIdentifier: "com.cosmickids"
processUserIdentifier: 501
displayName: "Cosmic Kids"
}
}
uniqueIdentifier: "D07CD316-2B2A-4026-960A-B5E89222B130"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 55 to <bound method PlayerStateManager._handle_update_client of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
playbackQueue {
location: 0
}
displayName: "Cosmic Kids"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple TV 4k"
identifier: 1280262988
}
client {
processIdentifier: 56094
bundleIdentifier: "com.cosmickids"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
6: 0
}
}
playbackStateTimestamp: 666517624.360609
}
uniqueIdentifier: "87FA8F3D-5DEB-4CDC-9B27-61DC4A948184"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 4 to <bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "3E37EE68-DCC0-4100-B921-9E99F110C853"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple TV 4k"
identifier: 1280262988
5: 1
}
client {
processIdentifier: 56094
bundleIdentifier: "com.cosmickids"
processUserIdentifier: 501
displayName: "Cosmic Kids"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
6: 0
}
}
lastPlayingTimestamp: -63114076800.0
}
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: VOLUME_CONTROL_CAPABILITIES_DID_CHANGE_MESSAGE
[volumeControlCapabilitiesDidChangeMessage] {
capabilities {
volumeControlAvailable: true
volumeCapabilities: Absolute
}
endpointUID: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
outputDeviceUID: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
}
uniqueIdentifier: "E0329029-79EA-419F-8981-C18CE0D94AAF"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 64 to <bound method MrpAudio._volume_control_changed of <pyatv.protocols.mrp.MrpAudio object at 0x74da2910>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: VOLUME_CONTROL_CAPABILITIES_DID_CHANGE_MESSAGE
[volumeControlCapabilitiesDidChangeMessage] {
capabilities {
volumeControlAvailable: true
volumeCapabilities: Absolute
}
endpointUID: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
outputDeviceUID: "D661593F-E305-4ECD-B95B-8A5F30AB6F2D"
}
uniqueIdentifier: "91D5B5DD-B32D-4103-B0D4-0FEC1F543ADC"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 64 to <bound method MrpAudio._volume_control_changed of <pyatv.protocols.mrp.MrpAudio object at 0x74da2910>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: VOLUME_CONTROL_CAPABILITIES_DID_CHANGE_MESSAGE
[volumeControlCapabilitiesDidChangeMessage] {
capabilities {
volumeControlAvailable: true
volumeCapabilities: Absolute
}
endpointUID: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
outputDeviceUID: "162642B2-496E-4ED2-934A-1D11BC7C8875"
}
uniqueIdentifier: "C5023FBC-0A1C-472E-8FFF-4AB8CD45A773"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 64 to <bound method MrpAudio._volume_control_changed of <pyatv.protocols.mrp.MrpAudio object at 0x74da2910>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: VOLUME_DID_CHANGE_MESSAGE
[volumeDidChangeMessage] {
volume: 0.15000004
endpointUID: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
outputDeviceUID: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
}
uniqueIdentifier: "AA53C873-2012-4350-8C7D-328872D1CCBF"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 52 to <bound method MrpAudio._volume_did_change of <pyatv.protocols.mrp.MrpAudio object at 0x74da2910>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: VOLUME_DID_CHANGE_MESSAGE
[volumeDidChangeMessage] {
volume: 0.15000004
endpointUID: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
outputDeviceUID: "D661593F-E305-4ECD-B95B-8A5F30AB6F2D"
}
uniqueIdentifier: "0354ED52-DA30-4BC7-929B-275D1F3363C6"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 52 to <bound method MrpAudio._volume_did_change of <pyatv.protocols.mrp.MrpAudio object at 0x74da2910>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: VOLUME_DID_CHANGE_MESSAGE
[volumeDidChangeMessage] {
volume: 0.15000004
endpointUID: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
outputDeviceUID: "162642B2-496E-4ED2-934A-1D11BC7C8875"
}
uniqueIdentifier: "F76BC9D7-9C3C-4DB3-9C80-BE138305156C"
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type 52 to <bound method MrpAudio._volume_did_change of <pyatv.protocols.mrp.MrpAudio object at 0x74da2910>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UNKNOWN_MESSAGE
identifier: "12FE38B8-40FA-42AC-A175-632E292342A4"
uniqueIdentifier: "45F24B53-70A4-4D60-9911-AACBA3CEC9DF"
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=2000b2b3e80e7514a83e9fddc1fbc2399fc13a453246be5e967f60f06cf5db6fe880840bc9e876e626c05bced8aba4445c77)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.mrp]: Volume control availability changed to True
2022-02-16 13:38:29 DEBUG [pyatv.protocols.mrp.player_state]: Active client is now com.apple.TVMusic
2022-02-16 13:38:29 DEBUG [pyatv.protocols.mrp.player_state]: Active player is now Music (Music)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.mrp]: Volume control availability changed to True
2022-02-16 13:38:29 DEBUG [pyatv.protocols.mrp]: Volume control availability changed to True
2022-02-16 13:38:29 DEBUG [pyatv.protocols.mrp]: Volume control availability changed to True
2022-02-16 13:38:29 DEBUG [pyatv.protocols.mrp]: Volume changed to 15.0
2022-02-16 13:38:29 DEBUG [pyatv.core.protocol]: Dispatching message with type UpdatedState.Volume to <bound method RaopAudio._volume_changed of <pyatv.protocols.raop.RaopAudio object at 0x74d86e30>>
2022-02-16 13:38:29 DEBUG [pyatv.protocols.raop]: Protocol MRP changed volume to 15.000000
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=b400d94438ffe576f9dc1fa771279ae13f8e6f43982b4cf47c50d577b44ddea4ff4c2c2f035751dc027c2baf2414b01ff3a4a57a088a1c9334636f800fbf1d0338d6218968d839c1859b3cd8f1b40d1263b03ed3fb802971bc8a21768564d68d470bc08c1605333476b950f903061ab338e4e0a526878d936dc70e00729412d6e3738f2891ea65d588081c6e33fdc460f9adadf403c202cdb29497e5e7b2ca68347de994eec04c68a2f9b52a9991bc49f7adbefa0e014d4c49696c16f80e8b3caf1d78a4f46d)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: >> Send: Protobuf: type: GET_KEYBOARD_SESSION_MESSAGE
identifier: "F1CF8EEA-59CF-4B73-9CD9-C9FA52F2CABA"
errorCode: NoError
uniqueIdentifier: "ABCE21E4-3EB0-42E7-BADC-DAAAF6BE3874"
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Received data (Data=20007303bbcbe14781101b7c2931cead4a97dd9b1d5539aaeb5770bf59ca4b918ba6a5bf611ae02527799351ba35bdd67824)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.channels]: Not enough data on data channel (has 32, expects 74)
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2a001a46646865000a4e9370ef8698026f22f1aa0fdbef758910f1c9285830bd2facdda33b651cbf0b3b71a6cd34871a90314cd7268e97cc5b7c1918)
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Received data (Data=20006a1533911ca50265b329fa5e91259562033771fbb678f2e8259b9e62a18a1bf6e7852660482b6a934447e1338bd80ef3)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.channels]: Not enough data on data channel (has 32, expects 201)
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Received data (Data=a9004156e7f891a4e5c1bd5d7fd0a06aa113450d083e54dc01eb7fe24e3f71a89ddb731a139ab821bb3d2b90a86d8c974d8e6cd947dd5321fc2978d596c3fbeb127f29e3e0134add4d7a2982be797b15e405b560df75f3d4589e5863dbef224741ef5cad251d23964ad343dea3255ff146e212f0bee4ec8899a4ad23e0454a131fadb3a866ec8fdfd740fc0c478d9bbfc77baa03de23a9dc21f39074b88edbb3de7f8409fca0da254619f87b36dcf3b74a8c58a0be31451376ec2f)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: KEYBOARD_MESSAGE
identifier: "F1CF8EEA-59CF-4B73-9CD9-C9FA52F2CABA"
[keyboardMessage] {
state: Unknown
attributes {
inputTraits {
autocapitalizationType: None
keyboardType: Default
returnKeyType: Default
enablesReturnKeyAutomatically: false
secureTextEntry: false
validTextRangeLocation: 0
validTextRangeLength: 0
}
}
}
uniqueIdentifier: "F3B1CAFF-FC7C-4436-B826-945479F2A884"
2022-02-16 13:38:29 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=2000fb2bf1e6805c0180627049a98a18cd022921bc4bd5c4b09a7fe83dd9d9f75745ac9e17fa1f946ada5ff0b1cad76e045a)
2022-02-16 13:38:29 DEBUG [pyatv.core.facade]: Connected to protocol: Protocol.MRP
2022-02-16 13:38:29 DEBUG [pyatv.core.facade]: Protocol Protocol.MRP already set up, ignoring
2022-02-16 13:38:29 DEBUG [pyatv.core.facade]: Connecting to protocol: Protocol.RAOP
2022-02-16 13:38:29 DEBUG [pyatv.core.facade]: Connected to protocol: Protocol.RAOP
2022-02-16 13:38:29 DEBUG [pyatv.core.facade]: Takeover (<class 'pyatv.interface.Audio'>, <class 'pyatv.interface.Metadata'>, <class 'pyatv.interface.PushUpdater'>, <class 'pyatv.interface.RemoteControl'>) by Protocol.RAOP
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Connected to 192.168.188.47
2022-02-16 13:38:29 DEBUG [pyatv.protocols.raop.raop]: Initializing RTSP with encryption=EncryptionType.FairPlaySAPv25|FairPlay|Unencrypted, metadata=MetadataType.Progress|Artwork|Text
2022-02-16 13:38:29 DEBUG [pyatv.protocols.raop.raop]: Update play settings to 44100/2/16bit
2022-02-16 13:38:29 DEBUG [pyatv.protocols.raop.raop]: Local ports: control=48058, timing=53258
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'GET /info RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nCSeq: 0\r\nDACP-ID: 76DE652B9747AB2C\r\nActive-Remote: 4137443516\r\nClient-Instance: 76DE652B9747AB2C\r\n\r\n'
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:29 GMT\r\nContent-Length: 954\r\nContent-Type: application/x-apple-binary-plist\r\nServer: AirTunes/605.1\r\nCSeq: 0\r\n\r\nbplist00\xdf\x10\x17\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a!"\x1e$%&\'()!+,-5\x1e789:;SpsiRvv_\x10\x14playbackCapabilities_\x10\x15canRecordScreenStream[statusFlags_\x10\x18keepAliveSendStatsAsBodyTname_\x10\x11volumeControlType_\x10\x0fprotocolVersion]senderAddressXdeviceIDRpi^screenDemoMode]initialVolumeZfeaturesEx_\x10\x10supportedFormats]sourceVersion_\x10\x16hasUDPMirroringSupportUmodelRpkZmacAddress_\x10\x15receiverHDRCapabilityXfeatures_\x10$19D22C47-75C3-4F31-9916-784457E0FB02\x10\x02\xd3\x1b\x1c\x1d\x1e\x1e\x1e_\x10\x15supportsInterstitials_\x10\x15supportsFPSSecureStop_\x10\x1dsupportsUIForAudioOnlyContent\t\t\t\x08\x12\x00\x01\x86D\t[Apple TV 4k\x10\x04S1.1_\x10\x14192.168.188.58:34140_\x10\x1158:D3:49:EC:4B:5F_\x10$a649af48-73d4-4984-a020-0563f7d1bf8e\x08#\xc09\x80\x00\x00\x00\x00\x00\\1d9/St5/FbwI\xd4./012334_\x10\x15lowLatencyAudioStream\\screenStream[audioStream\\bufferStream\x10\x00\x12\x01D\x08\x00\x12\x00\xe0\x00\x00U605.1\t[AppleTV11,1O\x10 .\xb0\xb3\xc3m\x1f\xd5\xb8\x03(\xef\xf56[\n\x85\x85\x10\xa1^\x9c\x1eq\x0f\xeb9-\xa7\xd1\x14\r\x8e_\x10\x1158:D3:49:EC:4B:5FT4k60\x13\xbc\x15\x7f\xdeJ\x7f\xdf\xd5\x00\x08\x009\x00=\x00@\x00W\x00o\x00{\x00\x96\x00\x9b\x00\xaf\x00\xc1\x00\xcf\x00\xd8\x00\xdb\x00\xea\x00\xf8\x01\x03\x01\x16\x01$\x01=\x01C\x01F\x01Q\x01i\x01r\x01\x99\x01\x9b\x01\xa2\x01\xba\x01\xd2\x01\xf2\x01\xf3\x01\xf4\x01\xf5\x01\xf6\x01\xfb\x01\xfc\x02\x08\x02\n\x02\x0e\x02%\x029\x02`\x02a\x02j\x02w\x02\x80\x02\x98\x02\xa5\x02\xb1\x02\xbe\x02\xc0\x02\xc5\x02\xca\x02\xd0\x02\xd1\x02\xdd\x03\x00\x03\x14\x03\x19\x00\x00\x00\x00\x00\x00\x02\x01\x00\x00\x00\x00\x00\x00\x00<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03"'
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:29 GMT', 'content-length': '954', 'content-type': 'application/x-apple-binary-plist', 'server': 'AirTunes/605.1', 'cseq': '0'}, body=b'bplist00\xdf\x10\x17\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a!"\x1e$%&\'()!+,-5\x1e789:;SpsiRvv_\x10\x14playbackCapabilities_\x10\x15canRecordScreenStream[statusFlags_\x10\x18keepAliveSendStatsAsBodyTname_\x10\x11volumeControlType_\x10\x0fprotocolVersion]senderAddressXdeviceIDRpi^screenDemoMode]initialVolumeZfeaturesEx_\x10\x10supportedFormats]sourceVersion_\x10\x16hasUDPMirroringSupportUmodelRpkZmacAddress_\x10\x15receiverHDRCapabilityXfeatures_\x10$19D22C47-75C3-4F31-9916-784457E0FB02\x10\x02\xd3\x1b\x1c\x1d\x1e\x1e\x1e_\x10\x15supportsInterstitials_\x10\x15supportsFPSSecureStop_\x10\x1dsupportsUIForAudioOnlyContent\t\t\t\x08\x12\x00\x01\x86D\t[Apple TV 4k\x10\x04S1.1_\x10\x14192.168.188.58:34140_\x10\x1158:D3:49:EC:4B:5F_\x10$a649af48-73d4-4984-a020-0563f7d1bf8e\x08#\xc09\x80\x00\x00\x00\x00\x00\\1d9/St5/FbwI\xd4./012334_\x10\x15lowLatencyAudioStream\\screenStream[audioStream\\bufferStream\x10\x00\x12\x01D\x08\x00\x12\x00\xe0\x00\x00U605.1\t[AppleTV11,1O\x10 .\xb0\xb3\xc3m\x1f\xd5\xb8\x03(\xef\xf56[\n\x85\x85\x10\xa1^\x9c\x1eq\x0f\xeb9-\xa7\xd1\x14\r\x8e_\x10\x1158:D3:49:EC:4B:5FT4k60\x13\xbc\x15\x7f\xdeJ\x7f\xdf\xd5\x00\x08\x009\x00=\x00@\x00W\x00o\x00{\x00\x96\x00\x9b\x00\xaf\x00\xc1\x00\xcf\x00\xd8\x00\xdb\x00\xea\x00\xf8\x01\x03\x01\x16\x01$\x01=\x01C\x01F\x01Q\x01i\x01r\x01\x99\x01\x9b\x01\xa2\x01\xba\x01\xd2\x01\xf2\x01\xf3\x01\xf4\x01\xf5\x01\xf6\x01\xfb\x01\xfc\x02\x08\x02\n\x02\x0e\x02%\x029\x02`\x02a\x02j\x02w\x02\x80\x02\x98\x02\xa5\x02\xb1\x02\xbe\x02\xc0\x02\xc5\x02\xca\x02\xd0\x02\xd1\x02\xdd\x03\x00\x03\x14\x03\x19\x00\x00\x00\x00\x00\x00\x02\x01\x00\x00\x00\x00\x00\x00\x00<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03"'):
2022-02-16 13:38:29 DEBUG [pyatv.protocols.raop.raop]: Updated info parameters to: {'psi': '19D22C47-75C3-4F31-9916-784457E0FB02', 'vv': 2, 'playbackCapabilities': {'supportsInterstitials': True, 'supportsFPSSecureStop': True, 'supportsUIForAudioOnlyContent': True}, 'canRecordScreenStream': False, 'statusFlags': 99908, 'keepAliveSendStatsAsBody': True, 'name': 'Apple TV 4k', 'volumeControlType': 4, 'protocolVersion': '1.1', 'senderAddress': '192.168.188.58:34140', 'deviceID': '58:D3:49:EC:4B:5F', 'pi': 'a649af48-73d4-4984-a020-0563f7d1bf8e', 'screenDemoMode': False, 'initialVolume': -25.5, 'featuresEx': '1d9/St5/FbwI', 'supportedFormats': {'lowLatencyAudioStream': 0, 'screenStream': 21235712, 'audioStream': 21235712, 'bufferStream': 14680064}, 'sourceVersion': '605.1', 'hasUDPMirroringSupport': True, 'model': 'AppleTV11,1', 'pk': b'.\xb0\xb3\xc3m\x1f\xd5\xb8\x03(\xef\xf56[\n\x85\x85\x10\xa1^\x9c\x1eq\x0f\xeb9-\xa7\xd1\x14\r\x8e', 'macAddress': '58:D3:49:EC:4B:5F', 'receiverHDRCapability': '4k60', 'features': -4893864827358814251}
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.auth]: Setting up new AirPlay Pair-Verify procedure with type AuthenticationType.Legacy
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.srp]: Authentication keys (Private=606af368412bf52d79ed60b96a270fb64565c0823cf49b5b01486efe1630efb6, Public=5db5639145c91ff1370d6dd033d5e082de51c6669feefe405cd5794318e7597e)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.srp]: Verification keys (Private=606af368412bf52d79ed60b96a270fb64565c0823cf49b5b01486efe1630efb6, Public=e3ebaed7897212fce473b6fd964a5ef0ce6957d6fa71a6500498401e720e5b62)
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Sending HTTP/1.1 message: b'POST /pair-verify HTTP/1.1\r\nContent-Length: 68\r\nUser-Agent: AirPlay/320.20\r\nConnection: keep-alive\r\nContent-Type: application/octet-stream\r\n\r\n\x01\x00\x00\x00\xe3\xeb\xae\xd7\x89r\x12\xfc\xe4s\xb6\xfd\x96J^\xf0\xceiW\xd6\xfaq\xa6P\x04\x98@\x1er\x0e[b]\xb5c\x91E\xc9\x1f\xf17\rm\xd03\xd5\xe0\x82\xdeQ\xc6f\x9f\xee\xfe@\\\xd5yC\x18\xe7Y~'
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Received: b'HTTP/1.1 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:29 GMT\r\nContent-Length: 96\r\nContent-Type: application/octet-stream\r\nServer: AirTunes/605.1\r\n\r\n\xdbE\xa2\xfc4\xc7_\xac\xe3z\nQ\x0bc\n\xbee[D\x9d^k]\t\xf52\xa44$o\x8b#\xda\xc0\xeaA\x12\xaa\xcb\x07 \xfc\xe4\x87\xbdN\x95X\x91\xb4\x01<459,\x10\tC\x13\xfe\xefg\xacT\x17\xd8\x8f0\xadX\x91\x19\x90\xeb\xcap\n\xc7X\x9f8\x05\x8f\xcb\xc0\x0b\\\xe4T\x90\xb6H\xda\x00\xf0'
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Got HTTP response: HttpResponse(protocol='HTTP', version='1.1', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:29 GMT', 'content-length': '96', 'content-type': 'application/octet-stream', 'server': 'AirTunes/605.1'}, body=b'\xdbE\xa2\xfc4\xc7_\xac\xe3z\nQ\x0bc\n\xbee[D\x9d^k]\t\xf52\xa44$o\x8b#\xda\xc0\xeaA\x12\xaa\xcb\x07 \xfc\xe4\x87\xbdN\x95X\x91\xb4\x01<459,\x10\tC\x13\xfe\xefg\xacT\x17\xd8\x8f0\xadX\x91\x19\x90\xeb\xcap\n\xc7X\x9f8\x05\x8f\xcb\xc0\x0b\\\xe4T\x90\xb6H\xda\x00\xf0'):
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.srp]: Verify (Data=dac0ea4112aacb0720fce487bd4e955891b4013c3435392c10094313feef67ac5417d88f30ad58911990ebca700ac7589f38058fcbc00b5ce45490b648da00f0, PublicSecret=db45a2fc34c75face37a0a510b630abe655b449d5e6b5d09f532a434246f8b23)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.srp]: Shared secret (Secret=33d935db3870727851346b223d5b8bf4b3d3035bf62478857494c0bb7c16ab3e)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.srp]: Pair-Verify-AES (IV=7926a17daf08ee66f8500801b0d5f94e, Key=3216cb302039c3db9c1652a3a3854da2)
2022-02-16 13:38:29 DEBUG [pyatv.protocols.airplay.srp]: Signature (Signature=cd5a4e341dec67702aa9e0b80d4947a4a519db15e04b0dbd003464123e150579719e03cb0f9316be858c326f923078b54b9d91c76653348b37418f0bf20e0432)
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Sending HTTP/1.1 message: b'POST /pair-verify HTTP/1.1\r\nContent-Length: 68\r\nUser-Agent: AirPlay/320.20\r\nConnection: keep-alive\r\nContent-Type: application/octet-stream\r\n\r\n\x00\x00\x00\x00\xcdZN4\x1d\xecgp*\xa9\xe0\xb8\rIG\xa4\xa5\x19\xdb\x15\xe0K\r\xbd\x004d\x12>\x15\x05yq\x9e\x03\xcb\x0f\x93\x16\xbe\x85\x8c2o\x920x\xb5K\x9d\x91\xc7fS4\x8b7A\x8f\x0b\xf2\x0e\x042'
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Received: b'HTTP/1.1 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:29 GMT\r\nContent-Length: 0\r\nContent-Type: application/octet-stream\r\nServer: AirTunes/605.1\r\n\r\n'
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Got HTTP response: HttpResponse(protocol='HTTP', version='1.1', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:29 GMT', 'content-length': '0', 'content-type': 'application/octet-stream', 'server': 'AirTunes/605.1'}, body=b''):
2022-02-16 13:38:29 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'ANNOUNCE rtsp://192.168.188.58/1165463236 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nContent-Type: application/sdp\r\nContent-Length: 186\r\nCSeq: 1\r\nDACP-ID: 76DE652B9747AB2C\r\nActive-Remote: 4137443516\r\nClient-Instance: 76DE652B9747AB2C\r\n\r\nv=0\r\no=iTunes 1165463236 0 IN IP4 192.168.188.58\r\ns=iTunes\r\nc=IN IP4 192.168.188.47\r\nt=0 0\r\nm=audio 0 RTP/AVP 96\r\na=rtpmap:96 AppleLossless\r\na=fmtp:96 352 0 16 40 10 14 2 255 0 0 44100\r\n'
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:30 GMT\r\nContent-Length: 0\r\nServer: AirTunes/605.1\r\nCSeq: 1\r\n\r\n'
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:30 GMT', 'content-length': '0', 'server': 'AirTunes/605.1', 'cseq': '1'}, body=''):
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'SETUP rtsp://192.168.188.58/1165463236 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nCSeq: 2\r\nDACP-ID: 76DE652B9747AB2C\r\nActive-Remote: 4137443516\r\nClient-Instance: 76DE652B9747AB2C\r\nTransport: RTP/AVP/UDP;unicast;interleaved=0-1;mode=record;control_port=48058;timing_port=53258\r\n\r\n'
2022-02-16 13:38:30 DEBUG [pyatv.auth.hap_channel]: Received data (Data=00043652ead260a6a678c5740b7eb6a3b753c96426874e6d1f4f22933dcbc0b2ac3569374b9116ad3fc1bf26af0bb953abf8be871b77a49e672c2929159c58f478d3dff4fe124cfdd552aad4fd64583771eae82ca8c893a9c7981ad493fb438a5f592dae8d8641689bc2baf1cb7086a943baf0a9b40f3d63d8d291eda10067e2b388cf0fcd411f59180817fdda3a30a4e5f3722e202c344d2e77d859d76f126d729bcf7f5fcf86a8d1534afa933ffbb2a029ca97f905e82d991ee848b7fec161a50faaee2762fe31e048bcce529a81c7145e57368f32af8a5a0fe26d4ac53599f6ff0a088d06579401ca0d3846e6b8331e4a22157d8c13749f13cce890493...)
2022-02-16 13:38:30 DEBUG [pyatv.protocols.airplay.channels]: Not enough data to parse request on event channel
2022-02-16 13:38:30 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2e02daf7248df3589cddf045ec61e418ed6b81a739b6338a6ba4baaec86249b8aa8e6c4ed8112e71c9cf6c2eea7cb0a6a5f577490b9a11d21b25bdede3d3b88cdf14cca5be7e90f508a7f0febb3c0c7ce56d40bc080bdeaab88657840cc013f3cd75119fde9f58ce576bef44ea445086db27632202b9ef6c79b95a7871ae3c62bbb30c50d5ff96c32b553bfeae4bd86f83faff00042dc11f89c64a58a47b3fbfbd90a233ef3e8dd67b07667c1908d2f94c231ade9c01721d764cfb326c47e491aadb80f60f1baeecfbe27991c02098d5a89e56820e2d46b0dea343e878e4668f01ec51bcbff1a854dcc802d43a735baa28f119b1f9ec20c7cc4e1f2e0e1ae...)
2022-02-16 13:38:30 DEBUG [pyatv.protocols.airplay.channels]: Got message on event channel: HttpRequest(method='POST', path='/command', protocol='RTSP', version='1.0', headers={'cseq': '1', 'content-length': '1477', 'content-type': 'application/x-apple-binary-plist'}, body=b'bplist00\xd2\x01\x02\x03\x04TtypeUvalueZupdateInfo\xdf\x10\x18\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f&\'#)*+,-.&0123;#=>?@ASpsiRvv_\x10\x14playbackCapabilities_\x10\x15canRecordScreenStream[statusFlags_\x10\x18keepAliveSendStatsAsBodyTname_\x10\x0fprotocolVersion_\x10\x11volumeControlType]senderAddressXdeviceIDRpi^screenDemoMode]initialVolumeZfeaturesExZtxtAirPlay_\x10\x10supportedFormats]sourceVersion_\x10\x16hasUDPMirroringSupportUmodelRpkZmacAddress_\x10\x15receiverHDRCapabilityXfeatures_\x10$19D22C47-75C3-4F31-9916-784457E0FB02\x10\x02\xd3 !"###_\x10\x15supportsInterstitials_\x10\x15supportsFPSSecureStop_\x10\x1dsupportsUIForAudioOnlyContent\t\t\t\x08\x12\x00\x03\x86D\t[Apple TV 4kS1.1\x10\x04_\x10\x14192.168.188.58:34134_\x10\x1158:D3:49:EC:4B:5F_\x10$a649af48-73d4-4984-a020-0563f7d1bf8e\x08#\xc09\x80\x00\x00\x00\x00\x00\\1d9/St5/FbwIO\x11\x01\xd3\x05acl=0\x18btaddr=58:D3:49:EE:21:F0\x1adeviceid=58:D3:49:EC:4B:5F\x10fex=1d9/St5/FbwI\x1efeatures=0x4A7FDFD5,0xBC157FDE\rflags=0x38644(gid=9976945E-2AAD-5461-BBF6-2C709A58BFEF\x05igl=1\x06gcgl=1\x0fgpn=Apple TV 4k\x07psgsz=3\x07psgtp=1*psgid=9976945E-2AAD-5461-BBF6-2C709A58BFEF\x05pgm=0\x11model=AppleTV11,1\rprotovers=1.1\'pi=a649af48-73d4-4984-a020-0563f7d1bf8e(psi=19D22C47-75C3-4F31-9916-784457E0FB02Cpk=2eb0b3c36d1fd5b80328eff5365b0a858510a15e9c1e710feb392da7d1140d8e\rsrcvers=605.1\x0bosvers=15.3\x04vv=2\xd44567899:_\x10\x15lowLatencyAudioStream\\screenStream[audioStream\\bufferStream\x10\x00\x12\x01D\x08\x00\x12\x00\xe0\x00\x00U605.1\t[AppleTV11,1O\x10 .\xb0\xb3\xc3m\x1f\xd5\xb8\x03(\xef\xf56[\n\x85\x85\x10\xa1^\x9c\x1eq\x0f\xeb9-\xa7\xd1\x14\r\x8e_\x10\x1158:D3:49:EC:4B:5FT4k60\x13\xbc\x15\x7f\xdeJ\x7f\xdf\xd5\x00\x08\x00\r\x00\x12\x00\x18\x00#\x00V\x00Z\x00]\x00t\x00\x8c\x00\x98\x00\xb3\x00\xb8\x00\xca\x00\xde\x00\xec\x00\xf5\x00\xf8\x01\x07\x01\x15\x01 \x01+\x01>\x01L\x01e\x01k\x01n\x01y\x01\x91\x01\x9a\x01\xc1\x01\xc3\x01\xca\x01\xe2\x01\xfa\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02#\x02$\x020\x024\x026\x02M\x02a\x02\x88\x02\x89\x02\x92\x02\x9f\x04v\x04\x7f\x04\x97\x04\xa4\x04\xb0\x04\xbd\x04\xbf\x04\xc4\x04\xc9\x04\xcf\x04\xd0\x04\xdc\x04\xff\x05\x13\x05\x18\x00\x00\x00\x00\x00\x00\x02\x01\x00\x00\x00\x00\x00\x00\x00B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05!')
2022-02-16 13:38:30 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=4f0048bcf31c42b4dcc44bdfceebf8cf7952f3859040b39cda3e39f5b6a0f751fdc494206d1bd1ec3133f488b29dbf3ab04af5733442c0971f8467f7de2135e45b6ab0af4b195d6dcf610048d802a2a135352229d0f3a688830aa1d985e6bec848)
2022-02-16 13:38:30 DEBUG [pyatv.auth.hap_channel]: Received data (Data=20009d4612cbb0e74074aa3f576e750b85eb9ceee2cacc498ba9806354a1da938f1b35b5ea07d4e64051f5b6b2e4857b7f11b20ce1ee3cf751242653e608186a6459bbf673d26247a5fb8de6bf3fd08d623cd19d6c93e21767339d3e8192379a92cc71ec59ca46585d21330f5ef3d39d3f7dc37b0bc69c40615576e4d19ca6bc69cc7e7ae2ef0f4a97f74833bf20fe267a7fb2e4bce2b33feb5ac032cf89c402c19b18534831b9294b9dcbf03cb212b5827f5397311d8afa601d25e1234f61176970a8f79bf75550b287b8e181c45f9d2f0bf34cc6afdf5febd71089da9170e6bb30ee5e507fad08a3186ac4486d08a4c1e54ac1cc4b23e787f4ba2c2e3ea...)
2022-02-16 13:38:30 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_NOW_PLAYING_CLIENT_MESSAGE
[setNowPlayingClientMessage] {
client {
processIdentifier: 202
bundleIdentifier: "com.apple.TVAirPlay"
}
}
uniqueIdentifier: "0CA8CC32-CB3E-406D-B6A6-C8A1CB6C79B1"
2022-02-16 13:38:30 DEBUG [pyatv.core.protocol]: Dispatching message with type 46 to <bound method PlayerStateManager._handle_set_now_playing_client of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:30 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_DEFAULT_SUPPORTED_COMMANDS_MESSAGE
[setDefaultSupportedCommandsMessage] {
supportedCommands {
supportedCommands {
command: Play
enabled: true
}
supportedCommands {
command: PrepareForSetQueue
enabled: true
}
supportedCommands {
command: SetPlaybackQueue
enabled: true
supportedPlaybackQueueTypes: 7
supportedPlaybackQueueTypes: 3
supportedPlaybackQueueTypes: 6
supportedPlaybackQueueTypes: 2
supportedPlaybackQueueTypes: 5
supportedPlaybackQueueTypes: 1
supportedPlaybackQueueTypes: 8
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.radio"
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.tracklist"
supportedCustomQueueIdentifiers: "com.apple.MediaPlaybackCore.playbackContextArchive-v1.opack"
supportedCustomQueueIdentifiers: "com.apple.mediaplayer.playbackcontext"
}
supportedCommands {
command: SetPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:4683722"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:4683722"
}
supportedCommands {
command: PreloadedPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:4683722"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:4683722"
}
}
displayID: "com.apple.TVMusic"
playbackQueueCapabilities {
}
playerPath {
client {
bundleIdentifier: "com.apple.TVMusic"
}
}
}
uniqueIdentifier: "DFEF30A6-12E5-412B-9F50-A2D892549A6B"
2022-02-16 13:38:30 DEBUG [pyatv.core.protocol]: Dispatching message with type 72 to <bound method PlayerStateManager._handle_set_default_supported_commands of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:30 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_DEFAULT_SUPPORTED_COMMANDS_MESSAGE
[setDefaultSupportedCommandsMessage] {
supportedCommands {
supportedCommands {
command: Play
enabled: true
}
supportedCommands {
command: SetPlaybackQueue
enabled: true
supportedPlaybackQueueTypes: 3
supportedPlaybackQueueTypes: 6
supportedPlaybackQueueTypes: 2
supportedPlaybackQueueTypes: 5
supportedPlaybackQueueTypes: 1
}
supportedCommands {
command: SetPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.podcasts.MTPlaybackQueueController.GenericQueue"
currentPlaybackSessionTypes: "com.apple.podcasts.MTPlaybackQueueController.GenericQueue"
}
}
displayID: "com.apple.podcasts"
playbackQueueCapabilities {
}
playerPath {
client {
bundleIdentifier: "com.apple.podcasts"
}
}
}
uniqueIdentifier: "F38A7CE7-EDF9-443B-8CC9-707BAA37BEF4"
2022-02-16 13:38:30 DEBUG [pyatv.core.protocol]: Dispatching message with type 72 to <bound method PlayerStateManager._handle_set_default_supported_commands of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:30 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: ORIGIN_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "19F64AD2-A335-4CB7-B729-44F9CB704FC8"
[originClientPropertiesMessage] {
lastPlayingTimestamp: 666697727.231641
}
2022-02-16 13:38:30 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_NOW_PLAYING_CLIENT_MESSAGE
[setNowPlayingClientMessage] {
client {
processIdentifier: 202
bundleIdentifier: "com.apple.TVAirPlay"
}
}
uniqueIdentifier: "E2FCBD2B-5F31-487B-823E-597B7D20A897"
2022-02-16 13:38:30 DEBUG [pyatv.core.protocol]: Dispatching message with type 46 to <bound method PlayerStateManager._handle_set_now_playing_client of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:30 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_CLIENT_MESSAGE
[updateClientMessage] {
client {
processIdentifier: 202
bundleIdentifier: "com.apple.TVAirPlay"
processUserIdentifier: 501
displayName: "Music"
bundleIdentifierHierarchys: "com.apple.Music"
}
}
uniqueIdentifier: "EBCAB49B-4CD8-413F-A052-E99B243932CC"
2022-02-16 13:38:30 DEBUG [pyatv.core.protocol]: Dispatching message with type 55 to <bound method PlayerStateManager._handle_update_client of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:30 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
supportedCommands {
supportedCommands {
command: Play
enabled: true
}
supportedCommands {
command: Pause
enabled: true
}
supportedCommands {
command: Stop
enabled: true
}
supportedCommands {
command: TogglePlayPause
enabled: true
}
supportedCommands {
command: NextTrack
enabled: true
}
supportedCommands {
command: PreviousTrack
enabled: true
}
supportedCommands {
command: PlayItemInPlaybackQueue
enabled: true
}
supportedCommands {
command: SetPlaybackQueue
enabled: true
supportedPlaybackQueueTypes: 7
supportedPlaybackQueueTypes: 3
supportedPlaybackQueueTypes: 6
supportedPlaybackQueueTypes: 2
supportedPlaybackQueueTypes: 5
supportedPlaybackQueueTypes: 1
supportedPlaybackQueueTypes: 8
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.sharedlistening"
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.radio"
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.tracklist"
supportedCustomQueueIdentifiers: "com.apple.MediaPlaybackCore.playbackContextArchive-v1.opack"
supportedCustomQueueIdentifiers: "com.apple.mediaplayer.playbackcontext"
}
supportedCommands {
command: SetPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:d2dfb1e"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:d2dfb1e"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:storeFront:143441"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:storeFront:143441"
currentPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:d2dfb1e"
currentPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:storeFront:143441"
playbackSessionIdentifier: "73EAD988-DBE3-451A-8628-AFAF5C9E8458"
}
supportedCommands {
command: PrepareForSetQueue
enabled: true
}
supportedCommands {
command: InsertIntoPlaybackQueue
enabled: true
supportedPlaybackQueueTypes: 7
supportedPlaybackQueueTypes: 3
supportedPlaybackQueueTypes: 6
supportedPlaybackQueueTypes: 2
supportedPlaybackQueueTypes: 5
supportedPlaybackQueueTypes: 1
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.tracklist"
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.radio"
supportedCustomQueueIdentifiers: "com.apple.mediaplayer.playbackcontext"
supportedInsertionPositions: 0
supportedInsertionPositions: 2
supportedInsertionPositions: 3
}
supportedCommands {
enabled: true
1: 25010
}
supportedCommands {
command: SkipForward
preferredIntervals: 30.0
}
supportedCommands {
command: SkipBackward
preferredIntervals: 30.0
}
supportedCommands {
command: LikeTrack
enabled: true
active: false
localizedShortTitle: "Like"
presentationStyle: 2
}
supportedCommands {
command: DislikeTrack
enabled: true
active: false
localizedShortTitle: "Never Play"
presentationStyle: 2
}
supportedCommands {
command: SeekToPlaybackPosition
enabled: true
canScrub: 1
}
supportedCommands {
command: BeginFastForward
enabled: true
}
supportedCommands {
command: EndFastForward
enabled: true
}
supportedCommands {
command: BeginRewind
enabled: true
}
supportedCommands {
command: EndRewind
enabled: true
}
supportedCommands {
command: CreateRadioStation
enabled: true
}
supportedCommands {
command: ChangeRepeatMode
enabled: true
repeatMode: Off
}
supportedCommands {
command: ChangeShuffleMode
enabled: true
shuffleMode: Off
}
supportedCommands {
command: AdvanceRepeatMode
enabled: true
repeatMode: Off
}
supportedCommands {
command: AdvanceShuffleMode
enabled: true
shuffleMode: Off
}
supportedCommands {
command: Reshuffle
enabled: true
}
supportedCommands {
command: ChangeQueueEndAction
enabled: true
currentQueueEndAction: AutoPlay
supportedEndQueueActions: Reset
supportedEndQueueActions: AutoPlay
}
supportedCommands {
command: ReorderPlaybackQueue
enabled: true
}
supportedCommands {
command: RemoveFromPlaybackQueue
enabled: true
}
supportedCommands {
enabled: true
1: 25001
}
supportedCommands {
command: PreloadedPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:d2dfb1e"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:d2dfb1e"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:storeFront:143441"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:storeFront:143441"
}
supportedCommands {
command: AddNowPlayingItemToLibrary
enabled: true
active: false
}
supportedCommands {
command: AddItemToLibrary
enabled: true
}
supportedCommands {
command: ChangePlaybackRate
}
supportedCommands {
enabled: true
1: 25020
}
}
playbackQueue {
location: 0
}
displayName: "Music"
playbackState: Stopped
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple TV 4k"
identifier: 1280262988
}
client {
processIdentifier: 202
bundleIdentifier: "com.apple.TVAirPlay"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
6: 0
}
}
playbackStateTimestamp: 666539876.58381
}
uniqueIdentifier: "FF8177CE-B615-464A-8DAC-A08F844DCB41"
2022-02-16 13:38:30 DEBUG [pyatv.core.protocol]: Dispatching message with type 4 to <bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:30 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "027A50ED-3821-4ADD-9215-9D3AB9041508"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple TV 4k"
identifier: 1280262988
5: 1
}
client {
processIdentifier: 202
bundleIdentifier: "com.apple.TVAirPlay"
processUserIdentifier: 501
displayName: "Music"
bundleIdentifierHierarchys: "com.apple.Music"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
6: 0
}
}
lastPlayingTimestamp: 666539786.190316
}
2022-02-16 13:38:30 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=20008ce220521a13ee9d792166e236fb11db4b739ec4c4e14102a7963c17125398f0bc3a903d5c8f2b049084e6cb5dc55333)
2022-02-16 13:38:30 DEBUG [pyatv.protocols.mrp.player_state]: Active client is now com.apple.TVAirPlay
2022-02-16 13:38:30 DEBUG [pyatv.protocols.mrp.player_state]: Active client is now com.apple.TVAirPlay
2022-02-16 13:38:30 DEBUG [pyatv.auth.hap_channel]: Received data (Data=0004150f71e6e492c9f8357e2e86bc6568e5bf27806312ac54f30d30ebee1d86ffcc5d00b59fdcabf317e51902b72dcb5d13f8543174f3eab91231c3475f6d584989619e69a2671665f6039ccdecd0d5abdd1086a95a788a97128e19af863d8bdcc2843688865de5b421181acd1ca5551d898a4e880d04618cc4acb9c1dd8e632b13f5961b7f914959cfde47ea97c0c6416e4f3bcafb3a7b154719bcc93b8adf3102387f36de747b24f9850f2eaa814845c3d8d27c068c924225507a3bf538a30b514ab32b6ac229378f5f11388aeeb1120c7a87ef766ec300a70d4291be5a6ef3f6ab38d56262f08ac6642d277b5bfc800d7d4630b9057874ca5091d48b8...)
2022-02-16 13:38:30 DEBUG [pyatv.protocols.airplay.channels]: Got message on event channel: HttpRequest(method='POST', path='/command', protocol='RTSP', version='1.0', headers={'cseq': '2', 'content-length': '1477', 'content-type': 'application/x-apple-binary-plist'}, body=b'bplist00\xd2\x01\x02\x03\x04TtypeUvalueZupdateInfo\xdf\x10\x18\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f&\'#)*+,-.&0123;#=>?@ASpsiRvv_\x10\x14playbackCapabilities_\x10\x15canRecordScreenStream[statusFlags_\x10\x18keepAliveSendStatsAsBodyTname_\x10\x0fprotocolVersion_\x10\x11volumeControlType]senderAddressXdeviceIDRpi^screenDemoMode]initialVolumeZfeaturesExZtxtAirPlay_\x10\x10supportedFormats]sourceVersion_\x10\x16hasUDPMirroringSupportUmodelRpkZmacAddress_\x10\x15receiverHDRCapabilityXfeatures_\x10$19D22C47-75C3-4F31-9916-784457E0FB02\x10\x02\xd3 !"###_\x10\x15supportsInterstitials_\x10\x15supportsFPSSecureStop_\x10\x1dsupportsUIForAudioOnlyContent\t\t\t\x08\x12\x00\x03\x86D\t[Apple TV 4kS1.1\x10\x04_\x10\x14192.168.188.58:34134_\x10\x1158:D3:49:EC:4B:5F_\x10$a649af48-73d4-4984-a020-0563f7d1bf8e\x08#\xc09\x80\x00\x00\x00\x00\x00\\1d9/St5/FbwIO\x11\x01\xd3\x05acl=0\x18btaddr=58:D3:49:EE:21:F0\x1adeviceid=58:D3:49:EC:4B:5F\x10fex=1d9/St5/FbwI\x1efeatures=0x4A7FDFD5,0xBC157FDE\rflags=0x38644(gid=9976945E-2AAD-5461-BBF6-2C709A58BFEF\x05igl=1\x06gcgl=1\x0fgpn=Apple TV 4k\x07psgsz=3\x07psgtp=1*psgid=9976945E-2AAD-5461-BBF6-2C709A58BFEF\x05pgm=0\x11model=AppleTV11,1\rprotovers=1.1\'pi=a649af48-73d4-4984-a020-0563f7d1bf8e(psi=19D22C47-75C3-4F31-9916-784457E0FB02Cpk=2eb0b3c36d1fd5b80328eff5365b0a858510a15e9c1e710feb392da7d1140d8e\rsrcvers=605.1\x0bosvers=15.3\x04vv=2\xd44567899:_\x10\x15lowLatencyAudioStream\\screenStream[audioStream\\bufferStream\x10\x00\x12\x01D\x08\x00\x12\x00\xe0\x00\x00U605.1\t[AppleTV11,1O\x10 .\xb0\xb3\xc3m\x1f\xd5\xb8\x03(\xef\xf56[\n\x85\x85\x10\xa1^\x9c\x1eq\x0f\xeb9-\xa7\xd1\x14\r\x8e_\x10\x1158:D3:49:EC:4B:5FT4k60\x13\xbc\x15\x7f\xdeJ\x7f\xdf\xd5\x00\x08\x00\r\x00\x12\x00\x18\x00#\x00V\x00Z\x00]\x00t\x00\x8c\x00\x98\x00\xb3\x00\xb8\x00\xca\x00\xde\x00\xec\x00\xf5\x00\xf8\x01\x07\x01\x15\x01 \x01+\x01>\x01L\x01e\x01k\x01n\x01y\x01\x91\x01\x9a\x01\xc1\x01\xc3\x01\xca\x01\xe2\x01\xfa\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02#\x02$\x020\x024\x026\x02M\x02a\x02\x88\x02\x89\x02\x92\x02\x9f\x04v\x04\x7f\x04\x97\x04\xa4\x04\xb0\x04\xbd\x04\xbf\x04\xc4\x04\xc9\x04\xcf\x04\xd0\x04\xdc\x04\xff\x05\x13\x05\x18\x00\x00\x00\x00\x00\x00\x02\x01\x00\x00\x00\x00\x00\x00\x00B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05!')
2022-02-16 13:38:30 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=4f002ad9df3db0ed27a5b036649836e9062ea886347d034f64021bb83e02a3afa8a147f08abca459d35ade7245bb8bfad1fecfca0cad33446b89db001c23870162f1b7d0b9e21e37355517bf5efa58c682f1943f648e08611f1aee4aad73065057)
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:30 GMT\r\nContent-Length: 0\r\nTransport: RTP/AVP/UDP;unicast;mode=record;server_port=51526;control_port=58974;timing_port=0\r\nSession: 1\r\nAudio-Jack-Status: connected\r\nServer: AirTunes/605.1\r\nCSeq: 2\r\n\r\n'
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:30 GMT', 'content-length': '0', 'transport': 'RTP/AVP/UDP;unicast;mode=record;server_port=51526;control_port=58974;timing_port=0', 'session': '1', 'audio-jack-status': 'connected', 'server': 'AirTunes/605.1', 'cseq': '2'}, body=''):
2022-02-16 13:38:30 DEBUG [pyatv.auth.hap_channel]: Received data (Data=20006139c19e9f4e276ece7d31730be372f2e3923f2db5da12fc683c02fab034140f8679341c40ef8cdefacf5e4b2b4d44fd)
2022-02-16 13:38:30 DEBUG [pyatv.protocols.airplay.channels]: Not enough data on data channel (has 32, expects 679)
2022-02-16 13:38:30 DEBUG [pyatv.auth.hap_channel]: Received data (Data=8702d5539be4a0392a3e961910aa7894f487f3c217d66e29ec55974d1048f6ad3320252be0fe86c04d7354c7d00a520122f342096c597b475346171518477da30b90a70122b95a08d309cb575b7d9bba3d80621387833db787bffbb9965f8fb234fc606c2771a17252895b0db4d0173773febc4339d07924d9bb19eddfa60dfcfddffc62a5b87112c7dc15715a291fc6922f63459e6d4ec40cc94c182e5148d7172a9cd54ad3d2b615757d65bc8aebc3d0060ea3cbd2c9c99f4167a405c8a0e0529ef41ae2ff0a894c5783900f3157aba99df7bf77f84527f07a1c71a0d4948424b884574c43fdf84cfe2d0efb81b47ecc515291406e6a9081e4359fc1389...)
2022-02-16 13:38:30 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: DEVICE_INFO_UPDATE_MESSAGE
[deviceInfoMessage] {
uniqueIdentifier: "19D22C47-75C3-4F31-9916-784457E0FB02"
name: "Apple TV 4k"
localizedModelName: "Apple\302\240TV"
systemBuildVersion: "19K547"
applicationBundleIdentifier: "com.apple.mediaremoted"
protocolVersion: 1
lastSupportedMessageType: 121
supportsSystemPairing: true
allowsPairing: true
systemMediaApplication: "com.apple.TVMusic"
supportsACL: true
supportsSharedQueue: true
supportsExtendedMotion: true
sharedQueueVersion: 3
deviceUID: "19D22C47-75C3-4F31-9916-784457E0FB02"
managedConfigDeviceID: "58:d3:49:ec:4b:5f"
deviceClass: AppleTV
logicalDeviceCount: 1
isProxyGroupPlayer: false
groupUID: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
groupName: "Apple TV 4k"
isGroupLeader: true
isAirplayActive: true
systemPodcastApplication: "com.apple.podcasts"
enderDefaultGroupUID: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
airplayReceivers: "TVAirPlay"
clusterID: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
clusterLeaderID: "19D22C47-75C3-4F31-9916-784457E0FB02"
clusterType: 2
isClusterAware: true
modelID: "AppleTV11,1"
40: 0
41: "577E1BCA-2D9B-41C2-A8F8-C515CE8072D4"
42: "9976945E-2AAD-5461-BBF6-2C709A58BFEF"
43: "com.apple.TVBooks"
}
uniqueIdentifier: "E289F763-B991-4466-A7F9-3C6E33359562"
2022-02-16 13:38:30 DEBUG [pyatv.core.protocol]: Dispatching message with type 37 to <bound method MrpPower._update_power_state of <pyatv.protocols.mrp.MrpPower object at 0x74da2930>>
2022-02-16 13:38:30 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=2000bcf2f3af710522557e02606d2657fcf44526add295257993b0b22d8895cdfe24e4016aeec6799e60a1838688e9156f2b)
2022-02-16 13:38:30 DEBUG [pyatv.protocols.raop.raop]: Remote ports: control=58974, timing=0, server=51526
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'SET_PARAMETER rtsp://192.168.188.58/1165463236 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nContent-Type: text/parameters\r\nContent-Length: 13\r\nCSeq: 3\r\nDACP-ID: 76DE652B9747AB2C\r\nActive-Remote: 4137443516\r\nClient-Instance: 76DE652B9747AB2C\r\n\r\nvolume: -25.5'
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:30 GMT\r\nContent-Length: 0\r\nServer: AirTunes/605.1\r\nCSeq: 3\r\n\r\n'
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:30 GMT', 'content-length': '0', 'server': 'AirTunes/605.1', 'cseq': '3'}, body=''):
2022-02-16 13:38:30 DEBUG [pyatv.core.protocol]: Dispatching message with type UpdatedState.Volume to <bound method RaopAudio._volume_changed of <pyatv.protocols.raop.RaopAudio object at 0x74d86e30>>
2022-02-16 13:38:30 DEBUG [pyatv.protocols.raop]: Protocol RAOP changed volume to 15.000000
2022-02-16 13:38:30 DEBUG [pyatv.protocols.raop.raop]: Starting periodic sync task
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'SET_PARAMETER rtsp://192.168.188.58/1165463236 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nContent-Type: text/parameters\r\nContent-Length: 28\r\nCSeq: 4\r\nDACP-ID: 76DE652B9747AB2C\r\nActive-Remote: 4137443516\r\nClient-Instance: 76DE652B9747AB2C\r\n\r\nprogress: 66150/66150/242550'
2022-02-16 13:38:30 DEBUG [pyatv.protocols.raop.raop]: Sending sync packet (Frac=2800680960, RtpTime=66150, Sec=2208992603, SyncPacket=90d400070000000083aa8d5ba6ef000000010266)
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:30 GMT\r\nContent-Length: 0\r\nServer: AirTunes/605.1\r\nCSeq: 4\r\n\r\n'
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:30 GMT', 'content-length': '0', 'server': 'AirTunes/605.1', 'cseq': '4'}, body=''):
2022-02-16 13:38:30 DEBUG [pyatv.protocols.raop.raop]: Playing with metadata: AudioMetadata(title=None, artist=None, album=None, duration=4.2056875)
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'SET_PARAMETER rtsp://192.168.188.58/1165463236 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nContent-Type: application/x-dmap-tagged\r\nContent-Length: 8\r\nCSeq: 5\r\nDACP-ID: 76DE652B9747AB2C\r\nActive-Remote: 4137443516\r\nClient-Instance: 76DE652B9747AB2C\r\nSession: 1\r\nRTP-Info: seq=54069;rtptime=66150\r\n\r\nmlit\x00\x00\x00\x00'
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:30 GMT\r\nContent-Length: 0\r\nServer: AirTunes/605.1\r\nCSeq: 5\r\n\r\n'
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:30 GMT', 'content-length': '0', 'server': 'AirTunes/605.1', 'cseq': '5'}, body=''):
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'POST /feedback RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nCSeq: 6\r\nDACP-ID: 76DE652B9747AB2C\r\nActive-Remote: 4137443516\r\nClient-Instance: 76DE652B9747AB2C\r\n\r\n'
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:30 GMT\r\nContent-Length: 55\r\nContent-Type: application/x-apple-binary-plist\r\nServer: AirTunes/605.1\r\nCSeq: 6\r\n\r\nbplist00\xd1\x01\x02Wstreams\xa0\x08\x0b\x13\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14'
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:30 GMT', 'content-length': '55', 'content-type': 'application/x-apple-binary-plist', 'server': 'AirTunes/605.1', 'cseq': '6'}, body=b'bplist00\xd1\x01\x02Wstreams\xa0\x08\x0b\x13\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14'):
2022-02-16 13:38:30 DEBUG [pyatv.auth.hap_channel]: Received data (Data=20009595f8f19f5ad626a4e2429a213738ac941c093605292560e7db19f9bc11724c13e62b36188d53c28b1d12719cfc3786)
2022-02-16 13:38:30 DEBUG [pyatv.protocols.airplay.channels]: Not enough data on data channel (has 32, expects 570)
2022-02-16 13:38:30 DEBUG [pyatv.auth.hap_channel]: Received data (Data=1a0207c3f6bc07233af07b4e4f9f67be510412bafa69544272d2a55f31c2a43d44c263b967ecf5dd4ba1019cc27797d2d8a93db9e1d594d06cf34ca51b728a383c6d82bcb65adff7fe5badfa0289fda9cac231cde0f3247d1e7da8878073dec24299813ed7331d09b90e84746ffc2a55db8d3fe39600310726d34cd6fb0a5bc654b1cb48c8f73bab4f7bce12425c48791b775a79e346165f009adcb3fc03c59b553c6cba0bdcd4b44961002214562038b5be982ab4b82dea844fa2e782dbfe8754857c2bf670a50a3b8a21c8075e20eb705fcf6cdd13b3ea45382c840d3c36c934d0ee988351fe51a1c63e3d0e2ade787f73c01f1c503cf4f496884d46c64...)
2022-02-16 13:38:30 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
playbackQueue {
location: 0
contentItems {
identifier: "78AFD473-5429-428D-AB92-7B2FE073BF86"
metadata {
duration: 4.0
artworkAvailable: false
elapsedTime: 0.0
nowPlayingInfoData: "bplist00\324\001\002\003\004\005\006\007\nX$versionY$archiverT$topX$objects\022\000\001\206\240_\020\017NSKeyedArchive...
elapsedTimeTimestamp: 666707910.607335
}
}
}
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple TV 4k"
identifier: 1280262988
}
client {
processIdentifier: 202
bundleIdentifier: "com.apple.TVAirPlay"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
6: 0
}
}
}
uniqueIdentifier: "7C499864-2BC3-42BE-A005-775E4D23FE69"
2022-02-16 13:38:30 DEBUG [pyatv.core.protocol]: Dispatching message with type 4 to <bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:30 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=20003867624332bdbbe71ad435b188421bcf2cad683ce0218e2224e461d85f9362bee86cf3beaeb7a40567ebc993b923c24c)
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'RECORD rtsp://192.168.188.58/1165463236 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nCSeq: 7\r\nDACP-ID: 76DE652B9747AB2C\r\nActive-Remote: 4137443516\r\nClient-Instance: 76DE652B9747AB2C\r\nRange: npt=0-\r\nSession: 1\r\nRTP-Info: seq=54069;rtptime=66150\r\n\r\n'
2022-02-16 13:38:30 DEBUG [pyatv.protocols.raop.raop]: Starting keep-alive task
2022-02-16 13:38:30 DEBUG [pyatv.auth.hap_channel]: Received data (Data=200096a70f7a4bb4811fd2cd8f8c028284cb3e833d2799cd7e3bf0379ae4999f8fa6550fed72fb86c4440d40b04270db6a8b)
2022-02-16 13:38:30 DEBUG [pyatv.protocols.airplay.channels]: Not enough data on data channel (has 32, expects 573)
2022-02-16 13:38:30 DEBUG [pyatv.auth.hap_channel]: Received data (Data=1d026ed525f664cf15ec65334d72422530ae90a0499b2758a24372b667388a1558031b5cfe5d26bcef90da9b61e8378576ba68ac1d973a73b3791dc97df517670180625f1e2ade3ec29d031daf0dd2e8b146db7353e094a17ae16aad0f8b8136b5e3e2ca25f046851962aa8f5e2e5ded63994d876d4a47747550d7ce7980280cbd711cd339fb8f33ace8d5ebde7d3c80868d210d2996bbab197626692cf23c5b37246763f35222e211af9fb7800253153521bee4212a80dc9edae94bb70fc7b82882bdefb9b5f65a18bf79a440980c507d97d6742631cb67786e31f34808cf180407e2660e13557d38e21a9ba43f0c038927c061c1fcb861587bf2fc2c79c...)
2022-02-16 13:38:30 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_CONTENT_ITEM_MESSAGE
[updateContentItemMessage] {
contentItems {
identifier: "78AFD473-5429-428D-AB92-7B2FE073BF86"
metadata {
duration: 4.0
artworkAvailable: false
elapsedTime: 0.0
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\017NSKeyedArchiver\...
elapsedTimeTimestamp: 666707910.607335
legacyUniqueIdentifier: 0
}
}
playerPath {
origin {
displayName: "Apple TV 4k"
identifier: 1280262988
}
client {
processIdentifier: 202
bundleIdentifier: "com.apple.TVAirPlay"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
6: 0
}
}
}
uniqueIdentifier: "C329E2F3-1C5C-475E-BC44-47ADF886CA55"
2022-02-16 13:38:30 DEBUG [pyatv.core.protocol]: Dispatching message with type 56 to <bound method PlayerStateManager._handle_content_item_update of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:30 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=2000f335054a676e100c796b36e0610d6995173b36c3b2d32e2c637655d9d93d5b0f1baa6044aa7899a2886c50269d53810b)
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:30 GMT\r\nContent-Length: 0\r\nAudio-Latency: 0\r\nServer: AirTunes/605.1\r\nCSeq: 7\r\n\r\n'
2022-02-16 13:38:30 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:30 GMT', 'content-length': '0', 'audio-latency': '0', 'server': 'AirTunes/605.1', 'cseq': '7'}, body=''):
2022-02-16 13:38:31 DEBUG [pyatv.protocols.raop.raop]: Sending sync packet (Frac=2585198592, RtpTime=108038, Sec=2208992604, SyncPacket=80d400070000a3a083aa8d5c9a1700000001a606)
2022-02-16 13:38:31 DEBUG [pyatv.protocols.raop.raop]: Sent 44352 frames in 1.001229s (current frames: 44352, expected: 44155)
2022-02-16 13:38:31 DEBUG [pyatv.core.protocol]: Sending periodic heartbeat 0 (AirPlay:192.168.188.47)
2022-02-16 13:38:31 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'POST /feedback RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nCSeq: 3\r\nDACP-ID: F019BB198DC9F88\r\nActive-Remote: 169222516\r\nClient-Instance: F019BB198DC9F88\r\n\r\n'
2022-02-16 13:38:31 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:31 GMT\r\nContent-Length: 55\r\nContent-Type: application/x-apple-binary-plist\r\nServer: AirTunes/605.1\r\nCSeq: 3\r\n\r\nbplist00\xd1\x01\x02Wstreams\xa0\x08\x0b\x13\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14'
2022-02-16 13:38:31 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:31 GMT', 'content-length': '55', 'content-type': 'application/x-apple-binary-plist', 'server': 'AirTunes/605.1', 'cseq': '3'}, body=b'bplist00\xd1\x01\x02Wstreams\xa0\x08\x0b\x13\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14'):
2022-02-16 13:38:31 DEBUG [pyatv.core.protocol]: Got heartbeat 0 (AirPlay:192.168.188.47)
2022-02-16 13:38:31 DEBUG [pyatv.protocols.raop.raop]: Too slow to keep up for seqno 54214 (1.173333 vs 1.173612 => -0.000279)
2022-02-16 13:38:32 DEBUG [pyatv.protocols.raop.raop]: Sending sync packet (Frac=2609774592, RtpTime=152390, Sec=2208992605, SyncPacket=80d40007000150e083aa8d5d9b8e000000025346)
2022-02-16 13:38:32 DEBUG [pyatv.protocols.raop.raop]: Sent 44352 frames in 1.005873s (current frames: 88704, expected: 88514)
2022-02-16 13:38:33 DEBUG [pyatv.protocols.raop.raop]: Sending sync packet (Frac=2600009728, RtpTime=196390, Sec=2208992606, SyncPacket=80d400070001fcc083aa8d5e9af900000002ff26)
2022-02-16 13:38:33 DEBUG [pyatv.protocols.raop.raop]: Sent 44352 frames in 1.006068s (current frames: 133056, expected: 132881)
2022-02-16 13:38:33 DEBUG [pyatv.core.protocol]: Sending periodic heartbeat 1 (AirPlay:192.168.188.47)
2022-02-16 13:38:33 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'POST /feedback RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nCSeq: 4\r\nDACP-ID: F019BB198DC9F88\r\nActive-Remote: 169222516\r\nClient-Instance: F019BB198DC9F88\r\n\r\n'
2022-02-16 13:38:33 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:33 GMT\r\nContent-Length: 55\r\nContent-Type: application/x-apple-binary-plist\r\nServer: AirTunes/605.1\r\nCSeq: 4\r\n\r\nbplist00\xd1\x01\x02Wstreams\xa0\x08\x0b\x13\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14'
2022-02-16 13:38:33 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:33 GMT', 'content-length': '55', 'content-type': 'application/x-apple-binary-plist', 'server': 'AirTunes/605.1', 'cseq': '4'}, body=b'bplist00\xd1\x01\x02Wstreams\xa0\x08\x0b\x13\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14'):
2022-02-16 13:38:33 DEBUG [pyatv.core.protocol]: Got heartbeat 1 (AirPlay:192.168.188.47)
2022-02-16 13:38:34 DEBUG [pyatv.protocols.raop.raop]: Sending sync packet (Frac=2624585728, RtpTime=240742, Sec=2208992607, SyncPacket=80d400070002aa0083aa8d5f9c7000000003ac66)
2022-02-16 13:38:34 DEBUG [pyatv.protocols.raop.raop]: Sent 44352 frames in 1.005280s (current frames: 177408, expected: 177214)
2022-02-16 13:38:35 DEBUG [pyatv.protocols.raop.raop]: Sending sync packet (Frac=2649096192, RtpTime=285094, Sec=2208992608, SyncPacket=80d400070003574083aa8d609de60000000459a6)
2022-02-16 13:38:35 DEBUG [pyatv.protocols.raop.raop]: Sent 44352 frames in 1.005292s (current frames: 221760, expected: 221548)
2022-02-16 13:38:35 DEBUG [pyatv.core.protocol]: Sending periodic heartbeat 2 (AirPlay:192.168.188.47)
2022-02-16 13:38:35 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'POST /feedback RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nCSeq: 5\r\nDACP-ID: F019BB198DC9F88\r\nActive-Remote: 169222516\r\nClient-Instance: F019BB198DC9F88\r\n\r\n'
2022-02-16 13:38:35 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:35 GMT\r\nContent-Length: 55\r\nContent-Type: application/x-apple-binary-plist\r\nServer: AirTunes/605.1\r\nCSeq: 5\r\n\r\nbplist00\xd1\x01\x02Wstreams\xa0\x08\x0b\x13\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14'
2022-02-16 13:38:35 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:35 GMT', 'content-length': '55', 'content-type': 'application/x-apple-binary-plist', 'server': 'AirTunes/605.1', 'cseq': '5'}, body=b'bplist00\xd1\x01\x02Wstreams\xa0\x08\x0b\x13\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14'):
2022-02-16 13:38:35 DEBUG [pyatv.core.protocol]: Got heartbeat 2 (AirPlay:192.168.188.47)
2022-02-16 13:38:36 DEBUG [pyatv.protocols.raop.raop]: Audio finished sending in 5.707560s
2022-02-16 13:38:36 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'TEARDOWN rtsp://192.168.188.58/1165463236 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nCSeq: 8\r\nDACP-ID: 76DE652B9747AB2C\r\nActive-Remote: 4137443516\r\nClient-Instance: 76DE652B9747AB2C\r\nSession: 1\r\n\r\n'
2022-02-16 13:38:36 DEBUG [pyatv.auth.hap_channel]: Received data (Data=20008070992253ce4cd0203b163742efeefb7ee7b7230c5c1aa881b1127e3d340a7024ac5611a509ccede4ee591e3b6b8e20d500d07ea33152e220cd2f9e0b7eb69584852f6896bd4f129d1b54f0733ee844fdb9d28c9845e5f7125ea11779a4d30afe6c3d54d5e0c1ba0e6175a741c9ce145de9c65721d414f987898e85584d0818dfec7be8cab3464763d93e8c02b75c9f8aff7c069462b761001dd6d544e7caff73012398753540a5f30f35361d15be599cb0027caa40c7e7cfbcd62736fa46ace248c73c8bb56580d39b4056bb5b5ef8619ef16afc482818e48033bdf348cbbb2fc8c54ca8572ccb31fa8c9f314272222580c78f797d8d3d7de08e2a3...)
2022-02-16 13:38:36 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
playbackQueue {
location: 0
}
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple TV 4k"
identifier: 1280262988
}
client {
processIdentifier: 202
bundleIdentifier: "com.apple.TVAirPlay"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
6: 0
}
}
}
uniqueIdentifier: "14BB3D72-0DA1-457A-8BB9-354B6A99127B"
2022-02-16 13:38:36 DEBUG [pyatv.core.protocol]: Dispatching message with type 4 to <bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:36 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=2000ae86856058030ead12e5396bb25f34d926e80120cb9a3d38fda5f4ff24b29df663950030bc783c59303c5685c51370a1)
2022-02-16 13:38:36 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Wed, 16 Feb 2022 12:38:36 GMT\r\nContent-Length: 0\r\nServer: AirTunes/605.1\r\nCSeq: 8\r\n\r\n'
2022-02-16 13:38:36 DEBUG [pyatv.auth.hap_channel]: Received data (Data=20004d92b4bcffeb4d75528b63c79f3a687c95042afc314239ebe87eb93e55fef43f160cd691f3f534a925eceefb2271f970)
2022-02-16 13:38:36 DEBUG [pyatv.protocols.airplay.channels]: Not enough data on data channel (has 32, expects 6530)
2022-02-16 13:38:36 DEBUG [pyatv.auth.hap_channel]: Received data (Data=621943af8c9d5718c0e6f8c58dc74c8677f04f2c3c113d07745857b5add97c434471dad4d038862f6b352c056e5ad51fc4e893ca90e999875af83b92b8f324001d5a82564582e46c1b2f8220d203add424818d44aea04d16d4a1d5b6fb56a69e1bf9de25299d2a52c497dd933dded2c5593600e57b1e669df0c6152267d8527f52134aff32fe2b5b71ba479957fb13596003fe504fab4bbe9adeefb650d5617f0797172c19603deafc84d3fe9857185a847cf41fa107240a62db7028ad94c44f76f945695a97b9ac3de15c9ce81ec7a8e51199bd2986ab6e7cce1d595321bae5e7bb74e685c873aeee539d128549c6586ceb2a9a57c6ddb8ee18608cf0d06...)
2022-02-16 13:38:36 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Wed, 16 Feb 2022 12:38:36 GMT', 'content-length': '0', 'server': 'AirTunes/605.1', 'cseq': '8'}, body=''):
2022-02-16 13:38:36 DEBUG [pyatv.auth.hap_channel]: Received data (Data=3fdaabd47e7063a9ddb9fb3edbde49fbe1d5665cd87068707a54394fd15810cac6f2c9c4a941e3b4f254ff88f6f297cf72602fcf56d537a5d146ebf6e90ef2bee43cd13e6058ae5b1d0ef39133ebdc47fade8edc266291ed9b783b126d2022ad31aa450c0150fc7621d3def0beb37b1e3ee23bff5f34701b81f358f4dd22a7b458dbd9585bd1a2455c681255b045fd5bdc4df695a4468e4eee740e9d58cbf6a05c128d79ac19d0d0c9bd94346b457e6090bf50f23ddd7f7d73e897554778293ccd971b35189c046f423975aadf98c3070e0d8467289375d186c1c08458b2e001ba1bd7542287b2f35b1cb0d10f0688f72106774dad1bbe32d71b0d2920737...)
2022-02-16 13:38:36 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_NOW_PLAYING_CLIENT_MESSAGE
[setNowPlayingClientMessage] {
client {
processIdentifier: 4468
bundleIdentifier: "com.apple.TVMusic"
}
}
uniqueIdentifier: "9985BE68-DB2D-4D0C-8A94-BFC0F689E1E2"
2022-02-16 13:38:36 DEBUG [pyatv.core.protocol]: Dispatching message with type 46 to <bound method PlayerStateManager._handle_set_now_playing_client of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:36 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_DEFAULT_SUPPORTED_COMMANDS_MESSAGE
[setDefaultSupportedCommandsMessage] {
supportedCommands {
supportedCommands {
command: Play
enabled: true
}
supportedCommands {
command: PrepareForSetQueue
enabled: true
}
supportedCommands {
command: SetPlaybackQueue
enabled: true
supportedPlaybackQueueTypes: 7
supportedPlaybackQueueTypes: 3
supportedPlaybackQueueTypes: 6
supportedPlaybackQueueTypes: 2
supportedPlaybackQueueTypes: 5
supportedPlaybackQueueTypes: 1
supportedPlaybackQueueTypes: 8
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.radio"
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.tracklist"
supportedCustomQueueIdentifiers: "com.apple.MediaPlaybackCore.playbackContextArchive-v1.opack"
supportedCustomQueueIdentifiers: "com.apple.mediaplayer.playbackcontext"
}
supportedCommands {
command: SetPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:4683722"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:4683722"
}
supportedCommands {
command: PreloadedPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:4683722"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:4683722"
}
}
displayID: "com.apple.TVMusic"
playbackQueueCapabilities {
}
playerPath {
client {
bundleIdentifier: "com.apple.TVMusic"
}
}
}
uniqueIdentifier: "F9A32B0B-CD65-436F-8687-E173FFA997E4"
2022-02-16 13:38:36 DEBUG [pyatv.core.protocol]: Dispatching message with type 72 to <bound method PlayerStateManager._handle_set_default_supported_commands of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:36 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_DEFAULT_SUPPORTED_COMMANDS_MESSAGE
[setDefaultSupportedCommandsMessage] {
supportedCommands {
supportedCommands {
command: Play
enabled: true
}
supportedCommands {
command: SetPlaybackQueue
enabled: true
supportedPlaybackQueueTypes: 3
supportedPlaybackQueueTypes: 6
supportedPlaybackQueueTypes: 2
supportedPlaybackQueueTypes: 5
supportedPlaybackQueueTypes: 1
}
supportedCommands {
command: SetPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.podcasts.MTPlaybackQueueController.GenericQueue"
currentPlaybackSessionTypes: "com.apple.podcasts.MTPlaybackQueueController.GenericQueue"
}
}
displayID: "com.apple.podcasts"
playbackQueueCapabilities {
}
playerPath {
client {
bundleIdentifier: "com.apple.podcasts"
}
}
}
uniqueIdentifier: "3109967F-EA29-4025-A7B9-3F4057ED1394"
2022-02-16 13:38:36 DEBUG [pyatv.core.protocol]: Dispatching message with type 72 to <bound method PlayerStateManager._handle_set_default_supported_commands of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:36 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: ORIGIN_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "31D45703-B521-45FC-A444-F6A4B2DD1291"
[originClientPropertiesMessage] {
lastPlayingTimestamp: 666697727.231658
}
2022-02-16 13:38:36 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_NOW_PLAYING_CLIENT_MESSAGE
[setNowPlayingClientMessage] {
client {
processIdentifier: 4468
bundleIdentifier: "com.apple.TVMusic"
}
}
uniqueIdentifier: "6BD43FEB-A675-4D89-9CAF-6B20DDDF9A54"
2022-02-16 13:38:36 DEBUG [pyatv.core.protocol]: Dispatching message with type 46 to <bound method PlayerStateManager._handle_set_now_playing_client of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:36 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_CLIENT_MESSAGE
[updateClientMessage] {
client {
processIdentifier: 4468
bundleIdentifier: "com.apple.TVMusic"
processUserIdentifier: 501
displayName: "Music"
}
}
uniqueIdentifier: "D263C7DB-A5FB-49EE-94AE-A0E2B1F351BA"
2022-02-16 13:38:36 DEBUG [pyatv.core.protocol]: Dispatching message with type 55 to <bound method PlayerStateManager._handle_update_client of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:36 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_NOW_PLAYING_PLAYER_MESSAGE
[setNowPlayingPlayerMessage] {
playerPath {
origin {
displayName: "Apple TV 4k"
identifier: 1280262988
}
client {
processIdentifier: 4468
bundleIdentifier: "com.apple.TVMusic"
}
player {
identifier: "Music"
displayName: "Music"
6: 0
}
}
}
uniqueIdentifier: "A847B20C-D7A4-404C-8AC2-020F3ABADAD0"
2022-02-16 13:38:36 DEBUG [pyatv.core.protocol]: Dispatching message with type 47 to <bound method PlayerStateManager._handle_set_now_playing_player of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:36 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
supportedCommands {
supportedCommands {
command: Play
enabled: true
}
supportedCommands {
command: Pause
enabled: true
}
supportedCommands {
command: Stop
enabled: true
}
supportedCommands {
command: TogglePlayPause
enabled: true
}
supportedCommands {
command: NextTrack
enabled: true
}
supportedCommands {
command: PreviousTrack
enabled: true
}
supportedCommands {
command: PlayItemInPlaybackQueue
enabled: true
}
supportedCommands {
command: SetPlaybackQueue
enabled: true
supportedPlaybackQueueTypes: 7
supportedPlaybackQueueTypes: 3
supportedPlaybackQueueTypes: 6
supportedPlaybackQueueTypes: 2
supportedPlaybackQueueTypes: 5
supportedPlaybackQueueTypes: 1
supportedPlaybackQueueTypes: 8
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.sharedlistening"
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.radio"
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.tracklist"
supportedCustomQueueIdentifiers: "com.apple.MediaPlaybackCore.playbackContextArchive-v1.opack"
supportedCustomQueueIdentifiers: "com.apple.mediaplayer.playbackcontext"
}
supportedCommands {
command: SetPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:4683722"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:4683722"
currentPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:4683722"
currentPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:storeFront:143441"
playbackSessionIdentifier: "ECB42B3E-AB0B-42A8-A015-070C3E291DDD"
}
supportedCommands {
command: PrepareForSetQueue
enabled: true
}
supportedCommands {
command: InsertIntoPlaybackQueue
enabled: true
supportedPlaybackQueueTypes: 7
supportedPlaybackQueueTypes: 3
supportedPlaybackQueueTypes: 6
supportedPlaybackQueueTypes: 2
supportedPlaybackQueueTypes: 5
supportedPlaybackQueueTypes: 1
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.tracklist"
supportedCustomQueueIdentifiers: "com.apple.music.playbackqueue.radio"
supportedCustomQueueIdentifiers: "com.apple.mediaplayer.playbackcontext"
supportedInsertionPositions: 0
supportedInsertionPositions: 3
}
supportedCommands {
enabled: true
1: 25010
}
supportedCommands {
command: SkipForward
preferredIntervals: 30.0
}
supportedCommands {
command: SkipBackward
preferredIntervals: 30.0
}
supportedCommands {
command: LikeTrack
enabled: true
active: false
localizedShortTitle: "Like"
presentationStyle: 2
}
supportedCommands {
command: DislikeTrack
enabled: true
active: false
localizedShortTitle: "Never Play"
presentationStyle: 2
}
supportedCommands {
command: SeekToPlaybackPosition
enabled: true
canScrub: 1
}
supportedCommands {
command: CreateRadioStation
enabled: true
}
supportedCommands {
command: ChangeQueueEndAction
enabled: true
currentQueueEndAction: AutoPlay
supportedEndQueueActions: Reset
supportedEndQueueActions: AutoPlay
}
supportedCommands {
command: ReorderPlaybackQueue
enabled: true
}
supportedCommands {
command: RemoveFromPlaybackQueue
enabled: true
}
supportedCommands {
enabled: true
1: 25001
}
supportedCommands {
command: PreloadedPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:4683722"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:4683722"
}
supportedCommands {
command: ChangePlaybackRate
}
}
playbackQueue {
location: 0
contentItems {
identifier: "EeeXewwH8\342\210\206Xw6HnHFFp"
metadata {
title: "That Time of Year"
isPlayable: true
albumName: "Olaf\'s Frozen Adventure (Original Soundtrack)"
trackArtistName: "Josh Gad, Idina Menzel, Kristen Bell & Cast - Olaf\'s Frozen Adventure"
duration: 183.228
artworkAvailable: true
lyricsAvailable: true
editingStyleFlags: 3
artworkMIMEType: "image/jpeg"
elapsedTime: 45.046143838
genre: "Soundtrack"
isAlwaysLive: false
playbackRate: 0.0
radioStationName: "Shiny Station"
radioStationString: "ra.cp-1440639398"
iTunesStoreIdentifier: 1440633922
iTunesStoreSubscriptionIdentifier: 1440633922
iTunesStoreArtistIdentifier: 284749120
iTunesStoreAlbumIdentifier: 1440633323
defaultPlaybackRate: 1.0
mediaType: Audio
mediaSubType: Music
userInfoData: "bplist00\324\001\002\003\004\005\006\007\nX$versionY$archiverT$topX$objects\022\000\001\206\240_\020\017NSKeyedArchiver\321\...
artworkURL: "https://is4-ssl.mzstatic.com/image/thumb/Music125/v4/82/5b/3a/825b3ac5-1114-f33d-3720-0238d1cb5d03/17UM1IM29099.rgb.jpg/1200x1...
deviceSpecificUserInfoData: "bplist00\324\001\002\003\004\005\006\007\nX$versionY$archiverT$topX$objects\022\000\001\206\240_\020\017NSKeye...
collectionInfoData: "bplist00\324\001\002\003\004\005\006\007\nX$versionY$archiverT$topX$objects\022\000\001\206\240_\020\017NSKeyedArchive...
elapsedTimeTimestamp: 666697727.235718
inferredTimestamp: 666690809.95772
artworkIdentifier: "https://is4-ssl.mzstatic.com/image/thumb/Music125/v4/82/5b/3a/825b3ac5-1114-f33d-3720-0238d1cb5d03/17UM1IM29099.rgb.jpg...
isLoading: false
artworkURLTemplatesData: "bplist00\324\001\002\003\004\005\006\007\nX$versionY$archiverT$topX$objects\022\000\001\206\240_\020\017NSKeyedAr...
legacyUniqueIdentifier: 1440633922
albumYear: "0"
songTraits: Lossless
preferredFormat {
tier: HighQualityStereo
bitrate: 0
sampleRate: 44100
bitDepth: 24
codec: 1634492771
spatialized: false
multiChannel: false
channelLayout: 6619138
audioChannelLayoutDescription: "Stereo"
groupID: "audio-alac-stereo-44100-24"
stableVariantID: "3123a5fedbbf54a2c7070787664eaa0fbfb930cc5e6529d573fd9f9c6f3c26da"
}
activeFormat {
tier: HighQualityStereo
bitrate: 0
sampleRate: 44100
bitDepth: 24
codec: 1634492771
spatialized: false
multiChannel: false
channelLayout: 6619138
audioChannelLayoutDescription: "Stereo"
groupID: "audio-alac-stereo-44100-24"
stableVariantID: "3123a5fedbbf54a2c7070787664eaa0fbfb930cc5e6529d573fd9f9c6f3c26da"
}
activeFormatJustification: UserPreference
formatTierPreference: Lossless
audioRoute {
name: "Apple TV 4k"
supportsSpatialization: true
1: 9
4: 1
}
alternativeFormats {
tier: HighQualityStereo
bitrate: 0
sampleRate: 44100
bitDepth: 24
codec: 1634492771
spatialized: false
multiChannel: false
channelLayout: 6619138
audioChannelLayoutDescription: "Stereo"
groupID: "audio-alac-stereo-44100-24"
stableVariantID: "3123a5fedbbf54a2c7070787664eaa0fbfb930cc5e6529d573fd9f9c6f3c26da"
}
alternativeFormats {
tier: LowBandwidthStereo
bitrate: 256000
sampleRate: 0
bitDepth: 0
codec: 1633772320
spatialized: false
multiChannel: false
channelLayout: 6619138
audioChannelLayoutDescription: "Stereo"
groupID: "audio-stereo-256"
stableVariantID: "7ced4006a04fd16f6f69c70655ff3d5bff14c44c2bbbaf0b6d3509fb08b72685"
}
alternativeFormats {
bitrate: 128000
sampleRate: 0
bitDepth: 0
codec: 1633772320
spatialized: false
multiChannel: false
channelLayout: 6619138
audioChannelLayoutDescription: "Stereo"
groupID: "audio-stereo-128"
stableVariantID: "76000aba729ec5b0695870deeeb89c3485a483dcc8e0ba75b88c763919d01db8"
1: 0
}
alternativeFormats {
bitrate: 64000
sampleRate: 0
bitDepth: 0
codec: 1633772392
spatialized: false
multiChannel: false
channelLayout: 6619138
audioChannelLayoutDescription: "Stereo"
groupID: "audio-HE-stereo-64"
stableVariantID: "33c34e20af0085c9d0d2f7f7ab2a6801120133d90ecd0cee0a3473409430cc55"
1: 0
}
99: 1
}
}
queueIdentifier: "ECB42B3E-AB0B-42A8-A015-070C3E291DDD"
}
displayName: "Music"
playbackState: Paused
playbackQueueCapabilities {
requestByRange: true
requestByIdentifiers: true
}
playerPath {
origin {
displayName: "Apple TV 4k"
identifier: 1280262988
}
client {
processIdentifier: 4468
bundleIdentifier: "com.apple.TVMusic"
}
player {
identifier: "Music"
displayName: "Music"
6: 0
}
}
playbackStateTimestamp: 666697727.220342
}
uniqueIdentifier: "06AB303C-FF03-4192-B2E0-4D5940AE6071"
2022-02-16 13:38:36 DEBUG [pyatv.core.protocol]: Dispatching message with type 4 to <bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x74da28b0>>
2022-02-16 13:38:36 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "859DB74B-A13E-4689-B48C-07A96E7DBBAD"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple TV 4k"
identifier: 1280262988
5: 1
}
client {
processIdentifier: 4468
bundleIdentifier: "com.apple.TVMusic"
processUserIdentifier: 501
displayName: "Music"
}
player {
identifier: "Music"
displayName: "Music"
6: 0
}
}
lastPlayingTimestamp: 666697727.221059
}
2022-02-16 13:38:36 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=2000347d84c6362896bb2c19a0cb82d1cc572bfb29169191eeb6e2efcd3645529d35e2e0af0017e8cb4df1b94ff5e12273ce)
2022-02-16 13:38:36 DEBUG [pyatv.protocols.mrp.player_state]: Active client is now com.apple.TVMusic
2022-02-16 13:38:36 DEBUG [pyatv.protocols.mrp.player_state]: Active client is now com.apple.TVMusic
2022-02-16 13:38:36 DEBUG [pyatv.protocols.mrp.player_state]: Active player is now Music (Music)
2022-02-16 13:38:36 DEBUG [pyatv.auth.hap_channel]: Received data (Data=0004f8eca4fa3780f05093dbdd250fe8d134af15843f9ed26cba01783f30898b807cc88dd657497e1d1bc638b881c6c3a90fdae5d11ea19f18a4f4ce8c994fa0d9c2b2827d2c6f85658d9bc375b981bc458f321cc6eabfd3800f3f7ac78f167a691aaf87bd678b387802ee2b8435f75ce0c701ab53481a759f05b9f4f4862285717df2cbf6976f1856a6473588881f793ff39de4e829667ec4cbe4070358e3fecfeb50f167a70c94df3d7f39aa7126d644b2da769e00834e58ce5541d8af320045dd32158732e7e333b614b33e7ede1b032b70b6f8a7b063e916fd4c7928682c8019de3efe66b42c66b26a643e2085e4694f88f7d6ffcdc6c6db7cfee2a1d...)
2022-02-16 13:38:36 DEBUG [pyatv.protocols.airplay.channels]: Got message on event channel: HttpRequest(method='POST', path='/command', protocol='RTSP', version='1.0', headers={'cseq': '3', 'content-length': '1477', 'content-type': 'application/x-apple-binary-plist'}, body=b'bplist00\xd2\x01\x02\x03\x04TtypeUvalueZupdateInfo\xdf\x10\x18\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f&\'#)*+,-.&0123;#=>?@ASpsiRvv_\x10\x14playbackCapabilities_\x10\x15canRecordScreenStream[statusFlags_\x10\x18keepAliveSendStatsAsBodyTname_\x10\x0fprotocolVersion_\x10\x11volumeControlType]senderAddressXdeviceIDRpi^screenDemoMode]initialVolumeZfeaturesExZtxtAirPlay_\x10\x10supportedFormats]sourceVersion_\x10\x16hasUDPMirroringSupportUmodelRpkZmacAddress_\x10\x15receiverHDRCapabilityXfeatures_\x10$19D22C47-75C3-4F31-9916-784457E0FB02\x10\x02\xd3 !"###_\x10\x15supportsInterstitials_\x10\x15supportsFPSSecureStop_\x10\x1dsupportsUIForAudioOnlyContent\t\t\t\x08\x12\x00\x01\x86D\t[Apple TV 4kS1.1\x10\x04_\x10\x14192.168.188.58:34134_\x10\x1158:D3:49:EC:4B:5F_\x10$a649af48-73d4-4984-a020-0563f7d1bf8e\x08#\xc09\x80\x00\x00\x00\x00\x00\\1d9/St5/FbwIO\x11\x01\xd3\x05acl=0\x18btaddr=58:D3:49:EE:21:F0\x1adeviceid=58:D3:49:EC:4B:5F\x10fex=1d9/St5/FbwI\x1efeatures=0x4A7FDFD5,0xBC157FDE\rflags=0x18644(gid=9976945E-2AAD-5461-BBF6-2C709A58BFEF\x05igl=1\x06gcgl=1\x0fgpn=Apple TV 4k\x07psgsz=3\x07psgtp=1*psgid=9976945E-2AAD-5461-BBF6-2C709A58BFEF\x05pgm=0\x11model=AppleTV11,1\rprotovers=1.1\'pi=a649af48-73d4-4984-a020-0563f7d1bf8e(psi=19D22C47-75C3-4F31-9916-784457E0FB02Cpk=2eb0b3c36d1fd5b80328eff5365b0a858510a15e9c1e710feb392da7d1140d8e\rsrcvers=605.1\x0bosvers=15.3\x04vv=2\xd44567899:_\x10\x15lowLatencyAudioStream\\screenStream[audioStream\\bufferStream\x10\x00\x12\x01D\x08\x00\x12\x00\xe0\x00\x00U605.1\t[AppleTV11,1O\x10 .\xb0\xb3\xc3m\x1f\xd5\xb8\x03(\xef\xf56[\n\x85\x85\x10\xa1^\x9c\x1eq\x0f\xeb9-\xa7\xd1\x14\r\x8e_\x10\x1158:D3:49:EC:4B:5FT4k60\x13\xbc\x15\x7f\xdeJ\x7f\xdf\xd5\x00\x08\x00\r\x00\x12\x00\x18\x00#\x00V\x00Z\x00]\x00t\x00\x8c\x00\x98\x00\xb3\x00\xb8\x00\xca\x00\xde\x00\xec\x00\xf5\x00\xf8\x01\x07\x01\x15\x01 \x01+\x01>\x01L\x01e\x01k\x01n\x01y\x01\x91\x01\x9a\x01\xc1\x01\xc3\x01\xca\x01\xe2\x01\xfa\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02#\x02$\x020\x024\x026\x02M\x02a\x02\x88\x02\x89\x02\x92\x02\x9f\x04v\x04\x7f\x04\x97\x04\xa4\x04\xb0\x04\xbd\x04\xbf\x04\xc4\x04\xc9\x04\xcf\x04\xd0\x04\xdc\x04\xff\x05\x13\x05\x18\x00\x00\x00\x00\x00\x00\x02\x01\x00\x00\x00\x00\x00\x00\x00B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05!')
2022-02-16 13:38:36 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=4f008a25f01676c0da923983140a207d1d420483e106f357618ef645b30399eea7b408f1fe9efbb8b48ad9cbb8078f40f155eb729b01a241d40dab600970525baa2702191c54e644de56737e1e5842f50e84bafd7b48786171849d35a49a50bb89)
2022-02-16 13:38:36 DEBUG [pyatv.core.facade]: Release (<class 'pyatv.interface.Audio'>, <class 'pyatv.interface.Metadata'>, <class 'pyatv.interface.PushUpdater'>, <class 'pyatv.interface.RemoteControl'>) by Protocol.RAOP
2022-02-16 13:38:36 DEBUG [pyatv.protocols.airplay.mrp_connection]: Closing connection
2022-02-16 13:38:36 DEBUG [pyatv.scripts.atvremote]: Waiting for 1 remaining tasks
2022-02-16 13:38:36 DEBUG [pyatv.protocols.raop.raop]: Audio connection lost (None)
2022-02-16 13:38:36 DEBUG [pyatv.protocols.raop.raop]: Feedback task finished
2022-02-16 13:38:36 DEBUG [pyatv.protocols.raop.raop]: Periodic sync task ended
2022-02-16 13:38:36 DEBUG [pyatv.protocols.raop.raop]: Control connection lost (None)
2022-02-16 13:38:36 DEBUG [pyatv.protocols.airplay.mrp_connection]: Disconnected from device: None
2022-02-16 13:38:36 DEBUG [pyatv.scripts.atvremote]: Connection was closed properly
2022-02-16 13:38:36 DEBUG [pyatv.core.protocol]: Stopping heartbeat loop at 4 (AirPlay:192.168.188.47)
2022-02-16 13:38:36 DEBUG [pyatv.support.http]: Connection closed
2022-02-16 13:38:36 DEBUG [pyatv.auth.hap_channel]: Connection was lost to remote
In a further test I am able to use play_url
so perhaps this is restricted to stream_file
If you use play_url
it breaks stuff in tvOS unfortunately (it's a bug that Apple doesn't seem to fix). Try restarting your Apple TV and try stream_file
again.
I have made a lot of improvements when it comes to streaming, so I suggest that you re-pair RAOP (you need new credentials) and try again. I hope it will work better. Support for play_url
is in the works.