postlund / pyatv

A client library for Apple TV and AirPlay devices
https://pyatv.dev
MIT License
876 stars 95 forks source link

iOS15, what a mess #1371

Closed oculist37 closed 2 years ago

oculist37 commented 2 years ago

Describe the bug

Hi,

Unfortunately an automatic update throws me to iOS15, whereas everything worked like a charm before with iOS14.

I understood how to pair with airplay and credentials.

But my problems are : the command sent to the Apple TV is like it was on hold. For instance, when I send "menu", it sends a "long menu", thus it sends me to the home page and not to the menu page just before. When, I am at the home page, the menu command makes jiggling the icon. Also, before I could send several commands in the same line, for example : right, select, right. Now it doesn't accept this anymore. It seems to work with compulsory adding a delay (it's a minor problem)

I don't know if I'm doing something wrong or if it's a known issue.

Thanks for your help !

Error log

<place log here>

How to reproduce the bug?

atvremote --id xx:xx:06:B4:xx:60 --airplay-credentials xxxx menu

What is expected behavior?

just going to the menu above and not the home page

Operating System

MacOS

Python

3.8

pyatv

0.9.2

Device

Apple TV 4K iOS15

Additional context

non

postlund commented 2 years ago

That doesn't sound normal. Please include some logs and I'll take a look.

oculist37 commented 2 years ago

Here is all the result with debug mode for the command menu :

Is it what you need ?

