Open mschwartz opened 10 months ago
```log
cls && atvremote --debug -s 192.168.100.17 --airplay-credentials 060ebb767e780ddc21e74f56fec233697ff154ace425bb416054f0a60d44a626:7764b0b44b76f6c96f5c6dd00e265107d2d8066055939aa7a3b74da46309af30:32343236343330412d424141362d343346362d383844382d304644383242374539464533:39626231356131392d336631322d343336342d383165322d303834363864383833373534 push_updates
2024-01-01 00:33:41 DEBUG [pyatv.scripts]: Running with pyatv 0.14.5
2024-01-01 00:33:41 DEBUG [pyatv.support.knock]: Knocking at port 3689 on 192.168.100.17
2024-01-01 00:33:41 DEBUG [pyatv.support.knock]: Knocking at port 7000 on 192.168.100.17
2024-01-01 00:33:41 DEBUG [pyatv.support.knock]: Knocking at port 49152 on 192.168.100.17
2024-01-01 00:33:41 DEBUG [pyatv.support.knock]: Knocking at port 32498 on 192.168.100.17
2024-01-01 00:33:41 DEBUG [pyatv.core.scan]: Auto-discovered THEATER at 192.168.100.17:7000 via Protocol.AirPlay ({'acl': '0', 'btaddr': '00:00:00:00:00:00', 'deviceid': '58:D3:49:EE:6F:D2', 'fex': '1d9/St5/F7w4oQY', 'features': '0x4A7FDFD5,0xBC177FDE', 'flags': '0x118644', 'gid': 'BE972F9D-7B7B-4623-A479-ACA945B5C7F7', 'igl': '1', 'gcgl': '1', 'model': 'AppleTV11,1', 'protovers': '1.1', 'pi': 'f1783640-7115-423e-886a-b61050a7b0c7', 'psi': '2426430A-BAA6-43F6-88D8-0FD82B7E9FE3', 'pk': '14a763c3ed3d09a0ecaa2592f0d9c927160210659010a014dcf38f6a82adf82c', 'srcvers': '750.14.2', 'osvers': '17.2', 'vv': '1'})
2024-01-01 00:33:41 DEBUG [pyatv.core.scan]: Auto-discovered THEATER at 192.168.100.17:49401 via Protocol.Companion ({'rpmac': '1', 'rphn': '3929dbb7bc36', 'rpfl': '0xB67A2', 'rpha': '569ad45318b1', 'rpmd': 'AppleTV11,1', 'rpvr': '523.1.2', 'rpad': '7367cf8494e0', 'rphi': '585fb2fa3d9b', 'rpba': '3B:4E:09:76:CF:8D', 'rpmrtid': '2426430A-BAA6-43F6-88D8-0FD82B7E9FE3'})
2024-01-01 00:33:41 DEBUG [pyatv.core.scan]: Auto-discovered 58D349EE6FD2@THEATER at 192.168.100.17:7000 via Protocol.RAOP ({'cn': '0,1,2,3', 'da': 'true', 'et': '0,3,5', 'ft': '0x4A7FDFD5,0xBC177FDE', 'sf': '0x118644', 'md': '0,1,2', 'am': 'AppleTV11,1', 'pk': '14a763c3ed3d09a0ecaa2592f0d9c927160210659010a014dcf38f6a82adf82c', 'tp': 'UDP', 'vn': '65537', 'vs': '750.14.2', 'ov': '17.2', 'vv': '1'})
2024-01-01 00:33:41 INFO [pyatv.scripts.atvremote]: Auto-discovered THEATER at 192.168.100.17
2024-01-01 00:33:41 DEBUG [pyatv]: Loading settings from FileStorage:/root/.pyatv.conf
2024-01-01 00:33:41 DEBUG [pyatv.core.facade]: Adding handler for protocol Protocol.AirPlay
2024-01-01 00:33:41 DEBUG [pyatv.protocols.airplay]: Remote control channel is supported
2024-01-01 00:33:41 DEBUG [pyatv.core.facade]: Adding handler for protocol Protocol.MRP
2024-01-01 00:33:41 DEBUG [pyatv.protocols.companion]: Not adding Companion as credentials are missing
2024-01-01 00:33:41 DEBUG [pyatv.core.facade]: Adding handler for protocol Protocol.MRP
2024-01-01 00:33:41 DEBUG [pyatv.core.facade]: Adding handler for protocol Protocol.RAOP
2024-01-01 00:33:41 DEBUG [pyatv.core.facade]: Connecting to protocol: Protocol.AirPlay
2024-01-01 00:33:41 DEBUG [pyatv.core.facade]: Connected to protocol: Protocol.AirPlay
2024-01-01 00:33:41 DEBUG [pyatv.core.facade]: Connecting to protocol: Protocol.MRP
2024-01-01 00:33:41 DEBUG [pyatv.protocols.airplay.ap2_session]: Setting up remote connection to 192.168.100.17:7000
2024-01-01 00:33:41 DEBUG [pyatv.support.http]: Connected to 192.168.100.17
2024-01-01 00:33:41 DEBUG [pyatv.protocols.airplay.auth]: Setting up new AirPlay Pair-Verify procedure with type AuthenticationType.HAP
2024-01-01 00:33:41 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 _\x8d\xe5PD\xe3\xd2,{\x92*\xd8\xdf\x971\xe1\x82P\x05\x05\x1e\xd2i\x80\x0e\x1c\xb6d\x990[H'
2024-01-01 00:33:41 DEBUG [pyatv.support.http]: Received: b'HTTP/1.1 200 OK\r\nDate: Mon, 01 Jan 2024 00:33:41 GMT\r\nContent-Length: 159\r\nContent-Type: application/octet-stream\r\nServer: AirTunes/750.14.2\r\n\r\n\x05x\x8c\xf2\xeci\xddI4\x81\xb9_J\xed\xfe&\xa5\x11\x03\xd6\xc4\x84B\xea\x174p\x0b\x9eM\xfd\x03!\x15\xf8\x1d\xcc/"\n\xab\x95\xb9\x14\xe7\x85\xfd\x1a\xce\xaf\xf5\xb9\x04R\x9d\x8dF\xf7\x17\xd5tAD\x91OO(\r9\x1fy\x92\xce\xd7Vl9@\xd8\xe8\x19n\xc7\x81\xbb\x17\xd9\xcd\xfbD\x82\x16\x8e\x9a\xf6o\xfaaF\x99\xe1l\x94\x03o\x93\x84\xa5\x9f\xa2\x13o`\xff\x9b\xe1\xce4\xfdrX\xf3\x06\x01\x02\x03 \x94?\xcey\xc5/\x9dAY\xf4\xfa\xe7\xd9f!t\x08\x02\x106\xd0n-d\xd6\x9a\xef\xf4H8g\x0e'
2024-01-01 00:33:41 DEBUG [pyatv.support.http]: Got HTTP response: HttpResponse(protocol='HTTP', version='1.1', code=200, message='OK', headers={'Date': 'Mon, 01 Jan 2024 00:33:41 GMT', 'Content-Length': '159', 'Content-Type': 'application/octet-stream', 'Server': 'AirTunes/750.14.2'}, body=b'\x05x\x8c\xf2\xeci\xddI4\x81\xb9_J\xed\xfe&\xa5\x11\x03\xd6\xc4\x84B\xea\x174p\x0b\x9eM\xfd\x03!\x15\xf8\x1d\xcc/"\n\xab\x95\xb9\x14\xe7\x85\xfd\x1a\xce\xaf\xf5\xb9\x04R\x9d\x8dF\xf7\x17\xd5tAD\x91OO(\r9\x1fy\x92\xce\xd7Vl9@\xd8\xe8\x19n\xc7\x81\xbb\x17\xd9\xcd\xfbD\x82\x16\x8e\x9a\xf6o\xfaaF\x99\xe1l\x94\x03o\x93\x84\xa5\x9f\xa2\x13o`\xff\x9b\xe1\xce4\xfdrX\xf3\x06\x01\x02\x03 \x94?\xcey\xc5/\x9dAY\xf4\xfa\xe7\xd9f!t\x08\x02\x106\xd0n-d\xd6\x9a\xef\xf4H8g\x0e'):
2024-01-01 00:33:41 DEBUG [pyatv.protocols.airplay.auth.hap]: Device (Encrypted=8cf2ec69dd493481b95f4aedfe26a51103d6c48442ea1734700b9e4dfd032115f81dcc2f220aab95b914e785fd1aceaff5b904529d8d46f717d5744144914f4f280d391f7992ced7566c3940d8e8196ec781bb17d9cdfb4482168e9af66ffa614699e16c94036f9384a59fa2136f60ff9be1ce34fd7258f3, Public=060ebb767e780ddc21e74f56fec233697ff154ace425bb416054f0a60d44a626)
2024-01-01 00:33:41 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\x05xa\xc6\x99q\x190)\r\xe8\x17z\x90\xcdT\x15\x97we\xfeQ\xb4\xd0\xadn\x910W\xe6\xaa\xef\x0f-\xa9\xc4i0\x97\n\x07J\xda\xfa\x15\x1aQ\xf03]\xea\xf1\xc7\xa34\\F\xf3\xd6\xd65i|\x90\xf1\xa5\x97n\xda\xee\xe3\t\xca\xa9my>\xa5Ls\x17Z\x81\t;\xeev\x11-\xae\xcd\x80)\x0e(\xdd!\xd2\xa6|\x14)&>\xf2r03\x15\x93@\xff\x15\xc9\xe6\xa6H\x8f\x0b\xcby\x0b'
2024-01-01 00:33:41 DEBUG [pyatv.support.http]: Received: b'HTTP/1.1 200 OK\r\nDate: Mon, 01 Jan 2024 00:33:41 GMT\r\nContent-Length: 3\r\nContent-Type: application/octet-stream\r\nServer: AirTunes/750.14.2\r\n\r\n\x06\x01\x04'
2024-01-01 00:33:41 DEBUG [pyatv.support.http]: Got HTTP response: HttpResponse(protocol='HTTP', version='1.1', code=200, message='OK', headers={'Date': 'Mon, 01 Jan 2024 00:33:41 GMT', 'Content-Length': '3', 'Content-Type': 'application/octet-stream', 'Server': 'AirTunes/750.14.2'}, body=b'\x06\x01\x04'):
2024-01-01 00:33:41 DEBUG [pyatv.auth.hap_srp]: Keys (Input=b5b028f2541dd1a225650f51b8ef5ece9d2f0995141072a0638cbb44247f132e, Output=2a280159dbd70119aa17021fc9c87477364f82a7305b4c76f37c9d88b6a3f27e)
2024-01-01 00:33:41 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'SETUP rtsp://192.168.65.3/1491855816 RTSP/1.0\r\nUser-Agent: AirPlay/550.10\r\nContent-Length: 367\r\nCSeq: 0\r\nDACP-ID: EFD38294A0B0FD06\r\nActive-Remote: 975508575\r\nClient-Instance: EFD38294A0B0FD06\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:70:79:61:74:76\t_\x10\x1102:70:79:61:74:76ZiPhone10,6UpyatvU18G82YiPhone OSV14.7.1_\x10$EB5390D0-A134-408A-A74D-88B080F8884BV550.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!'
2024-01-01 00:33:41 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Mon, 01 Jan 2024 00:33:41 GMT\r\nContent-Length: 59\r\nContent-Type: application/x-apple-binary-plist\r\nServer: AirTunes/750.14.2\r\nCSeq: 0\r\n\r\nbplist00\xd1\x01\x02YeventPort\x11\xf1\x18\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'
2024-01-01 00:33:41 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'Date': 'Mon, 01 Jan 2024 00:33:41 GMT', 'Content-Length': '59', 'Content-Type': 'application/x-apple-binary-plist', 'Server': 'AirTunes/750.14.2', 'CSeq': '0'}, body=b'bplist00\xd1\x01\x02YeventPort\x11\xf1\x18\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'):
2024-01-01 00:33:41 DEBUG [pyatv.auth.hap_srp]: Keys (Input=7e7f9faeeb0a12a93666c4bb2e4e8e892913f2bf15b775f58064e4a92dd4fc78, Output=42ce40cabcf8d693b35879bc5ce49eed2bd47628b3cfff076d5f19bbed537a90)
2024-01-01 00:33:41 DEBUG [pyatv.auth.hap_channel]: Connected to 192.168.100.17:61720
2024-01-01 00:33:41 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'RECORD rtsp://192.168.65.3/1491855816 RTSP/1.0\r\nUser-Agent: AirPlay/550.10\r\nCSeq: 1\r\nDACP-ID: EFD38294A0B0FD06\r\nActive-Remote: 975508575\r\nClient-Instance: EFD38294A0B0FD06\r\n\r\n'
2024-01-01 00:33:41 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Mon, 01 Jan 2024 00:33:41 GMT\r\nContent-Length: 0\r\nAudio-Latency: 0\r\nServer: AirTunes/750.14.2\r\nCSeq: 1\r\n\r\n'
2024-01-01 00:33:41 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'Date': 'Mon, 01 Jan 2024 00:33:41 GMT', 'Content-Length': '0', 'Audio-Latency': '0', 'Server': 'AirTunes/750.14.2', 'CSeq': '1'}, body=''):
2024-01-01 00:33:41 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'SETUP rtsp://192.168.65.3/1491855816 RTSP/1.0\r\nUser-Agent: AirPlay/550.10\r\nContent-Length: 298\r\nCSeq: 2\r\nDACP-ID: EFD38294A0B0FD06\r\nActive-Remote: 975508575\r\nClient-Instance: EFD38294A0B0FD06\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$B6E528EE-A407-4959-A8A3-CA5F819772B4_\x10$1910A70F-DBC0-4242-AF95-115DB30604E1_\x10$DABB3098-97AC-4B37-831E-BABDCD3F1A73\x10\x02\x13\x11\xd2\x16[\\\xd5\xb7\xd8\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'
2024-01-01 00:33:41 DEBUG [pyatv.auth.hap_channel]: Received data (Data=0004aaff25bfaa444c06fbfd345165d3ce01abdb52749360e74cbcb1c085cc6a19a2175589faa822a4eacc2874bde5bee4e10b9a7cd772ad8d313e5dd425da32f8d80adf89ee3d8d0a0b3f5717db1b3184d75e9747af7c3ffc1034cc7b7c4b49fb6f06b25c09d79a7803b2ba77499b13393aa37e0aa7fe8ee6cf5386b8fefafed4f7e54a98a90502aaf9c0335b348e1acdc773c4b00cfd3eb04eb5c0a685ae7f4d661d79035e096c7da4eaca3efac2b66b316726228d12f6d7d9bc02407ba99c353fe2f0949ac7bf55a2cad5fc0fca7fe8fbef528cf95dc6a88ef8a3cd20d383c2876690a5254bd866bb60d8c0bab24cef3afa598236a49bd0be011a709f6...)
2024-01-01 00:33:41 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': '1683', 'Content-Type': 'application/x-apple-binary-plist'}, body=b'bplist00\xd2\x01\x02\x03\x04TtypeUvalueZupdateInfo\xdf\x10\x1a\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 67>E?GHIJKL>NOPQ?ST[\\]^_Spsi_\x10\x1dsupportedAudioFormatsExtendedRvv_\x10\x14playbackCapabilities_\x10\x15canRecordScreenStream[statusFlags_\x10\x18keepAliveSendStatsAsBodyTname_\x10\x0fprotocolVersion_\x10\x11volumeControlType]senderAddressXdeviceIDRpi^screenDemoMode]initialVolumeZfeaturesExZtxtAirPlay]sourceVersion_\x10\x16hasUDPMirroringSupportUmodel_\x10\x10supportedFormatsRpkZmacAddress^osBuildVersion_\x10\x15receiverHDRCapabilityXfeatures_\x10$2426430A-BAA6-43F6-88D8-0FD82B7E9FE3\xd1!"\\bufferStream\xaf\x10\x13#$%&\'()*+,-./012345\x10J\x10K\x10G\x108\x10=\x10\x16\x107\x10\'\x10H\x10(\x10\x15\x10\x17\x10\x13\x10F\x10:\x10<\x10I\x109\x106\x10\x01\xd689:;<=>???>?_\x10\x12supportsOfflineHLS_\x10\x1dsupportsUIForAudioOnlyContent_\x10\x15supportsInterstitials_\x10\x15supportsFPSSecureStop_\x10\x18supportsStopAtEndOfQueue_\x10!supportsAirPlayVideoWithSharePlay\x08\t\t\t\x08\t\x08\x12\x00\x11\x86D\tWTHEATERS1.1\x10\x04_\x10\x12192.168.0.13:61570_\x10\x1158:D3:49:EE:6F:D2_\x10$f1783640-7115-423e-886a-b61050a7b0c7\x08#\x00\x00\x00\x00\x00\x00\x00\x00_\x10\x0f1d9/St5/F7w4oQYO\x11\x01\x89\x05acl=0\x18btaddr=00:00:00:00:00:00\x1adeviceid=58:D3:49:EE:6F:D2\x13fex=1d9/St5/F7w4oQY\x1efeatures=0x4A7FDFD5,0xBC177FDE\x0eflags=0x118644(gid=BE972F9D-7B7B-4623-A479-ACA945B5C7F7\x05igl=1\x06gcgl=1\x11model=AppleTV11,1\rprotovers=1.1\'pi=f1783640-7115-423e-886a-b61050a7b0c7(psi=2426430A-BAA6-43F6-88D8-0FD82B7E9FE3Cpk=14a763c3ed3d09a0ecaa2592f0d9c927160210659010a014dcf38f6a82adf82c\x10srcvers=750.14.2\x0bosvers=17.2\x04vv=1X750.14.2\t[AppleTV11,1\xd4UVW!XYYZ_\x10\x15lowLatencyAudioStream\\screenStream[audioStream\x10\x00\x12\x01D\x08\x00\x137\xc0\x01\x80\x00\xe8\x00\x00O\x10 \x14\xa7c\xc3\xed=\t\xa0\xec\xaa%\x92\xf0\xd9\xc9\'\x16\x02\x10e\x90\x10\xa0\x14\xdc\xf3\x8fj\x82\xad\xf8,_\x10\x1158:D3:49:EE:6F:D2V21K365T4k60\x13\xbc\x17\x7f\xdeJ\x7f\xdf\xd5\x00\x08\x00\r\x00\x12\x00\x18\x00#\x00Z\x00^\x00~\x00\x81\x00\x98\x00\xb0\x00\xbc\x00\xd7\x00\xdc\x00\xee\x01\x02\x01\x10\x01\x19\x01\x1c\x01+\x019\x01D\x01O\x01]\x01v\x01|\x01\x8f\x01\x92\x01\x9d\x01\xac\x01\xc4\x01\xcd\x01\xf4\x01\xf7\x02\x04\x02\x1a\x02\x1c\x02\x1e\x02 \x02"\x02$\x02&\x02(\x02*\x02,\x02.\x020\x022\x024\x026\x028\x02:\x02<\x02>\x02@\x02B\x02O\x02d\x02\x84\x02\x9c\x02\xb4\x02\xcf\x02\xf3\x02\xf4\x02\xf5\x02\xf6\x02\xf7\x02\xf8\x02\xf9\x02\xfa\x02\xff\x03\x00\x03\x08\x03\x0c\x03\x0e\x03#\x037\x03^\x03_\x03h\x03z\x05\x07\x05\x10\x05\x11\x05\x1d\x05&\x05>\x05K\x05W\x05Y\x05^\x05g\x05\x8a\x05\x9e\x05\xa5\x05\xaa\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\x05\xb3')
2024-01-01 00:33:41 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=5b00684bc07389c610b03a28c7b6eb55bb107bacad85a0759b53c8406b73b2c963a9910a26a0ea07fd4a00668c3e3d30679d385874286ebd5995701a33546dd576fc6417bbc2dfbb5115b85147520b9e7ccadc29cf2f2b4db7aa51a7d865b71df0bd31d357760416ce73af57dd)
2024-01-01 00:33:41 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Mon, 01 Jan 2024 00:33:41 GMT\r\nContent-Length: 100\r\nContent-Type: application/x-apple-binary-plist\r\nServer: AirTunes/750.14.2\r\nCSeq: 2\r\n\r\nbplist00\xd1\x01\x02Wstreams\xa1\x03\xd3\x04\x05\x06\x07\x08\tTtypeXstreamIDXdataPort\x10\x82\x10\x01\x11\xf1\x19\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:'
2024-01-01 00:33:41 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'Date': 'Mon, 01 Jan 2024 00:33:41 GMT', 'Content-Length': '100', 'Content-Type': 'application/x-apple-binary-plist', 'Server': 'AirTunes/750.14.2', 'CSeq': '2'}, body=b'bplist00\xd1\x01\x02Wstreams\xa1\x03\xd3\x04\x05\x06\x07\x08\tTtypeXstreamIDXdataPort\x10\x82\x10\x01\x11\xf1\x19\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:'):
2024-01-01 00:33:41 DEBUG [pyatv.auth.hap_srp]: Keys (Input=ce36fb5f2849e4862ef900e2a5386e4cbdfa42128ea3cce40513334ff5536b02, Output=4ffd19bb1fcac56bba143ac0a5d7ecfbd8457581eb30082ccae6a2aa1cdfb2f2)
2024-01-01 00:33:41 DEBUG [pyatv.auth.hap_channel]: Connected to 192.168.100.17:61721
2024-01-01 00:33:41 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=3b013a435ac63509d098acea37d19b66840b9a76ed06fa3a29cce43f302e3a3a8eb619c81845e8bee96a80b32d77f3097cdd635cae913df765b556d0574e3c1f10a5a4ff6bbbbbf6b1839966066a5d865fc6a59e5bc12b8eb7e29dfcdbe538cbfc18ed40d84d754a17ab082c8ea8d21146f05e7b6df6c47847d83fe8d1bf79531518365872689150e8dadd5f4e380740209094088cdd7944174c78b6f233ebb8d429af645ac5995f945cba4bc8d9a2b1df9d228b22cc0bd0dfff5ae088a5b46d11ed49900c4e94d8728ea8e0292f7b8278f963cc0e023617e8604f39df21082a1f02e5eb0426ba28b355e45ad5b3c0b9cc41f1965ede5a77a211886df5833...)
2024-01-01 00:33:41 DEBUG [pyatv.protocols.airplay.mrp_connection]: >> Send: Protobuf: type: DEVICE_INFO_MESSAGE
identifier: "3CC12EC6-EDBA-4420-AB6D-5DAFC02AC3A3"
errorCode: NoError
[deviceInfoMessage] {
uniqueIdentifier: "eb964d7c-eafe-4c8f-a138-f17288fcd80b"
name: "pyatv"
localizedModelName: "iPhone"
systemBuildVersion: "18G82"
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: "7B38A907-AD98-41CC-99FD-0D8348288DFD"
2024-01-01 00:33:41 DEBUG [pyatv.core.protocol]: Starting heartbeat loop (AirPlay:192.168.100.17)
2024-01-01 00:33:41 DEBUG [pyatv.auth.hap_channel]: Received data (Data=200067eb025debeb94b2a66f4011e9c7a60047007e1a906ba30a5145cdfd210272e2946a20271249b722fc2c82c87db641362a0021c04fdb04b08ebf35a806482fd100639b9635c37c9dd74e7af54d2399c38321b558435cf6d0ca9a09a3ca65a6f2e0ebeff07a731e890b8731e6)
2024-01-01 00:33:42 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2000a597be1f57df90f25179fda203c098572d6f8cdd5acc171ac704cd0c7528c73b1255208ddf795923bfc5d41b969515486a0208eeff173c6c87ef2917ffefaeb9043d03e00ad2758d5bcdd2674abdad753638bd11cd8a435fe770628c3859df43148b0f547f46e7ac11130322f9ffa3717ae7f3252629f40c82c0b6dd6019f4dd86418a450d4abc6cd618aea433d053596e0eddc1e76bb970312e6db19a309241221a5e86b4976b169312f218012629967b34d29c082f77318712208b9a162477b06d5e1e54d1afdbf07369ab266470d4ff89d680eccce1d52eec9ed2ce09054171b2328a6ca2b2d7b00c533a7e1cb5e7c350a49d6e1b101b8f33066cb...)
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: DEVICE_INFO_MESSAGE
identifier: "3CC12EC6-EDBA-4420-AB6D-5DAFC02AC3A3"
[deviceInfoMessage] {
uniqueIdentifier: "2426430A-BAA6-43F6-88D8-0FD82B7E9FE3"
name: "THEATER"
localizedModelName: "Apple\302\240TV"
systemBuildVersion: "21K365"
applicationBundleIdentifier: "com.apple.mediaremoted"
protocolVersion: 1
lastSupportedMessageType: 132
supportsSystemPairing: true
allowsPairing: true
systemMediaApplication: "com.apple.TVMusic"
supportsACL: true
supportsSharedQueue: true
supportsExtendedMotion: true
sharedQueueVersion: 3
deviceUID: "2426430A-BAA6-43F6-88D8-0FD82B7E9FE3"
managedConfigDeviceID: "58:d3:49:ee:6f:d2"
deviceClass: AppleTV
logicalDeviceCount: 1
isProxyGroupPlayer: false
groupUID: "BE972F9D-7B7B-4623-A479-ACA945B5C7F7"
isGroupLeader: true
isAirplayActive: false
systemPodcastApplication: "com.apple.podcasts"
senderDefaultGroupUID: "BE972F9D-7B7B-4623-A479-ACA945B5C7F7"
airplayReceivers: "TVAirPlay"
clusterType: 0
isClusterAware: true
modelID: "AppleTV11,1"
supportsMultiplayer: false
routingContextID: "577E1BCA-2D9B-41C2-A8F8-C515CE8072D4"
airPlayGroupID: "BE972F9D-7B7B-4623-A479-ACA945B5C7F7"
systemBooksApplication: "com.apple.TVBooks"
parentGroupContainsDiscoverableGroupLeader: 0
groupContainsDiscoverableGroupLeader: 1
lastKnownClusterType: 2
supportsOutputContextSync: true
computerName: "THEATER"
configuredClusterSize: 0
preferredEncoding: Default
}
uniqueIdentifier: "DD26E5B3-CC06-461A-9589-F3056EAD2A0D"
2024-01-01 00:33:42 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=20000b3bb2bc3f44baf253dc63e1fa393c56974df04f11f4eab9f1d712725ce01419414b3cb29921ab1a6cd7e50d6642e887)
2024-01-01 00:33:42 DEBUG [pyatv.core.protocol]: Dispatching message with type 15 to <bound method MrpPower._update_power_state of <pyatv.protocols.mrp.MrpPower object at 0xffff7b70ac50>>
2024-01-01 00:33:42 DEBUG [pyatv.core.protocol]: Dispatching message with type 15 to <bound method MrpAudio._update_output_devices of <pyatv.protocols.mrp.MrpAudio object at 0xffff7b70ad50>>
2024-01-01 00:33:42 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=930096ad133087bfe5f17fb59108ae5bc063c6d73ceac46b84ead45eacd188f8f3bbeaa8c69fd17eb8ec7f2939af2c04a593eeb5f34eb2690b5b88bb7b9ed087c85166d92cd71a71febc79c32ead1a9b9dee54830be05f3f37799a5b2ac5229e52acf8ec4f5613757f0adec7a534737e6a464f53b655631dbd01b5242791376ba0db9871f4f0f52e07897a030f5c076e2077de4888fe8421ef6b433d2dad37e18f8cd073c7)
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: >> Send: Protobuf: type: SET_CONNECTION_STATE_MESSAGE
errorCode: NoError
[setConnectionStateMessage] {
state: Connected
}
uniqueIdentifier: "946C6649-E9EC-4B77-A755-58DA8E2CE1B0"
2024-01-01 00:33:42 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=c10073ebcc58b7ce61e515d7875de05203f18bee83c4f51c39e2273fa2f4fbdb30bdd74c50f274835a6200007523adf9b5173cee7a82786119c7f314335ba902c39c6d1b1a11bff11644e8b66d60500afc6722a0a29b0ca6675f710594416c22e022ef056438bfad3382377a3fa57e9a563102a459d495a44880cb1282cfd52176cdbff05a94da79ffa6046d3dd965f98b242a89afc81126b13c7e977660b43cc2de71e1c928855fa6cf5b3408eb2e9e1b56c9891055e06410e9d792ad855dafb1809545a873ec075c911a355cc8c9613c19b2)
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: >> Send: Protobuf: type: CLIENT_UPDATES_CONFIG_MESSAGE
identifier: "31556D0A-7203-46E7-B0AE-345FD1E1FB49"
errorCode: NoError
[clientUpdatesConfigMessage] {
artworkUpdates: true
nowPlayingUpdates: false
volumeUpdates: true
keyboardUpdates: true
outputDeviceUpdates: true
}
uniqueIdentifier: "DE633C02-C888-49E4-AEED-B5B29A1138DC"
2024-01-01 00:33:42 DEBUG [pyatv.core.protocol]: Dispatching message with type UpdatedState.OutputDevices to <bound method FacadeAudio._output_devices_changed of <pyatv.core.facade.FacadeAudio object at 0xffff7e790090>>
2024-01-01 00:33:42 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2000d7ae13cb3fd514cb0133b8a3f0eb4eb731287ad23ab83516bf84054a65b73f2dde7a25f111a783d4982cf53a441300d02a006ce2a0a16ae562bc6c7f06725a50fed47c4f30f353fb0540ec8e878dadf6c9a470a74180408ee1dc7fc9b96f842d8013db465fccd098f2b3e5bd)
2024-01-01 00:33:42 DEBUG [pyatv.auth.hap_channel]: Received data (Data=200087145c34c9ed50cd1cfbe271e72793c8d5b4ce3e03030932c2ca7aa8f5548786bd02f326c95072da4f8b30d35c5878272a003dc287429da5bf70db3830bb27b8a336061e440f5572a5ef30ef441af69486208587764fb60aa4238b3a23e453e41e33eec1b9ae57b91e223c64)
2024-01-01 00:33:42 DEBUG [pyatv.auth.hap_channel]: Received data (Data=20002e340c159a0f0607a0922461566382108561b82fdf56eff21c58cccb1932b3140b8ee79082e0b70737ef83b60755c4a37100082927f8e912729d3166351004e9f304327409fc0c5c86cef7e4dfab9b11dd1b309aeb2e562b88c0df358f22d6ee4c1da936947313b942656ffe82ca011c3c0f7b7526d49b5feecda780df8c09fd4656de012511e73937aca4809af181fda24e3754c1fa4193af808d51e5ca5a9374ec4bdf2f489fb3b9dcbfb6b6cef570a9e776)
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: REGISTER_FOR_GAME_CONTROLLER_EVENTS_MESSAGE
[registerForGameControllerEventsMessage] {
1: 6
}
uniqueIdentifier: "D1B4A5DB-1117-41D1-97BB-B73EC297152A"
2024-01-01 00:33:42 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=2000395aa0c49a1127609c5b464a6c6e457c4cfcf43204b3d4793dd561bd5f3ec75ce451106f908996eaca5a638d6769d19a)
2024-01-01 00:33:42 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2000313ca91aec7d26da47b901c241525eda5c875b31200f5e1cb4b3ee983587482db7964092a1c9e9b9887936a957b502b3)
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.channels]: Not enough data on data channel (has 32, expects 14314)
2024-01-01 00:33:42 DEBUG [pyatv.auth.hap_channel]: Received data (Data=ca377e3311e850193e727125bfb7372a2ad6adede0566226497567697cdfe3f2d1d992432bf5146dba00a897d5994be3510edd70489bc274ff9458bd0364ad29fa7a43eb0001f3edb89aa1554df4698cde67fd87a859209a37b4c9f5f51c4d5602bf3676c43511e5b8d050de3a1dba3ef5843f36f3f47191f2adffda0d2c88432b1232785280b0318751217d5baba2e658735a9f62e5aa10c415634b437822a515879905dec6b8599316b6fa0f659a144b1cd1da8bd46557e15aa80adc523ae8d43bf6b65bdb286fc35f81cacd1a97dddd76edf894f7aacc63b99b2bce04c751d7937487be029504cf9545fa901685545b18b2d6b7f925a257ad2555a0125...)
2024-01-01 00:33:42 DEBUG [pyatv.auth.hap_channel]: Received data (Data=1b97d341149c0989b88461605cf18b8781bf063472c551ad3d5d40ccffd8f1aa0565569106f04c07671636cac2130d06051dde614f61972f34c1317816128f9d25c8ce59c3dde82da3a00ec9e009f1fa88897121f77fcd59310dfd92897236c3b8dd68e6d57235478fe03f23eb68304c81bc42303473ebc265779e0088d151e20cdb9ce09d12634e0f151cbbb268a51bbc780ce8e071263604727bfab452df422769278d9c17ef03cb7bd4814c388191c206f82eafa4ef75f06bd88adcc8a61615e223a8ec56b30c210c8d2675521e5c909eaf10559ef40ff8c1b4cbe898a100f9c96ac85a21293a9192f99353071a0363f474e5719480e1353f6299c1384...)
2024-01-01 00:33:42 DEBUG [pyatv.auth.hap_channel]: Received data (Data=37fc2dd5059b625608f347d3bb7c07052703b6f2e58f4b5f9d939b4e2ec1f89ba53237a89ba787b4f767fdb7df341503bb48dca96563755a60bd5e8b1e962179fc0bafd397d4809ead29a16be9e500200f707726248cf452e862192891a569c503d2ae430cd07aa7c8ba5ebb9cdd454618f12f378b622b23500fc7cce0595938ac109cb15d770c0fa15fce52ad38d53634711e71de01d1e0beccb7cc65e15e5ca638bfcd25499cb243d8d58605eb61932d5dd95811d2f54370f73cf9a45b57f4915f773be3a47ce1f630ff2c1670db2599ea7fe72755e016000dc91d58acb7bb56412c852d00ac1d7c492bc36f29d02ac66f584510b1c5d7f1198862c6969...)
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_OUTPUT_DEVICE_MESSAGE
[updateOutputDeviceMessage] {
outputDevices {
name: "THEATER"
uniqueIdentifier: "2426430A-BAA6-43F6-88D8-0FD82B7E9FE3"
groupID: "BE972F9D-7B7B-4623-A479-ACA945B5C7F7"
modelID: "AppleTV11,1"
canAccessRemoteAssets: false
isRemoteControllable: true
isGroupLeader: true
isGroupable: true
deviceType: AirPlay
deviceSubType: AppleTV
isLocalDevice: false
supportsExternalScreen: false
requiresAuthorization: false
sourceInfo {
multipleBuiltInDevices: false
}
isDeviceGroupable: false
canRelayCommunicationChannel: false
isProxyGroupPlayer: false
canAccessAppleMusic: false
canAccessiCloudMusicLibrary: false
groupContainsGroupLeader: true
supportsBufferedAirPlay: false
canPlayEncryptedProgressiveDownloadAssets: false
canFetchMediaDataFromSender: false
resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets: false
isAirPlayReceiverSessionActive: false
parentGroupContainsDiscoverableLeader: false
isAddedToHomeKit: false
supportsHAP: false
usingJSONProtocol: false
clusterType: 0
primaryUID: "2426430A-BAA6-43F6-88D8-0FD82B7E9FE3"
configuredClusterSize: 0
supportsRapportRemoteControlTransport: false
supportsMultiplayer: false
producesLowFidelityAudio: false
hostDeviceClass: 4
supportsSharePlayHandoff: false
discoveredOnSameInfra: false
pickable: true
transportType: 0
isClusterLeader: false
isAppleAccessory: false
}
clusterAwareOutputDevices {
name: "THEATER"
uniqueIdentifier: "2426430A-BAA6-43F6-88D8-0FD82B7E9FE3"
groupID: "BE972F9D-7B7B-4623-A479-ACA945B5C7F7"
modelID: "AppleTV11,1"
canAccessRemoteAssets: false
isRemoteControllable: true
isGroupLeader: true
isGroupable: true
deviceType: AirPlay
deviceSubType: AppleTV
isLocalDevice: false
supportsExternalScreen: false
requiresAuthorization: false
sourceInfo {
multipleBuiltInDevices: false
}
isDeviceGroupable: false
canRelayCommunicationChannel: false
isProxyGroupPlayer: false
canAccessAppleMusic: false
canAccessiCloudMusicLibrary: false
groupContainsGroupLeader: true
supportsBufferedAirPlay: false
canPlayEncryptedProgressiveDownloadAssets: false
canFetchMediaDataFromSender: false
resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets: false
isAirPlayReceiverSessionActive: false
parentGroupContainsDiscoverableLeader: false
isAddedToHomeKit: false
supportsHAP: false
usingJSONProtocol: false
clusterType: 0
primaryUID: "2426430A-BAA6-43F6-88D8-0FD82B7E9FE3"
configuredClusterSize: 0
supportsRapportRemoteControlTransport: false
supportsMultiplayer: false
producesLowFidelityAudio: false
hostDeviceClass: 4
supportsSharePlayHandoff: false
discoveredOnSameInfra: false
pickable: true
transportType: 0
isClusterLeader: false
isAppleAccessory: false
}
}
uniqueIdentifier: "0B79F512-30A4-4F99-9D69-10B711DEAE92"
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: VOLUME_CONTROL_AVAILABILITY_MESSAGE
[volumeControlAvailabilityMessage] {
volumeControlAvailable: true
volumeCapabilities: Relative
}
uniqueIdentifier: "3CC7709F-5EB4-47C3-9CD2-FBB3815FFC54"
2024-01-01 00:33:42 DEBUG [pyatv.core.protocol]: Dispatching message with type 17 to <bound method MrpAudio._volume_control_availability of <pyatv.protocols.mrp.MrpAudio object at 0xffff7b70ad50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: VOLUME_CONTROL_CAPABILITIES_DID_CHANGE_MESSAGE
[volumeControlCapabilitiesDidChangeMessage] {
capabilities {
volumeControlAvailable: true
volumeCapabilities: Relative
}
endpointUID: "BE972F9D-7B7B-4623-A479-ACA945B5C7F7"
outputDeviceUID: "2426430A-BAA6-43F6-88D8-0FD82B7E9FE3"
}
uniqueIdentifier: "E98B516E-1CE5-4CB6-8686-ECE7106149D0"
2024-01-01 00:33:42 DEBUG [pyatv.core.protocol]: Dispatching message with type 64 to <bound method MrpAudio._volume_control_changed of <pyatv.protocols.mrp.MrpAudio object at 0xffff7b70ad50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_DEFAULT_SUPPORTED_COMMANDS_MESSAGE
[setDefaultSupportedCommandsMessage] {
supportedCommands {
supportedCommands {
command: PreloadedPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.5.opack:subscription:cloudLibrary:7776798"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:7776798"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:7776798"
}
supportedCommands {
command: SetPlaybackSession
enabled: true
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.5.opack:subscription:cloudLibrary:7776798"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v4.opack:subscription:cloudLibrary:7776798"
supportedPlaybackSessionTypes: "com.apple.MediaPlaybackCore.playbackSession-v3.opack:subscription:cloudLibrary:7776798"
}
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: Play
enabled: true
}
}
displayID: "com.apple.TVMusic"
playbackQueueCapabilities {
}
playerPath {
client {
bundleIdentifier: "com.apple.TVMusic"
}
}
}
uniqueIdentifier: "45B55E84-FB5E-4CED-A52A-BFC84429BD9C"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 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: "E3EB52D8-90CA-4004-A452-69990DF59104"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: ORIGIN_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "46673A21-6F61-465E-9DF7-682FA685C7C1"
[originClientPropertiesMessage] {
lastPlayingTimestamp: 725762022.015292
2: "30E229F8-A0F7-4948-9BB7-0EB5D25394AE"
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_NOW_PLAYING_CLIENT_MESSAGE
[setNowPlayingClientMessage] {
client {
processIdentifier: 3494
bundleIdentifier: "com.google.ios.youtube"
}
}
uniqueIdentifier: "ED043321-33A6-4C1E-8D10-E68A56CC05E2"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_CLIENT_MESSAGE
[updateClientMessage] {
client {
processIdentifier: 3089
bundleIdentifier: "com.timewarnercable.simulcast"
processUserIdentifier: 501
displayName: "Spectrum TV"
}
}
uniqueIdentifier: "E6E6E652-D3C4-43E9-A2A7-3F3E825575E7"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
displayName: "Spectrum TV"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3089
bundleIdentifier: "com.timewarnercable.simulcast"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
audioSessionID: 0
}
}
playbackStateTimestamp: 725504413.816145
}
uniqueIdentifier: "C80F326C-89B1-4779-BB40-33B6AD84D2F1"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "B7987FC7-FFE3-4062-9123-21952767BB50"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3089
bundleIdentifier: "com.timewarnercable.simulcast"
processUserIdentifier: 501
displayName: "Spectrum TV"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
audioSessionID: 0
}
}
lastPlayingTimestamp: -63114076800.0
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_CLIENT_MESSAGE
[updateClientMessage] {
client {
processIdentifier: 3019
bundleIdentifier: "com.peacocktv.peacock"
processUserIdentifier: 501
displayName: "Peacock"
}
}
uniqueIdentifier: "7F04FE11-98B1-49B7-A364-A5885E67316B"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
playbackQueue {
location: 0
contentItems {
identifier: "CF57060F-A00E-4EDC-B889-16F935461443"
metadata {
artworkAvailable: false
elapsedTime: 881.632373834
playbackRate: 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: 725469721.617766
}
}
}
displayName: "Peacock"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3019
bundleIdentifier: "com.peacocktv.peacock"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
audioSessionID: 0
}
}
playbackStateTimestamp: 725469721.386787
}
uniqueIdentifier: "638C8AAD-965B-4B24-86D6-12D1A021FEAC"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "0C277284-2247-44E1-9AC1-B3A95F842CE8"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3019
bundleIdentifier: "com.peacocktv.peacock"
processUserIdentifier: 501
displayName: "Peacock"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
audioSessionID: 0
}
}
lastPlayingTimestamp: 725469721.38683
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_CLIENT_MESSAGE
[updateClientMessage] {
client {
processIdentifier: 219
bundleIdentifier: "com.apple.TVAirPlay"
processUserIdentifier: 501
displayName: "Safari"
bundleIdentifierHierarchys: "com.apple.WebKit.GPU"
bundleIdentifierHierarchys: "com.apple.mobilesafari"
}
}
uniqueIdentifier: "896D8695-C809-459E-AD11-B8FD0E26195F"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
displayName: "Safari"
playbackState: Stopped
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 219
bundleIdentifier: "com.apple.TVAirPlay"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
audioSessionID: 0
}
}
playbackStateTimestamp: 725052188.535534
}
uniqueIdentifier: "FB2EEE16-139E-4548-9FD7-E5C287C8A906"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "44FD09E0-D306-462A-B261-6F61F2C965F6"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 219
bundleIdentifier: "com.apple.TVAirPlay"
processUserIdentifier: 501
displayName: "Safari"
bundleIdentifierHierarchys: "com.apple.WebKit.GPU"
bundleIdentifierHierarchys: "com.apple.mobilesafari"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
audioSessionID: 0
}
}
lastPlayingTimestamp: 725052188.536239
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_CLIENT_MESSAGE
[updateClientMessage] {
client {
processIdentifier: 3494
bundleIdentifier: "com.google.ios.youtube"
processUserIdentifier: 501
displayName: "YouTube"
}
}
uniqueIdentifier: "B8BE65E0-626B-4696-8B68-CFA95150D9A3"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
supportedCommands {
supportedCommands {
command: SeekToPlaybackPosition
enabled: true
canScrub: 0
}
supportedCommands {
command: SkipBackward
enabled: true
preferredIntervals: 10.0
}
supportedCommands {
command: SkipForward
enabled: true
preferredIntervals: 10.0
}
supportedCommands {
command: PreviousTrack
enabled: true
}
supportedCommands {
command: NextTrack
enabled: true
}
supportedCommands {
command: Pause
enabled: true
}
supportedCommands {
command: Play
}
}
playbackQueue {
location: 0
contentItems {
identifier: "3381A539-AF94-4E2B-936C-E6DAD2C3F963"
metadata {
title: "Batting Practice 101: How to get the most out of your BP | USA / ASA / USSSA Slowpitch Softball"
albumName: ""
trackArtistName: "League Night Softball"
duration: 912.060974
artworkAvailable: false
elapsedTime: 154.246003
playbackRate: 1.0
nowPlayingInfoData: "bplist00\324\001\002\003\004\005\006\007\nX$versionY$archiverT$topX$objects\022\000\001\206\240_\020\017NSKeyedArchive...
elapsedTimeTimestamp: 725761902.568633
inferredTimestamp: 725761902.569027
}
}
}
displayName: "YouTube"
playbackState: Playing
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3494
bundleIdentifier: "com.google.ios.youtube"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
audioSessionID: 0
}
}
playbackStateTimestamp: 725761903.354101
}
uniqueIdentifier: "FC3BC24F-C289-4F99-82A2-37FF27559EC9"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "0D717D77-2701-44FB-83ED-3DCFA6AE47D7"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3494
bundleIdentifier: "com.google.ios.youtube"
processUserIdentifier: 501
displayName: "YouTube"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
audioSessionID: 0
}
}
lastPlayingTimestamp: 725761901.217041
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_CLIENT_MESSAGE
[updateClientMessage] {
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
processUserIdentifier: 501
displayName: "Computers"
}
}
uniqueIdentifier: "8391A5D6-A369-4F0D-8AAA-0468A415E23B"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
displayName: "Computers"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
audioSessionID: 0
}
}
playbackStateTimestamp: 725500140.697533
}
uniqueIdentifier: "19FCC1EE-8A91-4964-A56C-65DAE8587111"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "04D826DF-A150-474C-8C96-FA472052B7A8"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
processUserIdentifier: 501
displayName: "Computers"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
audioSessionID: 0
}
}
lastPlayingTimestamp: -63114076800.0
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
displayName: "Computers"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "avkit-BEA74B58-DA15-4604-BECE-7B2AB78E600B"
displayName: "player-1"
audioSessionID: 0
}
}
playbackStateTimestamp: 725504359.785678
}
uniqueIdentifier: "E19CB533-551B-4202-9840-CE654A130FC7"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "30B9AECC-F5BC-482F-8E66-D5DD5185FE17"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
processUserIdentifier: 501
displayName: "Computers"
}
player {
identifier: "avkit-BEA74B58-DA15-4604-BECE-7B2AB78E600B"
displayName: "player-1"
mxSessionIDs: 3154
audioSessionID: 0
}
}
lastPlayingTimestamp: -63114076800.0
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE
[updatePlayerMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "avkit-BEA74B58-DA15-4604-BECE-7B2AB78E600B"
displayName: "player-1"
mxSessionIDs: 3154
audioSessionID: 0
}
}
}
uniqueIdentifier: "38B915FA-A532-4F97-882E-8BE0917E3AC0"
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
displayName: "Computers"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "avkit-639D1AAC-F5BE-47B8-857C-746F97B871F3"
displayName: "player-2"
audioSessionID: 0
}
}
playbackStateTimestamp: 725512877.471882
}
uniqueIdentifier: "64E48C4C-932E-4BBF-A0B3-31423E7006D3"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "90AB6E53-2FE5-43CC-93FA-A6AEEDA8B90F"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
processUserIdentifier: 501
displayName: "Computers"
}
player {
identifier: "avkit-639D1AAC-F5BE-47B8-857C-746F97B871F3"
displayName: "player-2"
mxSessionIDs: 3163
audioSessionID: 0
}
}
lastPlayingTimestamp: -63114076800.0
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE
[updatePlayerMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "avkit-639D1AAC-F5BE-47B8-857C-746F97B871F3"
displayName: "player-2"
mxSessionIDs: 3163
audioSessionID: 0
}
}
}
uniqueIdentifier: "9D3981F6-2685-4FAA-A018-C8EF38F9816C"
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
displayName: "Computers"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "avkit-E366283A-1DB7-4B8C-A8AB-BD54AA8BCE9F"
displayName: "player-3"
audioSessionID: 0
}
}
playbackStateTimestamp: 725583983.557488
}
uniqueIdentifier: "DB4E5820-50F9-4C0A-98CD-722A7E253023"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "7ED5F44C-2DFA-4138-B501-E0F77E9EC549"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
processUserIdentifier: 501
displayName: "Computers"
}
player {
identifier: "avkit-E366283A-1DB7-4B8C-A8AB-BD54AA8BCE9F"
displayName: "player-3"
mxSessionIDs: 3216
audioSessionID: 0
}
}
lastPlayingTimestamp: -63114076800.0
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE
[updatePlayerMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "avkit-E366283A-1DB7-4B8C-A8AB-BD54AA8BCE9F"
displayName: "player-3"
mxSessionIDs: 3216
audioSessionID: 0
}
}
}
uniqueIdentifier: "06C63BFA-A13D-41D9-8387-E96995D6027C"
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
displayName: "Computers"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "avkit-92721F94-B50B-494C-B308-99324EEF719E"
displayName: "player-4"
audioSessionID: 0
}
}
playbackStateTimestamp: 725586687.775786
}
uniqueIdentifier: "394AD921-1B02-4778-9015-E07C348A3AE5"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "18B1FFF8-C1A1-4816-A335-EF9B12FF735B"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
processUserIdentifier: 501
displayName: "Computers"
}
player {
identifier: "avkit-92721F94-B50B-494C-B308-99324EEF719E"
displayName: "player-4"
mxSessionIDs: 3218
audioSessionID: 0
}
}
lastPlayingTimestamp: -63114076800.0
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE
[updatePlayerMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "avkit-92721F94-B50B-494C-B308-99324EEF719E"
displayName: "player-4"
mxSessionIDs: 3218
audioSessionID: 0
}
}
}
uniqueIdentifier: "C1C8FF61-C2B1-474C-A41B-545B56F8D7BB"
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
displayName: "Computers"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "avkit-C20C3806-249E-4CF7-88F1-426E11087689"
displayName: "player-5"
audioSessionID: 0
}
}
playbackStateTimestamp: 725589261.689165
}
uniqueIdentifier: "0FF7A296-B018-4ED0-A56A-9C48B3D6C80B"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "1689E776-C440-43CD-8FE0-B53BB5F0B9F1"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
processUserIdentifier: 501
displayName: "Computers"
}
player {
identifier: "avkit-C20C3806-249E-4CF7-88F1-426E11087689"
displayName: "player-5"
mxSessionIDs: 3220
audioSessionID: 0
}
}
lastPlayingTimestamp: -63114076800.0
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE
[updatePlayerMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "avkit-C20C3806-249E-4CF7-88F1-426E11087689"
displayName: "player-5"
mxSessionIDs: 3220
audioSessionID: 0
}
}
}
uniqueIdentifier: "C8990C7B-456E-4AA3-8B09-A357B3ABE9CB"
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
displayName: "Computers"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "avkit-B0914670-B5FF-4286-9988-927F344A7812"
displayName: "player-6"
audioSessionID: 0
}
}
playbackStateTimestamp: 725592125.571033
}
uniqueIdentifier: "5F82142E-2434-40A7-997A-77C1E4042E20"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "CE8A9B16-5C34-400B-BFF6-016000E34404"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
processUserIdentifier: 501
displayName: "Computers"
}
player {
identifier: "avkit-B0914670-B5FF-4286-9988-927F344A7812"
displayName: "player-6"
mxSessionIDs: 3222
audioSessionID: 0
}
}
lastPlayingTimestamp: -63114076800.0
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE
[updatePlayerMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "avkit-B0914670-B5FF-4286-9988-927F344A7812"
displayName: "player-6"
mxSessionIDs: 3222
audioSessionID: 0
}
}
}
uniqueIdentifier: "895B15A3-C8B0-499C-A6D8-E9EEFEFF5AAF"
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
displayName: "Computers"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "avkit-94CF20DD-B67E-4B4F-97E8-97BD038A2E61"
displayName: "player-7"
audioSessionID: 0
}
}
playbackStateTimestamp: 725596260.233513
}
uniqueIdentifier: "9540B56C-9AB5-4C99-B70B-208C8554A23D"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "167CBE74-15CD-47F3-9ACB-548E1EFBC8E0"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
processUserIdentifier: 501
displayName: "Computers"
}
player {
identifier: "avkit-94CF20DD-B67E-4B4F-97E8-97BD038A2E61"
displayName: "player-7"
mxSessionIDs: 3224
audioSessionID: 0
}
}
lastPlayingTimestamp: -63114076800.0
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE
[updatePlayerMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "avkit-94CF20DD-B67E-4B4F-97E8-97BD038A2E61"
displayName: "player-7"
mxSessionIDs: 3224
audioSessionID: 0
}
}
}
uniqueIdentifier: "443E12A2-BDAA-43F3-BF2E-E08A8F6C9BF9"
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
displayName: "Computers"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "avkit-3667299D-C584-47EE-8156-E0726A8C662C"
displayName: "player-8"
audioSessionID: 0
}
}
playbackStateTimestamp: 725653058.862825
}
uniqueIdentifier: "8FBAF9FE-EC4C-45BB-90E9-DBC98E4D0D85"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "2DDF366F-9301-460D-9158-66670F2D6F95"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
processUserIdentifier: 501
displayName: "Computers"
}
player {
identifier: "avkit-3667299D-C584-47EE-8156-E0726A8C662C"
displayName: "player-8"
mxSessionIDs: 3264
audioSessionID: 0
}
}
lastPlayingTimestamp: -63114076800.0
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE
[updatePlayerMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "avkit-3667299D-C584-47EE-8156-E0726A8C662C"
displayName: "player-8"
mxSessionIDs: 3264
audioSessionID: 0
}
}
}
uniqueIdentifier: "F7AAAC48-06AD-4E22-9966-F20D9C08C42F"
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
displayName: "Computers"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "avkit-94AC5ECB-9B85-4893-82BA-D796FCB74AA1"
displayName: "player-9"
audioSessionID: 0
}
}
playbackStateTimestamp: 725655791.551198
}
uniqueIdentifier: "0790CBED-D262-46B5-A43B-B5BAD8420642"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "AC7E825F-5CC7-482D-89FD-11C0202401DF"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
processUserIdentifier: 501
displayName: "Computers"
}
player {
identifier: "avkit-94AC5ECB-9B85-4893-82BA-D796FCB74AA1"
displayName: "player-9"
mxSessionIDs: 3266
audioSessionID: 0
}
}
lastPlayingTimestamp: -63114076800.0
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE
[updatePlayerMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3074
bundleIdentifier: "com.apple.TVHomeSharing"
}
player {
identifier: "avkit-94AC5ECB-9B85-4893-82BA-D796FCB74AA1"
displayName: "player-9"
mxSessionIDs: 3266
audioSessionID: 0
}
}
}
uniqueIdentifier: "4F9E9D48-B9DB-41F3-B3BC-1C8A2BB369D3"
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_CLIENT_MESSAGE
[updateClientMessage] {
client {
processIdentifier: 3084
bundleIdentifier: "com.apple.TVWatchList"
processUserIdentifier: 501
displayName: "TV"
}
}
uniqueIdentifier: "CB44D4F7-95A3-4409-80B5-27047C94EB13"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
supportedCommands {
supportedCommands {
command: PlayItemInPlaybackQueue
enabled: true
}
supportedCommands {
command: ReorderPlaybackQueue
enabled: true
}
supportedCommands {
command: RemoveFromPlaybackQueue
enabled: true
}
supportedCommands {
command: PreviousInContext
enabled: true
}
supportedCommands {
command: NextInContext
enabled: true
}
supportedCommands {
command: DisableLanguageOption
enabled: true
}
supportedCommands {
command: EnableLanguageOption
enabled: true
}
supportedCommands {
command: ChangeShuffleMode
shuffleMode: Off
}
supportedCommands {
command: ChangeRepeatMode
repeatMode: Off
}
supportedCommands {
command: SeekToPlaybackPosition
enabled: true
canScrub: 0
}
supportedCommands {
command: ChangePlaybackRate
enabled: true
}
supportedCommands {
command: SkipBackward
enabled: true
preferredIntervals: 10.0
}
supportedCommands {
command: SkipForward
enabled: true
preferredIntervals: 10.0
}
supportedCommands {
command: BeginRewind
enabled: true
}
supportedCommands {
command: EndRewind
enabled: true
}
supportedCommands {
command: BeginFastForward
enabled: true
}
supportedCommands {
command: EndFastForward
enabled: true
}
supportedCommands {
command: AdvanceRepeatMode
repeatMode: Off
}
supportedCommands {
command: AdvanceShuffleMode
shuffleMode: Off
}
supportedCommands {
command: PreviousTrack
}
supportedCommands {
command: NextTrack
}
supportedCommands {
command: Stop
enabled: true
}
supportedCommands {
command: TogglePlayPause
enabled: true
}
supportedCommands {
command: Pause
enabled: true
}
supportedCommands {
command: Play
enabled: true
}
}
playbackQueue {
location: 0
contentItems {
identifier: "BFDF9970-9649-42AA-8EE1-B5DA079C8250"
metadata {
title: "The Morning Show"
duration: 39.205
localizedContentRating: "TV_MA"
elapsedTime: 0.0
genre: "Drama"
isAlwaysLive: false
playbackRate: 0.0
totalTrackCount: 1
trackNumber: 1
iTunesStoreIdentifier: 1707232631
nowPlayingInfoData: "bplist00\324\001\002\003\004\005\006\007\nX$versionY$archiverT$topX$objects\022\000\001\206\240_\020\017NSKeyedArchive...
elapsedTimeTimestamp: 725743053.953036
}
}
}
displayName: "TV"
playbackState: Paused
playbackQueueCapabilities {
requestByRange: true
requestByIdentifiers: true
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3084
bundleIdentifier: "com.apple.TVWatchList"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
audioSessionID: 0
}
}
playbackStateTimestamp: 725667557.750404
}
uniqueIdentifier: "288F2E7A-8530-4B96-BB36-84227175079A"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "1114508F-21E4-480F-9BCA-10CCE65226B0"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3084
bundleIdentifier: "com.apple.TVWatchList"
processUserIdentifier: 501
displayName: "TV"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
audioSessionID: 0
}
}
lastPlayingTimestamp: 725667557.750457
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
displayName: "TV"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3084
bundleIdentifier: "com.apple.TVWatchList"
}
player {
identifier: "avkit-3A60F985-2303-43A4-9A1F-5705CF22F4E0"
displayName: "player-1"
audioSessionID: 0
}
}
playbackStateTimestamp: 725582724.97281
}
uniqueIdentifier: "CEC06432-C42B-4244-A503-116115A276F0"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "13F26DE2-01ED-48EB-8230-69C7AB94BA89"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3084
bundleIdentifier: "com.apple.TVWatchList"
processUserIdentifier: 501
displayName: "TV"
}
player {
identifier: "avkit-3A60F985-2303-43A4-9A1F-5705CF22F4E0"
displayName: "player-1"
mxSessionIDs: 3208
audioSessionID: 0
}
}
lastPlayingTimestamp: -63114076800.0
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE
[updatePlayerMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3084
bundleIdentifier: "com.apple.TVWatchList"
}
player {
identifier: "avkit-3A60F985-2303-43A4-9A1F-5705CF22F4E0"
displayName: "player-1"
mxSessionIDs: 3208
audioSessionID: 0
}
}
}
uniqueIdentifier: "CDE4CC42-CEB5-417E-AD45-78F9DA2D7010"
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
displayName: "TV"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3084
bundleIdentifier: "com.apple.TVWatchList"
}
player {
identifier: "avkit-6EB3659D-52AF-4A33-BB77-01CDC9B6843A"
displayName: "player-2"
audioSessionID: 0
}
}
playbackStateTimestamp: 725667557.955424
}
uniqueIdentifier: "1C3DBF76-2EF0-4A44-9366-8975710BEBE5"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "1DAA9658-D15B-4692-9B48-1B337B49028C"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3084
bundleIdentifier: "com.apple.TVWatchList"
processUserIdentifier: 501
displayName: "TV"
}
player {
identifier: "avkit-6EB3659D-52AF-4A33-BB77-01CDC9B6843A"
displayName: "player-2"
mxSessionIDs: 3279
audioSessionID: 0
}
}
lastPlayingTimestamp: -63114076800.0
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE
[updatePlayerMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3084
bundleIdentifier: "com.apple.TVWatchList"
}
player {
identifier: "avkit-6EB3659D-52AF-4A33-BB77-01CDC9B6843A"
displayName: "player-2"
mxSessionIDs: 3279
audioSessionID: 0
}
}
}
uniqueIdentifier: "94F672E0-C5B1-4583-A738-CD441A3EB98C"
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
displayName: "TV"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3084
bundleIdentifier: "com.apple.TVWatchList"
}
player {
identifier: "avkit-C06E8951-FE00-41BD-BF4A-9C7E76D4C14B"
displayName: "player-3"
audioSessionID: 0
}
}
playbackStateTimestamp: 725739846.343529
}
uniqueIdentifier: "9DAEDE66-9146-46D9-A119-97BE6B0FD868"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "77738B57-EEA4-47DC-92B0-A9809815403F"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3084
bundleIdentifier: "com.apple.TVWatchList"
processUserIdentifier: 501
displayName: "TV"
}
player {
identifier: "avkit-C06E8951-FE00-41BD-BF4A-9C7E76D4C14B"
displayName: "player-3"
mxSessionIDs: 3294
audioSessionID: 0
}
}
lastPlayingTimestamp: -63114076800.0
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE
[updatePlayerMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3084
bundleIdentifier: "com.apple.TVWatchList"
}
player {
identifier: "avkit-C06E8951-FE00-41BD-BF4A-9C7E76D4C14B"
displayName: "player-3"
mxSessionIDs: 3294
audioSessionID: 0
}
}
}
uniqueIdentifier: "57772257-40E7-4828-B7B4-B9D50FEA1B16"
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
displayName: "TV"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3084
bundleIdentifier: "com.apple.TVWatchList"
}
player {
identifier: "avkit-C254264A-03B2-4E56-B9E2-9B046E2BFA44"
displayName: "player-4"
audioSessionID: 0
}
}
playbackStateTimestamp: 725743054.156761
}
uniqueIdentifier: "F3A5CBAE-1B40-46C0-A5DB-C64C8F802899"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "05A547AD-7F33-43C5-8318-14DF2CB64963"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3084
bundleIdentifier: "com.apple.TVWatchList"
processUserIdentifier: 501
displayName: "TV"
}
player {
identifier: "avkit-C254264A-03B2-4E56-B9E2-9B046E2BFA44"
displayName: "player-4"
mxSessionIDs: 3344
audioSessionID: 0
}
}
lastPlayingTimestamp: -63114076800.0
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_PLAYER_MESSAGE
[updatePlayerMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3084
bundleIdentifier: "com.apple.TVWatchList"
}
player {
identifier: "avkit-C254264A-03B2-4E56-B9E2-9B046E2BFA44"
displayName: "player-4"
mxSessionIDs: 3344
audioSessionID: 0
}
}
}
uniqueIdentifier: "317C1BAC-CE05-4ED1-B80A-9485BAD604D2"
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_CLIENT_MESSAGE
[updateClientMessage] {
client {
processIdentifier: 3502
bundleIdentifier: "com.nfl.gamecenter"
processUserIdentifier: 501
displayName: "NFL"
}
}
uniqueIdentifier: "F04E508F-CA8C-4E47-94E2-C46C06110F81"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
supportedCommands {
supportedCommands {
command: SeekToPlaybackPosition
canScrub: 0
}
supportedCommands {
command: SkipBackward
preferredIntervals: 15.0
}
supportedCommands {
command: SkipForward
preferredIntervals: 15.0
}
supportedCommands {
command: Stop
enabled: true
}
supportedCommands {
command: TogglePlayPause
enabled: true
}
supportedCommands {
command: Pause
enabled: true
}
supportedCommands {
command: Play
enabled: true
}
}
playbackQueue {
location: 0
contentItems {
identifier: "ekxV0ubcywG8Sgo7NVZPaw"
metadata {
title: "Atlanta Falcons at Chicago Bears"
trackArtistName: "NFL"
duration: 0.0
artworkAvailable: false
elapsedTime: 0.0
isAlwaysLive: true
playbackRate: 1.0
contentIdentifier: "ekxV0ubcywG8Sgo7NVZPaw"
mediaType: Video
mediaSubType: UnknownMediaSubType
nowPlayingInfoData: "bplist00\324\001\002\003\004\005\006\007\nX$versionY$archiverT$topX$objects\022\000\001\206\240_\020\017NSKeyedArchive...
elapsedTimeTimestamp: 725750294.579891
inferredTimestamp: 725749108.941243
}
}
}
displayName: "NFL"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3502
bundleIdentifier: "com.nfl.gamecenter"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
audioSessionID: 0
}
}
playbackStateTimestamp: 725750297.767608
}
uniqueIdentifier: "756645F5-E5FC-4A6C-B282-F81A0D23445A"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "9C88A3ED-F33D-45F4-BCF9-738E3F940A56"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3502
bundleIdentifier: "com.nfl.gamecenter"
processUserIdentifier: 501
displayName: "NFL"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
audioSessionID: 0
}
}
lastPlayingTimestamp: 725750297.767662
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UPDATE_CLIENT_MESSAGE
[updateClientMessage] {
client {
processIdentifier: 3365
bundleIdentifier: "com.hulu.plus"
processUserIdentifier: 501
displayName: "Hulu"
}
}
uniqueIdentifier: "5F7A9841-A117-459E-8806-FB1648D32BF8"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: SET_STATE_MESSAGE
[setStateMessage] {
displayName: "Hulu"
playbackState: Paused
playbackQueueCapabilities {
}
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
}
client {
processIdentifier: 3365
bundleIdentifier: "com.hulu.plus"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
audioSessionID: 0
}
}
playbackStateTimestamp: 725667885.660047
}
uniqueIdentifier: "1DB8F53B-BAF7-4F6F-8946-46EF2AD87CFB"
2024-01-01 00:33:42 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 0xffff7b936c50>>
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: PLAYER_CLIENT_PROPERTIES_MESSAGE
uniqueIdentifier: "9CC40E1B-2F6B-4621-ADAE-894FC6B4DD96"
[playerClientPropertiesMessage] {
playerPath {
origin {
displayName: "Apple\302\240TV"
identifier: 1280262988
isLocallyHosted: true
}
client {
processIdentifier: 3365
bundleIdentifier: "com.hulu.plus"
processUserIdentifier: 501
displayName: "Hulu"
}
player {
identifier: "MediaRemote-DefaultPlayer"
displayName: "Default Player"
audioSessionID: 0
}
}
lastPlayingTimestamp: -63114076800.0
}
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: UNKNOWN_MESSAGE
identifier: "31556D0A-7203-46E7-B0AE-345FD1E1FB49"
uniqueIdentifier: "B5FEC57A-ED37-408E-A8AD-BF95573B8292"
2024-01-01 00:33:42 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=2000f5e36a1850e0933f60d6454d7547da9fc5bed355e15c5b056d7b18a8f8519c849ce6e850be03b7c3ba66f11c6419da3e)
2024-01-01 00:33:42 DEBUG [pyatv.protocols.mrp]: Volume control availability changed to True
2024-01-01 00:33:42 DEBUG [pyatv.protocols.mrp]: Volume control availability changed to True
2024-01-01 00:33:42 DEBUG [pyatv.protocols.mrp.player_state]: Active client is now com.google.ios.youtube
2024-01-01 00:33:42 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=b400bde89ccea3edc9453b27014f84444641904482d3b3187883db04834ae23a0cba459100ef2c88b8517d9f4b611e570dc664fd8cce3eefea5f4d71fe635afdb1531f334207ddd651141a59fc211d4b2b69c45633be1108d7a4086c4d261811c1b00a526265207927e95be076cb4f8ae0900a63f2f4e52f223cfdde503234b694b72c1891f9e1fa649a14754ef03e4557d6d1f01c7cd31e6ebe891afda910f33c06474b15a40fca174780f3bca2ea8278f5a9cefef13754867b6acecfc9dc43d29cee4175f2)
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: >> Send: Protobuf: type: GET_KEYBOARD_SESSION_MESSAGE
identifier: "00E278E7-B16E-4D3A-BE7A-A8C926DD5121"
errorCode: NoError
uniqueIdentifier: "2E60E49A-3D72-4CBF-8658-249577BFFE74"
2024-01-01 00:33:42 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2000dc43b31ebc42446a2142123fd774e40b53a62bdc58f52af4ff7c7d06b6a9da9b78b9d970424403c11973fdaf28ac19822a00397c5ee208b277704fb526ae3cd86edfcbf12b8ab7823cadc75f8a1d4db5a9f93f83607155cba4eee35035f22defbf724425fabe71454a58ca53)
2024-01-01 00:33:42 DEBUG [pyatv.auth.hap_channel]: Received data (Data=2000e152368360542f1e70d9e2ea12f5d10633feb730caaa4471e0f421926736ef48b4776874f3c1d4869eccc14e8224af6ea900ccffc05b327d47dac84cd13e00b19f996ac226ca48fe13d65c52213a3e9e9999fd6cf9fe6f3a7f07e871fe25e669b400d39a6458cae6aed128110d90a67700411da8ebeee3591fe1976423cd145c404b43c048023252334431d9f4024682690895df2f502f9a877a454a95c52c4c086333580bd0c7d5a91d331044c434fd28bfba7f2b89286636e34b4eb821116c8aec1afa5291149c6b6b8829d74160827491f9bf280c5f9fa3d6ef7564af2651755db341e1f5c7631055af)
2024-01-01 00:33:42 DEBUG [pyatv.protocols.airplay.mrp_connection]: << Receive: Protobuf: type: KEYBOARD_MESSAGE
identifier: "00E278E7-B16E-4D3A-BE7A-A8C926DD5121"
[keyboardMessage] {
state: Unknown
attributes {
inputTraits {
autocapitalizationType: None
keyboardType: Default
returnKeyType: Default
enablesReturnKeyAutomatically: false
secureTextEntry: false
validTextRangeLocation: 0
validTextRangeLength: 0
}
}
}
uniqueIdentifier: "D22E96CF-F990-45CF-A731-CCA1426EE7C7"
2024-01-01 00:33:42 DEBUG [pyatv.auth.hap_channel]: Sending data (Encrypted=200096486148ec9c2520fb66d6471c9bde806ed01f797611e30b7166b219664972f82748d38719b9b7513fbcf487db66ae8b)
2024-01-01 00:33:42 DEBUG [pyatv.core.facade]: Connected to protocol: Protocol.MRP
2024-01-01 00:33:42 DEBUG [pyatv.core.facade]: Protocol Protocol.MRP already set up, ignoring
2024-01-01 00:33:42 DEBUG [pyatv.core.facade]: Connecting to protocol: Protocol.RAOP
2024-01-01 00:33:42 DEBUG [pyatv.core.facade]: Connected to protocol: Protocol.RAOP
Press ENTER to stop
Media type: Unknown
Device state: Playing
Title: Batting Practice 101: How to get the most out of your BP | USA / ASA / USSSA Slowpitch Softball
Artist: League Night Softball
Album:
Position: 273/912s (29.9%)
Repeat: Off
Shuffle: Off
--------------------
2024-01-01 00:33:43 DEBUG [pyatv.core.protocol]: Sending periodic heartbeat 0 (AirPlay:192.168.100.17)
2024-01-01 00:33:43 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'POST /feedback RTSP/1.0\r\nUser-Agent: AirPlay/550.10\r\nCSeq: 3\r\nDACP-ID: EFD38294A0B0FD06\r\nActive-Remote: 975508575\r\nClient-Instance: EFD38294A0B0FD06\r\n\r\n'
2024-01-01 00:33:43 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Mon, 01 Jan 2024 00:33:43 GMT\r\nContent-Length: 55\r\nContent-Type: application/x-apple-binary-plist\r\nServer: AirTunes/750.14.2\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'
2024-01-01 00:33:43 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'Date': 'Mon, 01 Jan 2024 00:33:43 GMT', 'Content-Length': '55', 'Content-Type': 'application/x-apple-binary-plist', 'Server': 'AirTunes/750.14.2', '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'):
2024-01-01 00:33:43 DEBUG [pyatv.core.protocol]: Got heartbeat 0 (AirPlay:192.168.100.17)
2024-01-01 00:33:45 DEBUG [pyatv.core.protocol]: Sending periodic heartbeat 1 (AirPlay:192.168.100.17)
2024-01-01 00:33:45 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'POST /feedback RTSP/1.0\r\nUser-Agent: AirPlay/550.10\r\nCSeq: 4\r\nDACP-ID: EFD38294A0B0FD06\r\nActive-Remote: 975508575\r\nClient-Instance: EFD38294A0B0FD06\r\n\r\n'
2024-01-01 00:33:45 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Mon, 01 Jan 2024 00:33:45 GMT\r\nContent-Length: 55\r\nContent-Type: application/x-apple-binary-plist\r\nServer: AirTunes/750.14.2\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'
2024-01-01 00:33:45 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'Date': 'Mon, 01 Jan 2024 00:33:45 GMT', 'Content-Length': '55', 'Content-Type': 'application/x-apple-binary-plist', 'Server': 'AirTunes/750.14.2', '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'):
2024-01-01 00:33:45 DEBUG [pyatv.core.protocol]: Got heartbeat 1 (AirPlay:192.168.100.17)
2024-01-01 00:33:47 DEBUG [pyatv.core.protocol]: Sending periodic heartbeat 2 (AirPlay:192.168.100.17)
2024-01-01 00:33:47 DEBUG [pyatv.support.http]: Sending RTSP/1.0 message: b'POST /feedback RTSP/1.0\r\nUser-Agent: AirPlay/550.10\r\nCSeq: 5\r\nDACP-ID: EFD38294A0B0FD06\r\nActive-Remote: 975508575\r\nClient-Instance: EFD38294A0B0FD06\r\n\r\n'
2024-01-01 00:33:47 DEBUG [pyatv.support.http]: Received: b'RTSP/1.0 200 OK\r\nDate: Mon, 01 Jan 2024 00:33:47 GMT\r\nContent-Length: 55\r\nContent-Type: application/x-apple-binary-plist\r\nServer: AirTunes/750.14.2\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'
2024-01-01 00:33:47 DEBUG [pyatv.support.http]: Got RTSP response: HttpResponse(protocol='RTSP', version='1.0', code=200, message='OK', headers={'Date': 'Mon, 01 Jan 2024 00:33:47 GMT', 'Content-Length': '55', 'Content-Type': 'application/x-apple-binary-plist', 'Server': 'AirTunes/750.14.2', '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'):
2024-01-01 00:33:47 DEBUG [pyatv.core.protocol]: Got heartbeat 2 (AirPlay:192.168.100.17)
appletv/appletv-theater/status/position 285
appletv/appletv-theater/status/position 286
appletv/appletv-theater/status/position 287
appletv/appletv-theater/status/position 288
appletv/appletv-theater/status/position 289
appletv/appletv-theater/status/position 290
appletv/appletv-theater/status/position 386 <<< paused, this is the correct position
appletv/appletv-theater/status/position 291
appletv/appletv-theater/status/position 292
appletv/appletv-theater/status/position 293
appletv/appletv-theater/status/position 389 <<< paused, this is the correct position
OK, this is weird. I have something useful to report here.
When I run my script on a Mac, it works. If I run it on a Linux host, it has this bad behavior as reported here.
Describe the bug
This seems to be new with the 17.2 version of tvOS...
When I poll every second in a loop, using:
I am getting 0 for position for the first minute or minute and a half (it varies) and then position is off by that amount of time - it starts counting from 0, 1, 2, ... after the first minute/minute and a half.
However, if I do this, the position value is correct:
push_updates prints once and hangs
The position 694/732 is correct in this case.
If I pause and play on the remote, it updates the position with correct values.
Error log
See below
How to reproduce the bug?
Call metadata.playing() in a loop with a delay of 1 second between, print the position.
This fails with YouTube and Computers (playing over LAN from shared library), Netflix, etc.
What is expected behavior?
When the video starts playing, position should immediately start at 1 and each second increment by 1.
Operating System
MacOS and Linux
Python
3.6
pyatv
whatever is installed when I pip3 install pyatv
Device
Apple TV OS 17.2
Additional context
This happens on all my ATVs, of various generations. I have one from previous generation, and one from the year before that exhibit the problem for sure.