2021-10-05 16:25:51 DEBUG [pyatv.support.net]: Binding on *:5353 2021-10-05 16:25:51 DEBUG [pyatv.support.net]: Binding on 127.0.0.1:0 2021-10-05 16:25:51 DEBUG [pyatv.support.net]: Binding on 192.168.0.101:0 2021-10-05 16:25:51 DEBUG [pyatv.support.net]: Binding on 192.168.1.2:0 2021-10-05 16:25:51 DEBUG [pyatv.core.scan]: Auto-discovered Bureau at 192.168.1.7:49152 via Protocol.Companion ({'rpmac': '1', 'rphn': '460d93d8ddc5', 'rpfl': '0x36782', 'rpha': '2e36375375bc', 'rpmd': 'AppleTV6,2', 'rpvr': '300.66', 'rpad': 'cfddb4bc7b49', 'rphi': '83e7629d5ec3', 'rpba': '32:E3:EB:79:49:DC', 'rpmrtid': 'C163EDB5-E40C-4424-B5A5-22D7C377FBB3'}) 2021-10-05 16:25:51 DEBUG [pyatv.core.scan]: Auto-discovered Bureau at 192.168.1.7:7000 via Protocol.AirPlay ({'acl': '0', 'btaddr': '50:DE:06:B3:6C:65', 'deviceid': '50:DE:06:B4:5F:60', 'fex': '1d9/St5fFbwI', 'features': '0x4A7FDFD5,0xBC155FDE', 'flags': '0x18644', 'gid': '2A0D91D8-7AAC-4A25-82A7-5D4F28689B91', 'igl': '1', 'gcgl': '1', 'model': 'AppleTV6,2', 'protovers': '1.1', 'pi': '10b258a5-db72-4c38-8501-dd4cf0693c4a', 'psi': 'C163EDB5-E40C-4424-B5A5-22D7C377FBB3', 'pk': '0555ecfd07c2aa37c536160d1b36b2f4ccf3802f90b7b0c858a2aa2e8880e221', 'srcvers': '566.25.43', 'osvers': '15.0', 'vv': '2'}) 2021-10-05 16:25:51 DEBUG [pyatv.core.scan]: Auto-discovered @. at 192.168.1.7:7000 via Protocol.RAOP ({'cn': '0,1,2,3', 'da': 'true', 'et': '0,3,5', 'ft': '0x4A7FDFD5,0xBC155FDE', 'sf': '0x18644', 'md': '0,1,2', 'am': 'AppleTV6,2', 'pk': '0555ecfd07c2aa37c536160d1b36b2f4ccf3802f90b7b0c858a2aa2e8880e221', 'tp': 'UDP', 'vn': '65537', 'vs': '566.25.43', 'ov': '15.0', 'vv': '2'}) 2021-10-05 16:25:51 INFO [pyatv.scripts.atvremote]: Auto-discovered Bureau at 192.168.1.7 2021-10-05 16:25:51 DEBUG [pyatv.core.facade]: Adding handler for protocol Protocol.AirPlay 2021-10-05 16:25:51 DEBUG [pyatv.protocols.airplay]: Remote control channel is supported 2021-10-05 16:25:51 DEBUG [pyatv.core.facade]: Adding handler for protocol Protocol.MRP 2021-10-05 16:25:51 DEBUG [pyatv.core.facade]: Adding handler for protocol Protocol.MRP 2021-10-05 16:25:51 DEBUG [pyatv.core.facade]: Adding handler for protocol Protocol.RAOP 2021-10-05 16:25:51 DEBUG [pyatv.core.facade]: Connecting to protocol: Protocol.AirPlay 2021-10-05 16:25:51 DEBUG [pyatv.core.facade]: Connecting to protocol: Protocol.MRP 2021-10-05 16:25:51 DEBUG [pyatv.protocols.airplay.remote_control]: Setting up remote control connection to 192.168.1.7:7000 2021-10-05 16:25:51 DEBUG [pyatv.support.http]: Connected to 192.168.1.7 2021-10-05 16:25:51 DEBUG [pyatv.protocols.airplay.auth]: Setting up new AirPlay Pair-Verify procedure with type AuthenticationType.HAP 2021-10-05 16:25:51 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 \x86\xc0p\x01\xb9\xfc:\xb5\xb4o\xd4\x8f\x84\x86\xd4\xd2s\xce\xd0\xfd,\xdfB F\xa1\xba|So0' 2021-10-05 16:25:51 DEBUG [pyatv.support.http]: Received: b'HTTP/1.1 200 OK\r\nDate: Tue, 05 Oct 2021 14:25:51 GMT\r\nContent-Length: 159\r\nContent-Type: application/octet-stream\r\nServer: AirTunes/566.25.43\r\n\r\n\x05x6G\xabbu>\xc7\xc4/\xab\xdbhG+\x03>\rJ\xac\xa8ZVL\x04\x9b\xb7\x17\xfd\xdd0\x10\xe3\xee\x1f\xd8\x0c\x19&<\xad\xa1\xebO\xcf\xe4u\x9aN\xb0\xd1\x1f\xdd\x0c\x0f\xdd \x9f\xf1t/$)\xd0X\x90\x0f\xbbP\re\x81Y\x19n\xee\xddg\x94G qZ,\xbc\xb8\xb8V\x99Jc\x1bg\xef\xde\x05V\xbdQ[\x16D\x801\xe4\xec\xbf\xe759E\x0f\xbb\xed\x8d\xc0\xaf\x8b\xc6\x06\x01\x02\x03 \xca\xa3\xb4C\x8f\x04\x91\x19\xd3\x12\xb2\xb4"g]\x96\xd5\x16\x7f\x19\x8b\xe1~\xb7\xe2\xcd)k\xd0\x9bhD' 2021-10-05 16:25:51 DEBUG [pyatv.support.http]: Got HTTP response: HttpResponse(protocol='HTTP', version='1.1', code=200, message='OK', headers={'date': 'Tue, 05 Oct 2021 14:25:51 GMT', 'content-length': '159', 'content-type': 'application/octet-stream', 'server': 'AirTunes/566.25.43'}, body=b'\x05x6G\xabbu>\xc7\xc4/\xab\xdbhG+\x03>\rJ\xac\xa8ZVL\x04\x9b\xb7\x17\xfd\xdd0\x10\xe3\xee\x1f\xd8\x0c\x19&<\xad\xa1\xebO\xcf\xe4u\x9aN\xb0\xd1\x1f\xdd\x0c\x0f\xdd \x9f\xf1t/$)\xd0X\x90\x0f\xbbP\re\x81Y\x19n\xee\xddg\x94G qZ,\xbc\xb8\xb8V\x99Jc\x1bg\xef\xde\x05V\xbdQ[\x16D\x801\xe4\xec\xbf\xe759E\x0f\xbb\xed\x8d\xc0\xaf\x8b\xc6\x06\x01\x02\x03 \xca\xa3\xb4C\x8f\x04\x91\x19\xd3\x12\xb2\xb4"g]\x96\xd5\x16\x7f\x19\x8b\xe1~\xb7\xe2\xcd)k\xd0\x9bhD'): 2021-10-05 16:25:51 DEBUG [pyatv.protocols.airplay.auth.hap]: Device (Encrypted=3647ab62753ec7c42fabdb68472b033e0d4aaca85a564c049bb717fddd3010e3ee1fd80c19263cada1eb4fcfe4759a4eb0d11fdd0c0fdd209ff1742f2429d058900fbb500d658159196eeedd675f944720715a2cbcb8b856994a631b67efde0556bd515b164480315fe4ecbfe73539450fbbed8dc0af8bc6, Public=068117305f4e88d77436580db78c7c150d3beebc4037476f36b7a4f6abd1a8db) 2021-10-05 16:25:51 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\xdd\xb4\x1f\x7f\xbe\xbfc\xc4\xb2#J#\x06\xdb\xc4\x17\x00\xd1\x80\x0bC\xd4L\x06u{y\xabX\x82z\x88\xaf?dt\x15\x8e\x9d@\xef\xd2!\xb1\xf8\x1dy\xb5\x90\x87\x88;\x07N\x85\x99\x05x\xcbe\x8cp\xf2Xv\xf3\x93\xcc k\x07\x95\x921\xda\x10>\x92|\xfd\xec6\xf9\x08\xe0l\xd8!\xaf=\xd8\xb7\xa2\xabnxv\x0b\xe5K\xb7\xc4\x8e+W\x11/\tM\xe6p\xce\xd1S\x81-\xd11' 2021-10-05 16:25:51 DEBUG [pyatv.support.http]: Received: b'HTTP/1.1 200 OK\r\nDate: Tue, 05 Oct 2021 14:25:51 GMT\r\nContent-Length: 3\r\nContent-Type: application/octet-stream\r\nServer: AirTunes/566.25.43\r\n\r\n\x06\x01\x04' 2021-10-05 16:25:51 DEBUG [pyatv.support.http]: Got HTTP response: HttpResponse(protocol='HTTP', version='1.1', code=200, message='OK', headers={'date': 'Tue, 05 Oct 2021 14:25:51 GMT', 'content-length': '3', 'content-type': 'application/octet-stream', 'server': 'AirTunes/566.25.43'}, body=b'\x06\x01\x04'): 2021-10-05 16:25:51 DEBUG [pyatv.auth.hapsrp]: Keys (Input=e6d24831ecc5baae833ac5ee134f2a02254f6e33afae79d1797a7727a1d9b501, Output=60cb89898da49b50aa71f4f62ddcc06788249e03348ab3815ee3f3a02f3aa6aa) 2021-10-05 16:25:51 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'SETUP rtsp://192.168.1.2/328918920 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nContent-Length: 367\r\nCSeq: 0\r\nDACP-ID: 407210AD2089C2C6\r\nActive-Remote: 816502637\r\nClient-Instance: 407210AD2089C2C6\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$EA7F3B7A-227F-4D27-93D6-5484CC570AB8V550.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!' 2021-10-05 16:25:51 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Tue, 05 Oct 2021 14:25:51 GMT\r\nContent-Length: 59\r\nContent-Type: application/x-apple-binary-plist\r\nServer: AirTunes/566.25.43\r\nCSeq: 0\r\n\r\nbplist00\xd1\x01\x02YeventPort\x11\xc0\xab\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' 2021-10-05 16:25:51 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Tue, 05 Oct 2021 14:25:51 GMT', 'content-length': '59', 'content-type': 'application/x-apple-binary-plist', 'server': 'AirTunes/566.25.43', 'cseq': '0'}, body=b'bplist00\xd1\x01\x02YeventPort\x11\xc0\xab\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'): 2021-10-05 16:25:51 DEBUG [pyatv.auth.hap_srp]: Keys (Input=e8abb1e2488a010af0c29a2b9bb88c3f139a7ff1bda9f591c2b08c07b8e38b18, Output=aabdd061427f3f4fa562347d8c75641ebfb3c3b4433f805fa1f07a8e7b482585) 2021-10-05 16:25:51 DEBUG [pyatv.auth.hap_channel]: Connected to 192.168.1.7:49323 2021-10-05 16:25:51 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'RECORD rtsp://192.168.1.2/328918920 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nCSeq: 1\r\nDACP-ID: 407210AD2089C2C6\r\nActive-Remote: 816502637\r\nClient-Instance: 407210AD2089C2C6\r\n\r\n' 2021-10-05 16:25:51 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Tue, 05 Oct 2021 14:25:51 GMT\r\nContent-Length: 0\r\nAudio-Latency: 0\r\nServer: AirTunes/566.25.43\r\nCSeq: 1\r\n\r\n' 2021-10-05 16:25:51 DEBUG [pyatv.auth.hap_channel]: Received data (Data=00048841d1b722110d17b4d72b19e24ef9902118300a3204953fc67c1ec9a29c173ad2a6b1ba486d7d03cbf3d1d1157d9496367aaaf2a04cd1d4377a6c46b4fca47152e0c9321ffab632fa5faa2a06faaf6a22b419d1b245e5d2a2721bbbdd9516317d4c9eaa68815ac6bf57f145ceb6a62063ce0a1eb550cb880dc56fcff7571cd3386e25f54f9d90c61e5c4692d2f8d46722d1e4acbf2d0ca42fe31c28c8d793412a2bf0a7dd73a17d6773139c8196db3a9ff9abfe55aafd9c69def3eaf987d0a999a9e9451f908bc1d4a086e073435e792a0320c9a1172a083672603cfcd8577c6bc6db142d0172070ba5f7905033bc08fb1786a0a65d024b2136e02be...) 2021-10-05 16:25:51 DEBUG [pyatv.protocols.airplay.channels]: Not enough data to parse request on event channel 2021-10-05 16:25:51 DEBUG [pyatv.auth.hap_channel]: Received data (Data=db01b70b8f36c154d4fd842ce22b51e2778e5b42282f1421212ba594a9236c00d4c29b57e3465d037d9e8bb7b78ca90c92721f63e7b745220117ad7b06eb64ad301d1dfedf325ca3a0d94f35c4a5f1febb23c3fbfcdb79fa9ff116a4b66272fce934aa2431a52863ee5603627e204152b46741c860c43701d4f7374f8b6327f44063a765cf181a52a75758a2cf0aa887bc6e075040c646657db8ac7ff20a6b6ae748bf8732713ccaeed8645d945f9ca666b822510e825b583d04880ef6b508bbb4f136776c380065351fadfdfe1ad5e869b6080982ba970ad63f2206b99d2e1c5fae8d200dd6cbab7c145ccc38f3adad2f915bcca094177697fb75f8f4167...) 2021-10-05 16:25:51 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': '1394', 'content-type': 'application/x-apple-binary-plist'}, **@.**\x10\x14playbackCapabilities\x10\x15canRecordScreenStream[statusFlags\x10\x18keepAliveSendStatsAsBodyTname\x10\x0fprotocolVersion\x10\x11volumeControlType]senderAddressXdeviceIDRpi^screenDemoMode]initialVolumeZfeaturesExZtxtAirPlay\x10\x10supportedFormats]sourceVersion\x10\x16hasUDPMirroringSupportUmodelRpkZmacAddress\x10\x15receiverHDRCapabilityXfeatures\x10$C163EDB5-E40C-4424-B5A5-22D7C377FBB3\x10\x02\xd3 !"###\x10\x15supportsInterstitials\x10\x15supportsFPSSecureStop\x10\x1dsupportsUIForAudioOnlyContent\t\t\t\x08\x12\x00\x01\x86D\tVBureauS1.1\x10\x04\x10\x11192.168.1.2:51515\x10\x1150:DE:06:B4:5F:60\x10$10b258a5-db72-4c38-8501-dd4cf0693c4a\x08#\x00\x00\x00\x00\x00\x00\x00\x00\1d9/St5fFbwIO\x11\x01\x85\x05acl=0\x18btaddr=50:DE:06:B3:6C:65\x1adeviceid=50:DE:06:B4:5F:60\x10fex=1d9/St5fFbwI\x1efeatures=0x4A7FDFD5,0xBC155FDE\rflags=0x18644(gid=2A0D91D8-7AAC-4A25-82A7-5D4F28689B91\x05igl=1\x06gcgl=1\x10model=AppleTV6,2\rprotovers=1.1\'pi=10b258a5-db72-4c38-8501-dd4cf0693c4a(psi=C163EDB5-E40C-4424-B5A5-22D7C377FBB3Cpk=0555ecfd07c2aa37c536160d1b36b2f4ccf3802f90b7b0c858a2aa2e8880e221\x11srcvers=566.25.43\x0bosvers=15.0\x04vv=2\xd44567899:\x10\x15lowLatencyAudioStream\screenStream[audioStream\bufferStream\x10\x00\x12\x01D\x08\x00\x12\x00\xe0\x00\x00Y566.25.43\tZAppleTV6,2O\x10 \x05U\xec\xfd\x07\xc2\xaa7\xc56\x16\r\x1b6\xb2\xf4\xcc\xf3\x80/\x90\xb7\xb0\xc8X\xa2\xaa.\x88\x80\xe2!\x10\x1150:DE:06:AE:9F:36T4k30\x13\xbc\x15\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$\x02+\x02/\x021\x02E\x02Y\x02\x80\x02\x81\x02\x8a\x02\x97\x04 \x04)\x04A\x04N\x04Z\x04g\x04i\x04n\x04s\x04}\x04~\x04\x89\x04\xac\x04\xc0\x04\xc5\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\x04\xce') 2021-10-05 16:25:51 DEBUG [pyatv.auth.hapchannel]: Sending data (Encrypted=4f00f94060364f35a97b7c2c437316ba9ccd4514cb35d5a6efd76483f4ad78b397e6a1ee32f41c60c0c6469a9bf448b30e7cf91106d43b66618adc7d69b7898eb3fb2cc8bfcde4161f463e6f824e871b9c0a88f877a5d0c765ffed36a468cb12e7) 2021-10-05 16:25:51 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Tue, 05 Oct 2021 14:25:51 GMT', 'content-length': '0', 'audio-latency': '0', 'server': 'AirTunes/566.25.43', 'cseq': '1'}, body=''): 2021-10-05 16:25:51 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'SETUP rtsp://192.168.1.2/328918920 RTSP/1.0\r\nUser-Agent: AirPlay/540.31\r\nContent-Length: 298\r\nCSeq: 2\r\nDACP-ID: 407210AD2089C2C6\r\nActive-Remote: 816502637\r\nClient-Instance: 407210AD2089C2C6\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$3C21B8BE-6BEE-4E02-9C36-33C822920C77\x10$1910A70F-DBC0-4242-AF95-115DB30604E1_\x10$D4559100-3FE8-4A8F-AB16-01872575CE31\x10\x02\x13T\x1a7?\\\x0e\x97\x10\x82\t\x08\x0b\x13\x15$.=HTY^u\x9c\xc3\xea\xec\xf5\xf7\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8' 2021-10-05 16:25:52 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Tue, 05 Oct 2021 14:25:51 GMT\r\nContent-Length: 100\r\nContent-Type: application/x-apple-binary-plist\r\nServer: AirTunes/566.25.43\r\nCSeq: 2\r\n\r\nbplist00\xd1\x01\x02Wstreams\xa1\x03\xd3\x04\x05\x06\x07\x08\tTtypeXstreamIDXdataPort\x10\x82\x10\x01\x11\xc0\xac\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:' 2021-10-05 16:25:52 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'date': 'Tue, 05 Oct 2021 14:25:51 GMT', 'content-length': '100', 'content-type': 'application/x-apple-binary-plist', 'server': 'AirTunes/566.25.43', 'cseq': '2'}, body=b'bplist00\xd1\x01\x02Wstreams\xa1\x03\xd3\x04\x05\x06\x07\x08\tTtypeXstreamIDXdataPort\x10\x82\x10\x01\x11\xc0\xac\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:'): 2021-10-05 16:25:52 DEBUG [pyatv.auth.hap_srp]: Keys (Input=b408d5d2287fbb7a31ab1c3616880ecde87770124ac781db6ec91aa6e426e696, Output=72416c28a140ac7a02cbe5da706d2cd23669df32b0547198de29f5f66d011d7b) 2021-10-05 16:25:52 DEBUG [pyatv.auth.hap_channel]: Connected to 192.168.1.7:49324 2021-10-05 16:25:52 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=3c01ac9dd48238134103f64b9b784efdbd5af4e0a4522130994bcce13bdc1c67e0c1123e873774b4baeb4e8c33479dba9a5128c64045b35a8b351865428f8a0d0dc9aea76af9525fd808fe0ca18998b7266b8a4413d05ecefdae873b8bc353067def52d03161be8b52b6b4f9e499cb29434dd77ada1034921d850c73879271827e57a9f8fab669ccf6949123a33ad28a3c85d52bc67fd16b480a55aff9ec21951471dbc3378af09444ad368521d0996ba45adf9ed888b9b06075222d019e5e4546cf5bcb4e8518ed0479ec9af8622ec2e75dc3133eb8089e308aa95de02336ecd7645fec13c41c39f62e1322a636010475f2fb5c2d85d341b149872613e79...) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: >> Send: Protobuf: type: DEVICE_INFO_MESSAGE identifier: "FF16D1F0-D87B-4EF4-98AB-D20B475F829A" errorCode: NoError [deviceInfoMessage] { uniqueIdentifier: "bcab96b4-4234-4e01-8c2c-af0a468d5059" 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: "89BBF803-C68A-49E8-AE1B-6AF270139337" 2021-10-05 16:25:52 DEBUG [pyatv.core.protocol]: Starting heartbeat loop (AirPlay:192.168.1.7) 2021-10-05 16:25:52 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2000f717560f4f3887260455ffc7e55de52b0ea1d4f9e5a929651f5e2ad406ecba7606c47f464c3b8a8bb9b0305d8cbef7a12a00c2c9c70931faca78ec29ab8b59097aba6271029d4d494b245bc2473dbaee4eb8b4764d7d781939ee74267c50f3d2b5cd12fd6cb098a1b1b7a3eb) 2021-10-05 16:25:52 DEBUG [pyatv.auth.hap_channel]: Received data (Data=20002846d0b1e39cf38064394f311a57bb71d8d93e2b60183138115fa690af23ba85999f7faff8ab4cd69b9a08e08f7c37ff4b02ca048a39ff6a71c1cc2faa56de514ae914d529c38e94279a7b327e51db4e368079ab98e739c7886f49bf554a08a95560de53ab2ca935204ab29080fe2f992d3ad6b6a27c7eb45d0251553be2c9a670bd5908821c137b34b838f7ebca755944b006d4ecd36ab4c1cd0a8f603ab863c0b26e9f913ac0c226dd143b12d8f9b8c78169593ad28488b1f3a438a2fa1c7c93c9d54f5746fb99334b610b73a3f481bd8c1d786845f9f373a96822a98daa6cbd2acca12ef69d44284d5970a24a8499f3985aec571eb13f9146039b9...) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: DEVICE_INFO_MESSAGE identifier: "FF16D1F0-D87B-4EF4-98AB-D20B475F829A" [deviceInfoMessage] { uniqueIdentifier: "C163EDB5-E40C-4424-B5A5-22D7C377FBB3" name: "Bureau" localizedModelName: "Apple\302\240TV" systemBuildVersion: "19J346" applicationBundleIdentifier: "com.apple.mediaremoted" protocolVersion: 1 lastSupportedMessageType: 111 supportsSystemPairing: true allowsPairing: true systemMediaApplication: "com.apple.TVMusic" supportsACL: true supportsSharedQueue: true supportsExtendedMotion: true sharedQueueVersion: 3 deviceUID: "C163EDB5-E40C-4424-B5A5-22D7C377FBB3" managedConfigDeviceID: "50:de:06:b4:5f:60" deviceClass: AppleTV logicalDeviceCount: 1 isProxyGroupPlayer: false groupUID: "2A0D91D8-7AAC-4A25-82A7-5D4F28689B91" isGroupLeader: true isAirplayActive: false systemPodcastApplication: "com.apple.podcasts" enderDefaultGroupUID: "2A0D91D8-7AAC-4A25-82A7-5D4F28689B91" airplayReceivers: "TVAirPlay" clusterType: 0 isClusterAware: true modelID: "AppleTV6,2" 40: 0 41: "577E1BCA-2D9B-41C2-A8F8-C515CE8072D4" 42: "2A0D91D8-7AAC-4A25-82A7-5D4F28689B91" 43: "com.apple.TVBooks" } uniqueIdentifier: "7B0E4D30-856C-48F5-8F2D-69AE65CB6D74" 2021-10-05 16:25:52 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=20007e8e89a26fdaa1ee11e3a8a7758dcbe35cdc78a3ae18e042502b277f2f79addc29292ace3123afe5a92b7b3c6d4d9454) 2021-10-05 16:25:52 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=930082669e5bf3571db2e505f174ff9c079bd60690c0072653037a8b36795b8018eb692aebcbea161a952673ca3c604e380e7a8b74680454eea3cd4417a4a580aa9b9cdbfadfa38ba3008a396b133993f3f5ea53fbe8543258bbf89a1df70bc0cdb64430399e4f8fb7a1fa46b2e8d7c9f116a71251c52b8c8e42cbbd2267408c49385e2e3b8649a4c848fc915a818520f49be8504c51444a402d75cfdab1999320c63d3222) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: >> Send: Protobuf: type: SET_CONNECTION_STATE_MESSAGE errorCode: NoError [setConnectionStateMessage] { state: Connected } uniqueIdentifier: "65809C55-CA5A-4087-AA9E-70DF23548747" 2021-10-05 16:25:52 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=c100e3409e096570a1c3c2c78498a070a9bfb5e7fc9a90490c0445f77415c4ddc55ecc005a56fb4ef3931faee7b6f02662b13d5e992698655c4bfeafc31fdc3210b5f1bfc0f2c7aa922ba459fb4f354f71907eaba1bd0c47b5d70d1cdfa8585e3a2af6f7d4f0943ce84ed59be2ddf9dce27545e111e12ad44c1f55b49ee55e00770abe304b52dda458d13999e4f6a16e63ea52f4776fab592bf5bf19581b336aab5212c0dc9d2635497a9c16938cc566bf2ed63d63849c7ee4fc9cf25826dcd088ab96ad5ba4370299725a4616164f233f7e28) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: >> Send: Protobuf: type: CLIENT_UPDATES_CONFIG_MESSAGE identifier: "D0E641D7-D654-4733-AF38-C64073993E89" errorCode: NoError [clientUpdatesConfigMessage] { artworkUpdates: true nowPlayingUpdates: false volumeUpdates: true keyboardUpdates: true outputDeviceUpdates: true } uniqueIdentifier: "8DA6A260-BB6D-49E6-AAE9-31C46D74E2A9" 2021-10-05 16:25:52 DEBUG [pyatv.auth.hap_channel]: Received data (Data=20001d5530c47cac186015c2c0d96f64d80c28f364715a528e8a0d29a272a2e1323e6213d3cb93f4efdcef48011fa0663b642a00e2af22da71ad2da5abf344737fe4d21d5a68b87c7734adf2dc4f255593c102c9205f3ec9e64e5a404e54c9dd02838fd4caa861f67ef3dbb1b1e62000b5598310bf1ebb5e7f315b42550e0e043d6e8ed0347ae8698e55fcdd83fb5e51c390bcf997b00321cffb129bf561a9c32a00732033c55a615eb2168ec4003f3d48c8f4306f39a79d4f261132028788f659769e790e72aaa1aa4e55c7ea916c84bd4820c0b8dc2b372a834198) 2021-10-05 16:25:52 DEBUG [pyatv.auth.hap_channel]: Received data (Data=200036715a26afbab0e23027888cecf0b3e2974ec23c00b99cc4f6df4c9a22e55430be70d7d99e14d8da90256fad8bc50197) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.channels]: Not enough data on data channel (has 32, expects 11339) 2021-10-05 16:25:52 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2b2cf6a3f8721d653cde44780d3231201f638de2b8d39a1ded082594360365b46b668ad370ef6816a3828f6447346d2aaf44f557bd36090cbc1fbeea8e9358a21d9342747445324b14cf171a1c6652b7d6ed40a6fcdd2ef307ca437de37d58f43c9e93cb7f82ed0c330c9f33551e0cbee44e87542a24e227e1f349e9475c409bd7f7625ccd3a5a8ad7cd6257fad0022730824ba82c31ffdfa924a777dbf797e884ce8c71f2cb74bc825e8746d0dd6d19f4d73a26be4ef4d584812d61587a6bf614d539bede5f3437b8cc86320dc6b99352c6d704175c932700326176b5e46d7630966279469c21b1c65dae372d16ef0705f849fe98d00f12de5471355509d...) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_OUTPUT_DEVICEMESSAGE [updateOutputDeviceMessage] { outputDevices { name: "Bureau" uniqueIdentifier: "C163EDB5-E40C-4424-B5A5-22D7C377FBB3" canAccessRemoteAssets: false isRemoteControllable: false isGroupLeader: false isGroupable: true deviceType: Wired deviceSubType: HDMI 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: false canAccessiCloudMusicLibrary: false groupContainsGroupLeader: false supportsBufferedAirPlay: false canPlayEncryptedProgressiveDownloadAssets: true canFetchMediaDataFromSender: true resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets: true isAirPlayReceiverSessionActive: false parentGroupContainsDiscoverableLeader: false isAddedToHomeKit: false volumeCapabilities: 0 supportsHAP: false usingJSONProtocol: false clusterType: 0 primaryUID: "C163EDB5-E40C-4424-B5A5-22D7C377FBB3" configuredClusterSize: 0 producesLowFidelityAudio: false 45: 0 47: "AVOutputDeviceBluetoothListeningModeNormal" 48: 0 50: -1 52: 1 } clusterAwareOutputDevices { name: "Bureau" uniqueIdentifier: "C163EDB5-E40C-4424-B5A5-22D7C377FBB3" canAccessRemoteAssets: false isRemoteControllable: false isGroupLeader: false isGroupable: true deviceType: Wired deviceSubType: HDMI 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: false canAccessiCloudMusicLibrary: false groupContainsGroupLeader: false supportsBufferedAirPlay: false canPlayEncryptedProgressiveDownloadAssets: true canFetchMediaDataFromSender: true resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets: true isAirPlayReceiverSessionActive: false parentGroupContainsDiscoverableLeader: false isAddedToHomeKit: false volumeCapabilities: 0 supportsHAP: false usingJSONProtocol: false clusterType: 0 primaryUID: "C163EDB5-E40C-4424-B5A5-22D7C377FBB3" configuredClusterSize: 0 producesLowFidelityAudio: false 45: 0 47: "AVOutputDeviceBluetoothListeningModeNormal" 48: 0 50: -1 52: 1 } } uniqueIdentifier: "63D8460A-FEBE-4A35-B1D4-28FE9E784FB7" 2021-10-05 16:25:52 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:9a2ca5c" supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:9a2ca5c" supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:d04fab7" supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:d04fab7" } supportedCommands { command: PreloadedPlaybackSession enabled: true supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:9a2ca5c" supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:9a2ca5c" supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:d04fab7" supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:d04fab7" } } displayID: "com.apple.TVMusic" playbackQueueCapabilities { } playerPath { client { bundleIdentifier: "com.apple.TVMusic" } } } uniqueIdentifier: "066DB353-973A-448F-8E4E-63D244505365" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 72 (SetDefaultSupportedCommandsMessage) to Listener(func=<bound method PlayerStateManager._handle_set_default_supported_commands of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 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: "687876B0-FC31-4952-B765-7B37D543F2E9" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 72 (SetDefaultSupportedCommandsMessage) to Listener(func=<bound method PlayerStateManager._handle_set_default_supported_commands of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: ORIGIN_CLIENT_PROPERTIES_MESSAGE uniqueIdentifier: "2B17990A-0FE4-4854-A235-60FC977BEDE3" [originClientPropertiesMessage] { lastPlayingTimestamp: 655128416.099721 } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_CLIENT_MESSAGE [updateClientMessage] { client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" processUserIdentifier: 501 displayName: "Ordinateurs" } } uniqueIdentifier: "4A5CDFB9-703B-4B62-A888-AC96C5AF6F1D" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 55 (UpdateClientMessage) to Listener(func=<bound method PlayerStateManager._handle_update_client of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE [setStateMessage] { playbackQueue { location: 0 contentItems { identifier: "2790E536-6EBF-470A-AFD3-FEB369668E93" metadata { title: "AS_3_JH_HEVC" albumName: "" albumArtistName: "" editingStyleFlags: 3 } } } displayName: "Ordinateurs" playbackState: Paused playbackQueueCapabilities { requestByRange: true requestByIdentifiers: true } playerPath { origin { displayName: "Bureau" identifier: 1280262988 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" } player { identifier: "MediaRemote-DefaultPlayer" displayName: "Default Player" 6: 0 } } playbackStateTimestamp: 654696277.729826 } uniqueIdentifier: "C5BB097D-B13B-4990-AB64-80E2D2B681CD" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE uniqueIdentifier: "A424C288-031D-4C35-B982-B114332E356A" [playerClientPropertiesMessage] { playerPath { origin { displayName: "Bureau" identifier: 1280262988 5: 1 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" processUserIdentifier: 501 displayName: "Ordinateurs" } player { identifier: "MediaRemote-DefaultPlayer" displayName: "Default Player" 6: 0 } } lastPlayingTimestamp: -63114076800.0 } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE [setStateMessage] { displayName: "Ordinateurs" playbackState: Paused playbackQueueCapabilities { } playerPath { origin { displayName: "Bureau" identifier: 1280262988 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" } player { identifier: "avkit-FCA654D9-6076-41E9-ADEE-5F45D2FA4886" displayName: "player-1" 6: 0 } } playbackStateTimestamp: 654704221.729043 } uniqueIdentifier: "C985CF10-488D-409D-A005-E2955CB34DBC" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE uniqueIdentifier: "C7871AFE-4E9D-4C2E-A5B5-88D9D2089153" [playerClientPropertiesMessage] { playerPath { origin { displayName: "Bureau" identifier: 1280262988 5: 1 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" processUserIdentifier: 501 displayName: "Ordinateurs" } player { identifier: "avkit-FCA654D9-6076-41E9-ADEE-5F45D2FA4886" displayName: "player-1" 5: 1024 6: 0 } } lastPlayingTimestamp: -63114076800.0 } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE uniqueIdentifier: "F3AEB506-3C84-447E-A62F-A6B0300C538E" 62 { 1 { 1 { 2: "Bureau" 3: 1280262988 } 2 { 1: 6202 2: "com.apple.TVHomeSharing" } 3 { 1: "avkit-FCA654D9-6076-41E9-ADEE-5F45D2FA4886" 2: "player-1" 5: 1024 6: 0 } } } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE [setStateMessage] { displayName: "Ordinateurs" playbackState: Paused playbackQueueCapabilities { } playerPath { origin { displayName: "Bureau" identifier: 1280262988 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" } player { identifier: "avkit-0A052F94-EDF4-42D7-B2B6-EDE6A987616D" displayName: "player-2" 6: 0 } } playbackStateTimestamp: 654713377.835201 } uniqueIdentifier: "077AAEBB-D756-4F97-8EAF-8ED21AE0D365" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE uniqueIdentifier: "758AE085-4847-4D95-B026-F849A9BD95C9" [playerClientPropertiesMessage] { playerPath { origin { displayName: "Bureau" identifier: 1280262988 5: 1 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" processUserIdentifier: 501 displayName: "Ordinateurs" } player { identifier: "avkit-0A052F94-EDF4-42D7-B2B6-EDE6A987616D" displayName: "player-2" 5: 1030 6: 0 } } lastPlayingTimestamp: -63114076800.0 } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE uniqueIdentifier: "D9041C4B-016F-436F-B33E-F14A22F1DCE5" 62 { 1 { 1 { 2: "Bureau" 3: 1280262988 } 2 { 1: 6202 2: "com.apple.TVHomeSharing" } 3 { 1: "avkit-0A052F94-EDF4-42D7-B2B6-EDE6A987616D" 2: "player-2" 5: 1030 6: 0 } } } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE [setStateMessage] { displayName: "Ordinateurs" playbackState: Paused playbackQueueCapabilities { } playerPath { origin { displayName: "Bureau" identifier: 1280262988 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" } player { identifier: "avkit-2B4093B5-5DFC-4227-9A6A-6C9023843F63" displayName: "player-3" 6: 0 } } playbackStateTimestamp: 654772948.211676 } uniqueIdentifier: "D7164D82-290B-43C5-A800-780E13E42113" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE uniqueIdentifier: "558B8C88-E9E5-4D74-98B8-DB6B0E2A903B" [playerClientPropertiesMessage] { playerPath { origin { displayName: "Bureau" identifier: 1280262988 5: 1 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" processUserIdentifier: 501 displayName: "Ordinateurs" } player { identifier: "avkit-2B4093B5-5DFC-4227-9A6A-6C9023843F63" displayName: "player-3" 5: 1033 6: 0 } } lastPlayingTimestamp: -63114076800.0 } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE uniqueIdentifier: "4CFC3F51-B28E-4837-A4E4-240F7003150C" 62 { 1 { 1 { 2: "Bureau" 3: 1280262988 } 2 { 1: 6202 2: "com.apple.TVHomeSharing" } 3 { 1: "avkit-2B4093B5-5DFC-4227-9A6A-6C9023843F63" 2: "player-3" 5: 1033 6: 0 } } } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE [setStateMessage] { displayName: "Ordinateurs" playbackState: Paused playbackQueueCapabilities { } playerPath { origin { displayName: "Bureau" identifier: 1280262988 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" } player { identifier: "avkit-CC308A8B-F5EF-4A36-B0DB-B123FDC2736A" displayName: "player-4" 6: 0 } } playbackStateTimestamp: 654780967.733337 } uniqueIdentifier: "9B863C14-CF47-4174-BB58-8960BC9950DE" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE uniqueIdentifier: "48A626E1-C868-45E2-B003-353AB1055E6D" [playerClientPropertiesMessage] { playerPath { origin { displayName: "Bureau" identifier: 1280262988 5: 1 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" processUserIdentifier: 501 displayName: "Ordinateurs" } player { identifier: "avkit-CC308A8B-F5EF-4A36-B0DB-B123FDC2736A" displayName: "player-4" 5: 1039 6: 0 } } lastPlayingTimestamp: -63114076800.0 } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE uniqueIdentifier: "444A550E-F37A-4E30-8160-4F31F9217F20" 62 { 1 { 1 { 2: "Bureau" 3: 1280262988 } 2 { 1: 6202 2: "com.apple.TVHomeSharing" } 3 { 1: "avkit-CC308A8B-F5EF-4A36-B0DB-B123FDC2736A" 2: "player-4" 5: 1039 6: 0 } } } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE [setStateMessage] { displayName: "Ordinateurs" playbackState: Paused playbackQueueCapabilities { } playerPath { origin { displayName: "Bureau" identifier: 1280262988 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" } player { identifier: "avkit-32C00E5D-3F6D-4E39-838E-AD4383EA032B" displayName: "player-5" 6: 0 } } playbackStateTimestamp: 654790571.463889 } uniqueIdentifier: "A8DEB8BA-4CA0-4207-B07C-27329DA1EDFD" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE uniqueIdentifier: "DABC8C23-7CE8-4F2C-85FA-AA51A3B4A86D" [playerClientPropertiesMessage] { playerPath { origin { displayName: "Bureau" identifier: 1280262988 5: 1 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" processUserIdentifier: 501 displayName: "Ordinateurs" } player { identifier: "avkit-32C00E5D-3F6D-4E39-838E-AD4383EA032B" displayName: "player-5" 5: 1045 6: 0 } } lastPlayingTimestamp: -63114076800.0 } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE uniqueIdentifier: "0C0CD315-A471-48FF-9378-47C2C27148AB" 62 { 1 { 1 { 2: "Bureau" 3: 1280262988 } 2 { 1: 6202 2: "com.apple.TVHomeSharing" } 3 { 1: "avkit-32C00E5D-3F6D-4E39-838E-AD4383EA032B" 2: "player-5" 5: 1045 6: 0 } } } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE [setStateMessage] { displayName: "Ordinateurs" playbackState: Paused playbackQueueCapabilities { } playerPath { origin { displayName: "Bureau" identifier: 1280262988 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" } player { identifier: "avkit-9130CC31-CC4C-4FC8-8020-CF4B269D85AC" displayName: "player-6" 6: 0 } } playbackStateTimestamp: 655031880.599034 } uniqueIdentifier: "EDF9172E-8E26-45AB-A166-D48601E1CF40" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE uniqueIdentifier: "08F4AD8A-9C85-4EBE-8E43-FD312BD4F150" [playerClientPropertiesMessage] { playerPath { origin { displayName: "Bureau" identifier: 1280262988 5: 1 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" processUserIdentifier: 501 displayName: "Ordinateurs" } player { identifier: "avkit-9130CC31-CC4C-4FC8-8020-CF4B269D85AC" displayName: "player-6" 5: 1054 6: 0 } } lastPlayingTimestamp: -63114076800.0 } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE uniqueIdentifier: "9224ADEC-2B38-450D-AFB7-34BC40BCD014" 62 { 1 { 1 { 2: "Bureau" 3: 1280262988 } 2 { 1: 6202 2: "com.apple.TVHomeSharing" } 3 { 1: "avkit-9130CC31-CC4C-4FC8-8020-CF4B269D85AC" 2: "player-6" 5: 1054 6: 0 } } } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE [setStateMessage] { displayName: "Ordinateurs" playbackState: Paused playbackQueueCapabilities { } playerPath { origin { displayName: "Bureau" identifier: 1280262988 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" } player { identifier: "avkit-EDE6AC6D-EDF9-483B-9A4F-D684B674F418" displayName: "player-7" 6: 0 } } playbackStateTimestamp: 655041998.486903 } uniqueIdentifier: "D272BF8B-0F66-4B56-A0CA-C281ADF944EE" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE uniqueIdentifier: "4505B146-8F9D-4CDA-8208-8DAB63D1802B" [playerClientPropertiesMessage] { playerPath { origin { displayName: "Bureau" identifier: 1280262988 5: 1 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" processUserIdentifier: 501 displayName: "Ordinateurs" } player { identifier: "avkit-EDE6AC6D-EDF9-483B-9A4F-D684B674F418" displayName: "player-7" 5: 1063 6: 0 } } lastPlayingTimestamp: -63114076800.0 } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE uniqueIdentifier: "FF056AA5-9AC9-430E-8B3E-9237F0587F9A" 62 { 1 { 1 { 2: "Bureau" 3: 1280262988 } 2 { 1: 6202 2: "com.apple.TVHomeSharing" } 3 { 1: "avkit-EDE6AC6D-EDF9-483B-9A4F-D684B674F418" 2: "player-7" 5: 1063 6: 0 } } } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE [setStateMessage] { displayName: "Ordinateurs" playbackState: Paused playbackQueueCapabilities { } playerPath { origin { displayName: "Bureau" identifier: 1280262988 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" } player { identifier: "avkit-B5D23254-55E3-473D-8DD7-4250753A588B" displayName: "player-8" 6: 0 } } playbackStateTimestamp: 655050008.004339 } uniqueIdentifier: "5ED8171A-251E-4000-B245-3BA4FB43D34A" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE uniqueIdentifier: "2A4CACBB-9635-413C-8C1F-79DD2A79D8EE" [playerClientPropertiesMessage] { playerPath { origin { displayName: "Bureau" identifier: 1280262988 5: 1 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" processUserIdentifier: 501 displayName: "Ordinateurs" } player { identifier: "avkit-B5D23254-55E3-473D-8DD7-4250753A588B" displayName: "player-8" 5: 1072 6: 0 } } lastPlayingTimestamp: -63114076800.0 } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE uniqueIdentifier: "58CA6CB7-64C3-43BF-BD42-5E98595B3C89" 62 { 1 { 1 { 2: "Bureau" 3: 1280262988 } 2 { 1: 6202 2: "com.apple.TVHomeSharing" } 3 { 1: "avkit-B5D23254-55E3-473D-8DD7-4250753A588B" 2: "player-8" 5: 1072 6: 0 } } } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE [setStateMessage] { displayName: "Ordinateurs" playbackState: Paused playbackQueueCapabilities { } playerPath { origin { displayName: "Bureau" identifier: 1280262988 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" } player { identifier: "avkit-21B19E07-7CEF-45E5-A2A8-D0E551D45D9C" displayName: "player-9" 6: 0 } } playbackStateTimestamp: 655111728.520639 } uniqueIdentifier: "C243D921-36FF-47EA-B55A-EBE08E86DEC3" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE uniqueIdentifier: "069F97E3-EE3B-4679-93A1-570865D8978E" [playerClientPropertiesMessage] { playerPath { origin { displayName: "Bureau" identifier: 1280262988 5: 1 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" processUserIdentifier: 501 displayName: "Ordinateurs" } player { identifier: "avkit-21B19E07-7CEF-45E5-A2A8-D0E551D45D9C" displayName: "player-9" 5: 1093 6: 0 } } lastPlayingTimestamp: -63114076800.0 } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE uniqueIdentifier: "45B149A0-9800-4C16-81A5-DB85768D707F" 62 { 1 { 1 { 2: "Bureau" 3: 1280262988 } 2 { 1: 6202 2: "com.apple.TVHomeSharing" } 3 { 1: "avkit-21B19E07-7CEF-45E5-A2A8-D0E551D45D9C" 2: "player-9" 5: 1093 6: 0 } } } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE [setStateMessage] { displayName: "Ordinateurs" playbackState: Paused playbackQueueCapabilities { } playerPath { origin { displayName: "Bureau" identifier: 1280262988 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" } player { identifier: "avkit-764F7387-B2EA-4880-9481-0B64D11C452F" displayName: "player-10" 6: 0 } } playbackStateTimestamp: 655119687.221441 } uniqueIdentifier: "9F29ACB2-7917-427F-84EF-F0C1D9BE96B9" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE uniqueIdentifier: "A9CE176E-3718-4FD8-B53B-1C1D1DFEC8FB" [playerClientPropertiesMessage] { playerPath { origin { displayName: "Bureau" identifier: 1280262988 5: 1 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" processUserIdentifier: 501 displayName: "Ordinateurs" } player { identifier: "avkit-764F7387-B2EA-4880-9481-0B64D11C452F" displayName: "player-10" 5: 1099 6: 0 } } lastPlayingTimestamp: -63114076800.0 } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE uniqueIdentifier: "16A9B704-8898-49D0-B866-99A69BF432BC" 62 { 1 { 1 { 2: "Bureau" 3: 1280262988 } 2 { 1: 6202 2: "com.apple.TVHomeSharing" } 3 { 1: "avkit-764F7387-B2EA-4880-9481-0B64D11C452F" 2: "player-10" 5: 1099 6: 0 } } } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE [setStateMessage] { displayName: "Ordinateurs" playbackState: Paused playbackQueueCapabilities { } playerPath { origin { displayName: "Bureau" identifier: 1280262988 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" } player { identifier: "avkit-796D8297-398C-4358-8D0D-F8F2DE07AAB4" displayName: "player-11" 6: 0 } } playbackStateTimestamp: 655127284.321153 } uniqueIdentifier: "EEA967E3-0973-4CFD-8AF8-524356A3F416" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE uniqueIdentifier: "DCF8ECA1-5E85-4353-A2B4-A661C76299F7" [playerClientPropertiesMessage] { playerPath { origin { displayName: "Bureau" identifier: 1280262988 5: 1 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" processUserIdentifier: 501 displayName: "Ordinateurs" } player { identifier: "avkit-796D8297-398C-4358-8D0D-F8F2DE07AAB4" displayName: "player-11" 5: 1108 6: 0 } } lastPlayingTimestamp: -63114076800.0 } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE uniqueIdentifier: "505EEFC4-760D-42FE-B8D8-AA6C04C2FA7F" 62 { 1 { 1 { 2: "Bureau" 3: 1280262988 } 2 { 1: 6202 2: "com.apple.TVHomeSharing" } 3 { 1: "avkit-796D8297-398C-4358-8D0D-F8F2DE07AAB4" 2: "player-11" 5: 1108 6: 0 } } } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE [setStateMessage] { displayName: "Ordinateurs" playbackState: Paused playbackQueueCapabilities { } playerPath { origin { displayName: "Bureau" identifier: 1280262988 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" } player { identifier: "avkit-140FBBED-A06E-421E-9514-4DB50F67B702" displayName: "player-12" 6: 0 } } playbackStateTimestamp: 655127294.695079 } uniqueIdentifier: "1B5C4799-E06F-4162-A950-0D95DD377FDF" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE uniqueIdentifier: "211886D6-4304-4B9E-9C9F-F14FF0335394" [playerClientPropertiesMessage] { playerPath { origin { displayName: "Bureau" identifier: 1280262988 5: 1 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" processUserIdentifier: 501 displayName: "Ordinateurs" } player { identifier: "avkit-140FBBED-A06E-421E-9514-4DB50F67B702" displayName: "player-12" 5: 1111 6: 0 } } lastPlayingTimestamp: -63114076800.0 } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE uniqueIdentifier: "7F2E4A72-6DE4-4AC4-B859-4882EDF29CA1" 62 { 1 { 1 { 2: "Bureau" 3: 1280262988 } 2 { 1: 6202 2: "com.apple.TVHomeSharing" } 3 { 1: "avkit-140FBBED-A06E-421E-9514-4DB50F67B702" 2: "player-12" 5: 1111 6: 0 } } } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE [setStateMessage] { displayName: "Ordinateurs" playbackState: Paused playbackQueueCapabilities { } playerPath { origin { displayName: "Bureau" identifier: 1280262988 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" } player { identifier: "avkit-B012B8C0-6572-4C0F-B88E-AB769615FFDA" displayName: "player-13" 6: 0 } } playbackStateTimestamp: 655127846.703679 } uniqueIdentifier: "372355D7-1418-4A8C-84C7-1F7D29FA7273" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE uniqueIdentifier: "07B3514C-D291-4AB1-BF70-7508897EFC80" [playerClientPropertiesMessage] { playerPath { origin { displayName: "Bureau" identifier: 1280262988 5: 1 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" processUserIdentifier: 501 displayName: "Ordinateurs" } player { identifier: "avkit-B012B8C0-6572-4C0F-B88E-AB769615FFDA" displayName: "player-13" 5: 1114 6: 0 } } lastPlayingTimestamp: -63114076800.0 } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE uniqueIdentifier: "9F88BE57-FFCA-4BE3-9078-A6002C78C8B1" 62 { 1 { 1 { 2: "Bureau" 3: 1280262988 } 2 { 1: 6202 2: "com.apple.TVHomeSharing" } 3 { 1: "avkit-B012B8C0-6572-4C0F-B88E-AB769615FFDA" 2: "player-13" 5: 1114 6: 0 } } } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE [setStateMessage] { displayName: "Ordinateurs" playbackState: Paused playbackQueueCapabilities { } playerPath { origin { displayName: "Bureau" identifier: 1280262988 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" } player { identifier: "avkit-8FC5FDAA-29E4-4F3F-81D7-9EFB1AFDD1E7" displayName: "player-14" 6: 0 } } playbackStateTimestamp: 655127860.246077 } uniqueIdentifier: "074F2FF9-0A2E-43F8-8503-6405400BF325" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE uniqueIdentifier: "3E93419A-22B0-4620-8CA8-B74C15FC58D2" [playerClientPropertiesMessage] { playerPath { origin { displayName: "Bureau" identifier: 1280262988 5: 1 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" processUserIdentifier: 501 displayName: "Ordinateurs" } player { identifier: "avkit-8FC5FDAA-29E4-4F3F-81D7-9EFB1AFDD1E7" displayName: "player-14" 5: 1117 6: 0 } } lastPlayingTimestamp: -63114076800.0 } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE uniqueIdentifier: "D076592A-B809-4C44-94A6-E2CC94E9562D" 62 { 1 { 1 { 2: "Bureau" 3: 1280262988 } 2 { 1: 6202 2: "com.apple.TVHomeSharing" } 3 { 1: "avkit-8FC5FDAA-29E4-4F3F-81D7-9EFB1AFDD1E7" 2: "player-14" 5: 1117 6: 0 } } } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE [setStateMessage] { displayName: "Ordinateurs" playbackState: Paused playbackQueueCapabilities { } playerPath { origin { displayName: "Bureau" identifier: 1280262988 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" } player { identifier: "avkit-A1C7DEFC-4BE3-48BA-B0EC-DFB5DBF8AF53" displayName: "player-15" 6: 0 } } playbackStateTimestamp: 655128416.802774 } uniqueIdentifier: "FBC1CC2D-C54E-426B-BF90-81284E6D9E7F" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE uniqueIdentifier: "B42476E7-E9DF-419F-AFD8-410D8EDB0C45" [playerClientPropertiesMessage] { playerPath { origin { displayName: "Bureau" identifier: 1280262988 5: 1 } client { processIdentifier: 6202 bundleIdentifier: "com.apple.TVHomeSharing" processUserIdentifier: 501 displayName: "Ordinateurs" } player { identifier: "avkit-A1C7DEFC-4BE3-48BA-B0EC-DFB5DBF8AF53" displayName: "player-15" 5: 1120 6: 0 } } lastPlayingTimestamp: -63114076800.0 } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE uniqueIdentifier: "C6C354F9-28B9-4BED-9271-7F65FD9A1AAC" 62 { 1 { 1 { 2: "Bureau" 3: 1280262988 } 2 { 1: 6202 2: "com.apple.TVHomeSharing" } 3 { 1: "avkit-A1C7DEFC-4BE3-48BA-B0EC-DFB5DBF8AF53" 2: "player-15" 5: 1120 6: 0 } } } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_CLIENT_MESSAGE [updateClientMessage] { client { processIdentifier: 195 bundleIdentifier: "com.apple.TVAirPlay" processUserIdentifier: 501 displayName: "AirPlay" } } uniqueIdentifier: "9A6B6463-9D02-4BD4-BA91-5762F136745D" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 55 (UpdateClientMessage) to Listener(func=<bound method PlayerStateManager._handle_update_client of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 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: TogglePlayPause enabled: true } supportedCommands { command: Stop enabled: true } supportedCommands { command: NextTrack enabled: true } supportedCommands { command: PreviousTrack enabled: true } supportedCommands { command: BeginFastForward enabled: true } supportedCommands { command: EndFastForward enabled: true } supportedCommands { command: BeginRewind enabled: true } supportedCommands { command: EndRewind enabled: true } supportedCommands { command: AdvanceRepeatMode enabled: true } supportedCommands { command: AdvanceShuffleMode enabled: true } supportedCommands { command: SeekToPlaybackPosition enabled: true } } displayName: "AirPlay" playbackState: Paused playbackQueueCapabilities { } playerPath { origin { displayName: "Bureau" identifier: 1280262988 } client { processIdentifier: 195 bundleIdentifier: "com.apple.TVAirPlay" } player { identifier: "MediaRemote-DefaultPlayer" displayName: "Default Player" 6: 0 } } playbackStateTimestamp: 654637236.308581 } uniqueIdentifier: "BB41AF75-A076-4F55-9EC7-C5BEE2615659" 2021-10-05 16:25:52 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x111f9c790>>, data=None) 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE uniqueIdentifier: "439CE3DA-23DD-4E8A-A916-944E2D525C7B" [playerClientPropertiesMessage] { playerPath { origin { displayName: "Bureau" identifier: 1280262988 5: 1 } client { processIdentifier: 195 bundleIdentifier: "com.apple.TVAirPlay" processUserIdentifier: 501 displayName: "AirPlay" } player { identifier: "MediaRemote-DefaultPlayer" displayName: "Default Player" 6: 0 } } lastPlayingTimestamp: -63114076800.0 } 2021-10-05 16:25:52 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UNKNOWN_MESSAGE identifier: "D0E641D7-D654-4733-AF38-C64073993E89" uniqueIdentifier: "F56AB5D2-7058-4B94-9EF9-08C72F79DCF5" 2021-10-05 16:25:52 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=200043312dadc

postlund commented 2 years ago

It's the log I'm looking for, but it's not complete. Can you please re-run and include the complete log.

oculist37 commented 2 years ago

Ok I’ll do it tomorrow because the Apple TV is not at my home.

Just to be sure : I run the same command atvremote —id XX —airplay credential XX —debug menu ? Or it’s another line of command ?

Because I thought it was I’ve done and sent you everyhting.

Thanks

Le mar. 5 oct. 2021 à 22:13, Pierre Ståhl @.***> a écrit :

It's the log I'm looking for, but it's not complete. Can you please re-run and include the complete log.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/postlund/pyatv/issues/1371#issuecomment-934761353, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQGUGXM7YOQGRXHUY5OQZ4TUFNL7DANCNFSM5FL2YQ6Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Jérémie HALFON @.***

postlund commented 2 years ago

It's the correct command. It's cut mid-line at the end (you can see see that it is right in the middle of some encrypted data). I probably only need some of the last couple of lines, so you can condense it to this if you like:

atvremote --id XX --airplay-credentials XX  --debug menu | tail -n 150
oculist37 commented 2 years ago

Hi with a little bit of delay,

I’ve tempted to update the version of python, and it has broken my virtual environment. I’’ve start from scratch. However, my problems are the same, the commands are sent randomly and sometimes the command is like it was a « long » command.

I send you 2 debugs. The first one, the command was well performed. The 2nd one, the command led me to home page as it was a « long » menu command.

I hope it can help you. Can it be a problem of protocol and I should try another one but mrp doesn’t work I undersand.

Thanks.

1- jeremiehalfon$ atvremote --id xx:xx:06:B4:5F:60 --airplay-credentials xx:xx::64396361646364 --debug menu | tail -n 150
    }
    supportedCommands {
      command: Pause
      enabled: true
    }
    supportedCommands {
      command: TogglePlayPause
      enabled: true
    }
    supportedCommands {
      command: Stop
      enabled: true
    }
    supportedCommands {
      command: NextTrack
      enabled: true
    }
    supportedCommands {
      command: PreviousTrack
      enabled: true
    }
    supportedCommands {
      command: BeginFastForward
      enabled: true
    }
    supportedCommands {
      command: EndFastForward
      enabled: true
    }
    supportedCommands {
      command: BeginRewind
      enabled: true
    }
    supportedCommands {
      command: EndRewind
      enabled: true
    }
    supportedCommands {
      command: AdvanceRepeatMode
      enabled: true
    }
    supportedCommands {
      command: AdvanceShuffleMode
      enabled: true
    }
    supportedCommands {
      command: SeekToPlaybackPosition
      enabled: true
    }
  }
  displayName: "AirPlay"
  playbackState: Paused
  playbackQueueCapabilities {
  }
  playerPath {
    origin {
      displayName: "Bureau"
      identifier: 1280262988
    }
    client {
      processIdentifier: 195
      bundleIdentifier: "com.apple.TVAirPlay"
    }
    player {
      identifier: "MediaRemote-DefaultPlayer"
      displayName: "Default Player"
      6: 0
    }
  }
  playbackStateTimestamp: 654637236.308581
}
uniqueIdentifier: "54C24617-2E77-4AEF-BDD2-2D8598A9BF91"
2021-10-07 18:16:07 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x108fee850>>, data=None)
2021-10-07 18:16:07 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "5D628631-57DF-4302-BBFD-4408525D015B"
[playerClientPropertiesMessage] {
  playerPath {
    origin {
      displayName: "Bureau"
      identifier: 1280262988
      5: 1
    }
    client {
      processIdentifier: 195
      bundleIdentifier: "com.apple.TVAirPlay"
      processUserIdentifier: 501
      displayName: "AirPlay"
    }
    player {
      identifier: "MediaRemote-DefaultPlayer"
      displayName: "Default Player"
      6: 0
    }
  }
  lastPlayingTimestamp: -63114076800.0
}
2021-10-07 18:16:07 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UNKNOWN_MESSAGE
identifier: "81431C20-CB18-4A1F-A86A-40BEBB48AFA2"
uniqueIdentifier: "3DE85EA9-DF21-4A39-90FF-8502FD61B1E2"
2021-10-07 18:16:07 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=200059a4e27435c976522313837e29ecfa58091a2e451f545d676049cdc36b9bb56aa4ebda406c013a87f6f2bd345e8fe43f)
2021-10-07 18:16:07 DEBUG [pyatv.protocols.mrp.player_state]: Active client is now com.apple.TVHomeSharing
2021-10-07 18:16:07 DEBUG [pyatv.protocols.mrp.player_state]: Active player is now avkit-AA01EDDA-A289-4C8A-9F75-AC0CFB20C52A (player-22)
2021-10-07 18:16:07 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=b400260bde1e8ae71a7a66738dea657d89f2186d0589024f2a0d1babef4a74d95d2c3c2490b0b893a1dcaf451ca387bc2a7a5a28fc30a76e4e25acd1fa8fb5ceaaa0650bbdc05638263e30c946f263dbcf1df5a5303ae74a64f3e517c3e5741aa1c1f86245c77b56ffa716f4cec59173d2b153f4f2613f3bc05d8628d990ba75ecb1c3845eac4c9116d8d84ae61b951214d89f909334306ca4f67f4f10be3c96cbb4e062f547ceb8a9f3fcb93ba412699ca2338dff4220cc2e591cd7be491d31334f63345fac)
2021-10-07 18:16:07 DEBUG [pyatv.protocols.airplay.mrp_connection]: >> Send: Protobuf: type: GET_KEYBOARD_SESSION_MESSAGE
identifier: "90A83FED-DA84-4E55-B28E-69873A3C2189"
errorCode: NoError
uniqueIdentifier: "CBBECC86-4C12-49B8-9D05-F2F62AD1BE25"
2021-10-07 18:16:07 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2000bb43ecfe7a8f4bc87c12fade208b39ef51440376e4db955df79af8d9157b65cfee4c4a02ee1eb4b25917e73b0089651b2a004f33bc95a40a221920ae2d261d1f2ef269013760a1eec73f91b0e5ef3166919e6d46bd397398391d3c25c29f59014f0ff968d6119868fff71d5d)
2021-10-07 18:16:07 DEBUG [pyatv.auth.hap_channel]: Received data (Data=20008ef6507d19115069e9b6ee7b0826bde46bcbc4d682e5f4a6dcde3099cd9575ce02b58006a881311ff9b41ba0c75d69b6a9004cab62619ba9bded5c6699ce111e07e60060d79318eef6350f98efa70bd25a59d6d5974040a5c3a3e7cc2b7fe268fce8e9faff57d77adda9315161fcf8bd8f50f85bb0ee86dc96473c1eeb0a3fce14802e66455365d42fd8c0fc391af5c6d3e9227c468c876e4f00aa83cf4ad4f2e9edd1794ff2fb7b76cd17078a29441a1aa9ad0e6cf8cd20e3bf62bf4bed2d3ec4cdd49f5903f0fcc42cf7d50194e2b65ce57e10a1fb9454b7e84a9cbe8cc916a5f3525f79c5d02329b256)
2021-10-07 18:16:07 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: KEYBOARD_MESSAGE
identifier: "90A83FED-DA84-4E55-B28E-69873A3C2189"
[keyboardMessage] {
  state: Unknown
  attributes {
    inputTraits {
      autocapitalizationType: None
      keyboardType: Default
      returnKeyType: Default
      enablesReturnKeyAutomatically: false
      secureTextEntry: false
      validTextRangeLocation: 0
      validTextRangeLength: 0
    }
  }
}
uniqueIdentifier: "FD3C59A4-237B-450A-8797-776EDDFD5D8D"
2021-10-07 18:16:07 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=2000210715ae39afe06499d04a611df48825ca94c674d67fe5011645b669b3e7b12e525bb2df6314580989202542ee10e063)
2021-10-07 18:16:07 DEBUG [pyatv.core.facade]: Protocol Protocol.MRP already set up, ignoring
2021-10-07 18:16:07 DEBUG [pyatv.core.facade]: Connecting to protocol: Protocol.RAOP
2021-10-07 18:16:07 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=ce008c7a0d2bdaaa7254b31ce78d7b44cd05a2231d3244579da8b4c1952ab705436900f8b679c0622364a040b14604f5552c0a1bf14585b789a5b6fedf465d7eb21a736f93bd162aa8bb2823de31a4cbdb2f81526e04d8bcaf82039e64c7c30fa4b224e4f4709897399809dfc5544a92c13f216b258251446d9abc100de2f48fdc2c4b9ccd10d2386ecc898079e719b62c36f8bb3a40104d1e01e19a276532c07acd880eb3307c24f4b0ab3cc45a0608df2e1848ead3c23422defbc593591a3b900f418842e73ae8f26d57df369084b453fd18db2836a6d94efdb42c7ca5fa6d)
2021-10-07 18:16:07 DEBUG [pyatv.protocols.airplay.mrp_connection]: >> Send: Protobuf: type: SEND_HID_EVENT_MESSAGE
errorCode: NoError
[sendHIDEventMessage] {
  hidEventData: "C\211\"\317\010\002\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\002\000\000\000 \000\000\000\003\000\0...
}
uniqueIdentifier: "555E827F-2ED5-477D-9128-FE44DD40CCE4"
2021-10-07 18:16:07 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=ce00e83ddf7390a28dfbcdd19bdae1c8a7579af78dd3f759a5e8d2874cd6a7b457356fddcc1431eb70ddff969d129449e82dbe8f126c8057ac256ddf968128a424b414de6effdea1e3c2724e4de2848f89a9f68920ac1a984f04b6f0ff622d360c110c7a3ff515271ce14ae39ec2d122aa8de7db1243d09139f7ea1ae68435075e8aa529a3f76917c6eb3e3cbddfe73a03c8517f2c61a3e5defbd8fbab9dd7855d21bd4ad2111b2004baef61839c7cfb9f53ba90dd73e5e2a0cf10c0c1790bb18d337a7937b65f9229d02efca0da223a577250626d4ed2885bb653242c42da53)
2021-10-07 18:16:07 DEBUG [pyatv.protocols.airplay.mrp_connection]: >> Send: Protobuf: type: SEND_HID_EVENT_MESSAGE
errorCode: NoError
[sendHIDEventMessage] {
  hidEventData: "C\211\"\317\010\002\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\002\000\000\000 \000\000\000\003\000\0...
}
uniqueIdentifier: "3EDF0765-8E2C-4FB2-A66F-9BFD6F214E93"
2021-10-07 18:16:07 DEBUG [pyatv.protocols.airplay.mrp_connection]: Closing connection
2021-10-07 18:16:07 DEBUG [pyatv.scripts.atvremote]: Waiting for 1 remaining tasks
2021-10-07 18:16:07 DEBUG [pyatv.protocols.airplay.mrp_connection]: Disconnected from device: None
2021-10-07 18:16:07 DEBUG [pyatv.scripts.atvremote]: Connection was closed properly
2021-10-07 18:16:07 DEBUG [pyatv.core.protocol]: Stopping heartbeat loop at 1 (AirPlay:192.168.1.7)
2021-10-07 18:16:07 DEBUG [pyatv.support.http]: Connection closed
2021-10-07 18:16:07 DEBUG [pyatv.auth.hap_channel]: Connection was lost to remote
2 - --debug menu | tail -n 150
      command: Play
      enabled: true
    }
    supportedCommands {
      command: Pause
      enabled: true
    }
    supportedCommands {
      command: TogglePlayPause
      enabled: true
    }
    supportedCommands {
      command: Stop
      enabled: true
    }
    supportedCommands {
      command: NextTrack
      enabled: true
    }
    supportedCommands {
      command: PreviousTrack
      enabled: true
    }
    supportedCommands {
      command: BeginFastForward
      enabled: true
    }
    supportedCommands {
      command: EndFastForward
      enabled: true
    }
    supportedCommands {
      command: BeginRewind
      enabled: true
    }
    supportedCommands {
      command: EndRewind
      enabled: true
    }
    supportedCommands {
      command: AdvanceRepeatMode
      enabled: true
    }
    supportedCommands {
      command: AdvanceShuffleMode
      enabled: true
    }
    supportedCommands {
      command: SeekToPlaybackPosition
      enabled: true
    }
  }
  displayName: "AirPlay"
  playbackState: Paused
  playbackQueueCapabilities {
  }
  playerPath {
    origin {
      displayName: "Bureau"
      identifier: 1280262988
    }
    client {
      processIdentifier: 195
      bundleIdentifier: "com.apple.TVAirPlay"
    }
    player {
      identifier: "MediaRemote-DefaultPlayer"
      displayName: "Default Player"
      6: 0
    }
  }
  playbackStateTimestamp: 654637236.308581
}
uniqueIdentifier: "0AD81837-2659-4F0B-A10D-C15958350AB7"
2021-10-07 18:17:43 DEBUG [pyatv.protocols.mrp.protocol]: Dispatching message with type 4 (SetStateMessage) to Listener(func=<bound method PlayerStateManager._handle_set_state of <pyatv.protocols.mrp.player_state.PlayerStateManager object at 0x1081bdd90>>, data=None)
2021-10-07 18:17:43 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "0C442FC9-D34F-4289-B57F-154184BB001E"
[playerClientPropertiesMessage] {
  playerPath {
    origin {
      displayName: "Bureau"
      identifier: 1280262988
      5: 1
    }
    client {
      processIdentifier: 195
      bundleIdentifier: "com.apple.TVAirPlay"
      processUserIdentifier: 501
      displayName: "AirPlay"
    }
    player {
      identifier: "MediaRemote-DefaultPlayer"
      displayName: "Default Player"
      6: 0
    }
  }
  lastPlayingTimestamp: -63114076800.0
}
2021-10-07 18:17:43 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UNKNOWN_MESSAGE
identifier: "F0F88976-813B-41D9-A871-3AD9E9499CF3"
uniqueIdentifier: "0B036EC5-39AB-4F7E-9AC5-85FFE0E1FB21"
2021-10-07 18:17:43 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=2000ec9e7948fedb6c096280bf3bff3bd109d5fdd0a12df0a53cd799ec976a5aa8a823f62459aa20e50b8d631b974754f6a7)
2021-10-07 18:17:43 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=b4000bfcf052239c40c20683cabdd301aa376ed29f334571f1c2202dac123d10007daa76b073a5b6dfe65648ba1ac84b5f84a6e138f3d55b7e6eeea0fd6b716c5fa232aaa57dfc03563de7d031544ff7433157f1e896a758f9b748a2960ee31ece9f4289a9daf3481dcf0cb7b22c8a2067b74d4920475017df882da8591988825427e45b1d373e5b5b15c557777590ce32dcc3ae7fba6f34743e7d00054776b056b9d62f87e61d5044f9d2da94792e06d2f619411bbabea478080a5b39393a1dccba54cbdb50)
2021-10-07 18:17:43 DEBUG [pyatv.protocols.airplay.mrp_connection]: >> Send: Protobuf: type: GET_KEYBOARD_SESSION_MESSAGE
identifier: "750FF47D-29ED-499A-BAAC-D9D52F5080F9"
errorCode: NoError
uniqueIdentifier: "B171D47A-369B-4650-A280-8947BC814F91"
2021-10-07 18:17:43 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2000da831725a00d5919b1bc08d4ee2cb35ed816c1e04130492004bee6a2ef885362985384c4cc4a335219c43f6ee1f638d72a00754225b1e69f00fe4ad4474ac5f9af388ebd978376a0530cdafe8d7294520133ce72a749981e3e738528a612c3e630c8288e4286c038f9197d9b)
2021-10-07 18:17:43 DEBUG [pyatv.auth.hap_channel]: Received data (Data=20001db4a273d85ea48e7dde72a351bfaf1c69d39ec15ba80cf2cd317eed9658ede96f06d09d52880d3855fafe27cd1b36f7a900481035b0e6a2fda0afcbffe17bbc43fcf0f0bf892ea3917f71b6cffc58b2a577d089c507a37091d80d4a5051ed7dc983744edb7e83c253928b910a5a7c66c53a15de190b0684a79ff742e9d9e205936b9814b36dacd111e6acf653889f59fdc4330293ea80de7be029d11840dcae42bade63d7aabec595bd1eafbf6f84766e7a5eec3c67f34881730a220c21df629e015180b329520001de509639b769935f00c4b8fb7ce88c9848f5f7abb38cf5de1f35c7fd17c72687c29a)
2021-10-07 18:17:43 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: KEYBOARD_MESSAGE
identifier: "750FF47D-29ED-499A-BAAC-D9D52F5080F9"
[keyboardMessage] {
  state: Unknown
  attributes {
    inputTraits {
      autocapitalizationType: None
      keyboardType: Default
      returnKeyType: Default
      enablesReturnKeyAutomatically: false
      secureTextEntry: false
      validTextRangeLocation: 0
      validTextRangeLength: 0
    }
  }
}
uniqueIdentifier: "4FBBAEA2-4EE0-437B-A364-FEBE9AAFC29B"
2021-10-07 18:17:43 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=2000715e2c3144c5e3a103f655bab4c5c1913b2482ce971fe75b2f457dc0c6ff2ab6cc53e84a405ce5ac6764d6bd22159445)
2021-10-07 18:17:43 DEBUG [pyatv.core.facade]: Protocol Protocol.MRP already set up, ignoring
2021-10-07 18:17:43 DEBUG [pyatv.core.facade]: Connecting to protocol: Protocol.RAOP
2021-10-07 18:17:43 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=ce005e277cbcbdc57c217e28c2b6d4c03326c7056d10ab51f3bc9fc8b51f799975565b58303bdaee37f320186bee78fd5f9be5746f31ece81e054ac811e68c13edc68bb22bb85903bddd871b689d2d1fdcd97a432c94dd6571649e90b5aa36756572efde55b6b9b2e493857f679b2c546d96d4211afeeb744e71213dca478620d7e2056882e235dec1e7034e4246ad71162f05d3bcc1d0912bba565f24cbb6b34651eaee9a6a62671a9fd3af3b343b68e5251d812c0deb38513bb0b6dd5dc92d6e75ee036f8ac8abcd71139bfd9a57b52c0f3a1f87923998a76ca6bb44e899b5)
2021-10-07 18:17:43 DEBUG [pyatv.protocols.airplay.mrp_connection]: >> Send: Protobuf: type: SEND_HID_EVENT_MESSAGE
errorCode: NoError
[sendHIDEventMessage] {
  hidEventData: "C\211\"\317\010\002\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\002\000\000\000 \000\000\000\003\000\0...
}
uniqueIdentifier: "8A029233-E874-4154-B304-5C69F0C8B38C"
2021-10-07 18:17:43 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=ce008b48f4f98fb41626c29606ee5467fbfd668c08b9f4d0920d17ffc4f752e451668229287ac94df6c6f4ce52706e396a38a8a787d3356f8c4832e19c3214150fd7b36db7a41b281b2f7f2c68cc6bb70ad1b88c884ecd55e433359594379f789d16ca9eec06303708ed69db6c632107cbb10b5a05d9ccb03cbf327b1f9d26fe5cdab3bf37dbf875645fa2974349b1262efeb0860f74d847e9054f9cad4429267a23e0a5ddc7413bb8bd133807cbe9ab2c7bfd2bd00e622431f00b4c8f862963727f4aea3ec76476c51e18b44c35b38e863ff218c2152365213ceb854dbb64a7)
2021-10-07 18:17:43 DEBUG [pyatv.protocols.airplay.mrp_connection]: >> Send: Protobuf: type: SEND_HID_EVENT_MESSAGE
errorCode: NoError
[sendHIDEventMessage] {
  hidEventData: "C\211\"\317\010\002\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\002\000\000\000 \000\000\000\003\000\0...
}
uniqueIdentifier: "129CBF15-BCD7-4214-A6CC-8B9D8FFC3C64"
2021-10-07 18:17:43 DEBUG [pyatv.protocols.airplay.mrp_connection]: Closing connection
2021-10-07 18:17:43 DEBUG [pyatv.scripts.atvremote]: Waiting for 1 remaining tasks
2021-10-07 18:17:43 DEBUG [pyatv.protocols.airplay.mrp_connection]: Disconnected from device: None
2021-10-07 18:17:43 DEBUG [pyatv.scripts.atvremote]: Connection was closed properly
2021-10-07 18:17:43 DEBUG [pyatv.core.protocol]: Stopping heartbeat loop at 1 (AirPlay:192.168.1.7)
2021-10-07 18:17:43 DEBUG [pyatv.support.http]: Connection closed
2021-10-07 18:17:43 DEBUG [pyatv.auth.hap_channel]: Connection was lost to remote
postlund commented 2 years ago

I don't see anything strange here. There are however two potential scenarios here I can think of. Pushing a button includes two commands (two messages sent to the device): one for button down and one for button up. Just like physically pressing a button. The time between each message correlates to if the commands is short or long press. If there's some kind of glitch happening so that the time between each message turns out to be very long, then it could accidently happen. I find this very, very unlikely for a few reasons. The timestamps being one of them.

The other reason I can think of is a race condition of sort. MRP supports a response to most messages, e.g. you include an identifier in the request and wait for a response containing the same identifier. This used to work for HID messages (used here) in the past, but stopped working in tvOS 14 for some reason. This means that the messages are just sent blindly, hoping they reach their destination. As we can see above, the connection is closed right after sending "button up" message and I suspect that maybe only the button down message is ever sent, but not button up. The device might after some period time out and assume a long press happened when no "button up" appears. This is just my hypothesis so far, but maybe you can verify it for me?

There's a delay command in atvremote, so you can just send the menu command, delay for a second or so (during which the connection will stay open) before disconnecting. It would look like this:

atvremote --id xx:xx:06:B4:5F:60 --airplay-credentials xx:xx::64396361646364 --debug menu delay=1000

If this works, I will start experimenting with the SendButtonMessage instead, hoping that it supports acknowledgement thus allowing us to fix this properly.

oculist37 commented 2 years ago

I think you are on something. It seems to fine with delay. The time of delay needs to be refined depending on where you are in your navigation. Sometimes it’s ok with 1000 sometimes it needs more.

Sometimes it’s e bit lost and I have "Could not find any Apple TV on current network"

But it’s better !

Le 8 oct. 2021 à 09:59, Pierre Ståhl @.***> a écrit :

I don't see anything strange here. There are however two potential scenarios here I can think of. Pushing a button includes two commands (two messages sent to the device): one for button down and one for button up. Just like physically pressing a button. The time between each message correlates to if the commands is short or long press. If there's some kind of glitch happening so that the time between each message turns out to be very long, then it could accidently happen. I find this very, very unlikely for a few reasons. The timestamps being one of them.

The other reason I can think of is a race condition of sort. MRP supports a response to most messages, e.g. you include an identifier in the request and wait for a response containing the same identifier. This used to work for HID messages (used here) in the past, but stopped working in tvOS 14 for some reason. This means that the messages are just sent blindly, hoping they reach their destination. As we can see above, the connection is closed right after sending "button up" message and I suspect that maybe only the button down message is ever sent, but not button up. The device might after some period time out and assume a long press happened when no "button up" appears. This is just my hypothesis so far, but maybe you can verify it for me?

There's a delay command in atvremote, so you can just send the menu command, delay for a second or so (during which the connection will stay open) before disconnecting. It would look like this:

atvremote --id xx:xx:06:B4:5F:60 --airplay-credentials xx:xx::64396361646364 --debug menu delay=1000 If this works, I will start experimenting with the SendButtonMessage https://github.com/postlund/pyatv/blob/0ef3232d3965fa036cb628208d14dc0955c86d4e/pyatv/protocols/mrp/protobuf/SendButtonEventMessage.proto instead, hoping that it supports acknowledgement thus allowing us to fix this properly.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/postlund/pyatv/issues/1371#issuecomment-938429628, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQGUGXJMUKT7FSMVPOHACODUF2QHDANCNFSM5FL2YQ6Q. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

postlund commented 2 years ago

I tested with SendButtonMessage and it seems that no acknowledgement is sent by that message either. So I assume that button events are just fire-and-forget. In the normal case a connection is open for a long time and not immediately closed, like here. So not a problem in that case. From that point-of-view I feel that I can't do much more here. The solution is to use an application that keeps the connection up much longer.

That a device isn't found is a separate issue and that will happen from time to time. It will to some extent also be solved by keeping the connection up longer as re-discovery isn't needed every time a command is to be executed. It's also a bit more stable to use IP address instead of id, i.e. -s <ip> to atvremote.