DavidBerdik / YouTube-Stream-Repeater

A lightweight server for repeating audio and video streams from YouTube.
Mozilla Public License 2.0
3 stars 5 forks source link

alexa dont play audio, device playback error, type MEDIA_ERROR_UNKNOWN #3

Closed justinh998 closed 7 months ago

justinh998 commented 9 months ago

Hello, I hope someone can help me here. I'm currently quite desperate as I've been dealing with this problem for about 4 weeks. I have this server (youtube-stream-repeater) running in Docker, and it seems to be working fine. For example, when I access https://isseutestgithub.youtube-music-alexa-test.de:4000/dl/ymNFyxvIdaM?f=bestaudio, I get a downloadable file that can be played. However, AWS keeps giving me this error all the time: {'message': 'Device playback error', 'type': 'MEDIA_ERROR_UNKNOWN'}. Is it possible that AWS/Alexa cannot handle the fact that it's not receiving a direct stream (like in pytube for example an pytube link : pytube link ? If there are issues with this, have there been numerous issues reported here, or are people modifying their code accordingly? Here is my code that I changed; everything else corresponds to the current version from wes1993.

def get_url_and_title_youtubestream(id, retry=True):
    logger.info(f'Getting YouTubeStream URL for https://www.youtube.com/watch?v={id}')

    if 'ytstreamurl' in environ:
        # url = "https://" + environ['ytstreamurl'] + "/meta/" + id
        # response = requests.request("GET", url, timeout=8)
        # json_decode = response.json()
        # try:
        #     first_stream = json_decode['title']
        # except KeyError:
        #     print("Wrong Video ID Check")
        #     return None, None

        if video_or_audio[1] == 'video':
            stream_ext = f"https://{environ['ytstreamurl']}/dl/{id}?f=bestaudio"
        else:
            stream_ext = f"https://{environ['ytstreamurl']}/dl/{id}?f=bestaudio"

        logger.info(f"Sending song: {stream_ext} to Alexa")
        return stream_ext, "freestyler"
    else:
        logger.info("Please add URL for YouTubeStream Server in Environ (ytstreamurl)")
        return False, False

I always pass a fixed title: return stream_ext, "freestyler" Since when I try to execute the code:

url = "https://" + environ['ytstreamurl'] + "/meta/" + id
response = requests.request("GET", url,timeout=8)

I always encounter an error:

[ERROR] SSLError: HTTPSConnectionPool(host='alexa.youtube-music-alexa-test.de', port=4000): Max retries 
exceeded with url: /dl/ymNFyxvIdaM?f=bestaudio (Caused by SSLError(SSLCertVerificationError(1, '[SSL: 
CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1091)')))

No other thing has an issue with my website, only Python. I believe this is a general Python problem, and I maybe will come up with a solution for it. Pytube, as used by @DavidBerdik , is rather unreliable. Here is the entire log from AWS of a failed attempt:

2024-01-21T16:37:55.843+01:00CopyINIT_START Runtime Version: python:3.7.v45 Runtime Version ARN: arn:aws:lambda:eu-central-1::runtime:e9c56b11e27ca4645b46ad3628302cb768e25fcd80db318333804148740632c1 | INIT_START Runtime Version: python:3.7.v45 Runtime Version ARN: arn:aws:lambda:eu-central-1::runtime:e9c56b11e27ca4645b46ad3628302cb768e25fcd80db318333804148740632c1 2024-01-21T16:37:56.431+01:00CopySTART RequestId: f8cec73d-f8ac-4643-b093-bf15e4dcda3f Version: $LATEST | START RequestId: f8cec73d-f8ac-4643-b093-bf15e4dcda3f Version: $LATEST
 2024-01-21T16:37:56.432+01:00Copy[INFO]    2024-01-21T15:37:56.432Z    f8cec73d-f8ac-4643-b093-bf15e4dcda3f    {'version': '1.0', 'session': {'new': True, 'sessionId': 'amzn1.echo-api.session.481807f3-6bdd-4e47-83a2-d8dc143bc779', 'application': {'applicationId': 'amzn1.ask.skill.463790c0-8181-4ad9-8b4d-49a5549a470b'}, 'attributes': {}, 'user': {'userId': 'amzn1.ask.account.AMARTVOQTHECZRBYFBYMNOD3AAVCCSJMBYH47GVYZD6CU7JAYGGLV5FKHNWZEDJCZNZ6EIY2P7CM4TQTZ7X5WFX3MPGGPXEDZSU67KRKFSZCUJV3BY3YDAV7XJJYMC2QODUUEX7QPCQYKYWBXPTLPDCLHBTV3QALJKBZ7ABPG555JSZMXOXIFEBLJ4MTK3B3OAJQCZMBMZZOXRTPMBRU64KIL2VOOTSSBADMRED3DXOA', 'permissions': {'consentToken': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLjQ2Mzc5MGMwLTgxODEtNGFkOS04YjRkLTQ5YTU1NDlhNDcwYiIsImV4cCI6MTcwNTg1NTA3NSwiaWF0IjoxNzA1ODUxNDc1LCJuYmYiOjE3MDU4NTE0NzUsInByaXZhdGVDbGFpbXMiOnsiaXNEZXByZWNhdGVkIjoidHJ1ZSIsImNvbnNlbnRUb2tlbiI6IkF0emF8SXdFQklJd2s4c2RIQnluSFN0MVgtVkRwM3YzTFBHQmNVRTllWVFJcUdXQ08xVkNvLTdpTFZOWVQtYjZ2R1p2Y0ZDdWk3N3pxYTM4QTMxUHJlMzRGV2U4TVo4SXA2NklFQS1ZXzc2V0o2VFRMTl9aQkpPX3hnbXB3Tnh3SmNpbkRKdjhHeGd5TlhPU042eEx4QXlkbWRXYUZEVW1fNkx1YmhySVBlLXNSclItaUNDWEs4bmdNVElQeVpqYTUyUlZ2dTZXanJXNFZlUXBsdVI3Qjg2UHZINlRrelhYd2tfRlRoSGVCLW9GZG9Id0dqcFl6QWVsRVZZb1BhTDM0TWdhQVAta0MxTmVuRDhlajRlaHF5eG5ocENzT3YtMktlWmJSN2ZYSmRRc0l3Vkk5bXZCN29QVGZTUGl1U08tNDRuNHpMa2R1ZlowIiwiZGV2aWNlSWQiOiJhbXpuMS5hc2suZGV2aWNlLkFNQVdUUERGQzZUV0xWQ0g3REtBNU80RDU3NkRVUUw3NVhOTkY3QlVaUUxBRlQ0V0VZWlZQV0xDRUg2Sk9ORUZXQlo2TU9FUDRLVzZGUDZaVEkzUVVFQllDTEtBWVpaWUtKT0dDRU83WDdMSEs0SlVVQkVUN1hUTjVRVlgzNFdTUkxLNVVJVUhGR0xGNTVKQTVVVUNPQVpEQjYzRlNLRzM2SlNIQUI1NlpINEJWSzJFNVdVWlNaUzVHQlczWElMREhaVEZaTFdPVklEVzNUNzQiLCJ1c2VySWQiOiJhbXpuMS5hc2suYWNjb3VudC5BTUFSVFZPUVRIRUNaUkJZRkJZTU5PRDNBQVZDQ1NKTUJZSDQ3R1ZZWkQ2Q1U3SkFZR0dMVjVGS0hOV1pFREpDWk5aNkVJWTJQN0NNNFRRVFo3WDVXRlgzTVBHR1BYRURaU1U2N0tSS0ZTWkNVSlYzQlkzWURBVjdYSkpZTUMyUU9EVVVFWDdRUENRWUtZV0JYUFRMUERDTEhCVFYzUUFMSktCWjdBQlBHNTU1SlNaTVhPWElGRUJMSjRNVEszQjNPQUpRQ1pNQk1aWk9YUlRQTUJSVTY0S0lMMlZPT1RTU0JBRE1SRUQzRFhPQSJ9fQ.TEU6oJ8rcpo_D62zhbSA14zVQ8-v-cbP1RoFDXx8z6C2Be4AAFfEIpWDFv93aSa7t9pxL99mUsibmMDQj5x-mNXe4_MqrI7SrbI-UNiri9Ht_G-wNnJnsb7VBdhrrlJ-X7mRGt5wAd7ho8-dpamnmd2-dNPPWT7iF7gzJ2XZ23cKhY6oIs0rCwE_pNWub-J6COpyYtgO85AFklO2Cx0qsouQEaQzTgKI3ZzQ0BUNVfbDrDeRcpkQKB-MSmw3s0biY1mN4XBAVGl7eWQuZRC2C-mX0Kw_V6m0T5eCQmsmXoHeYVY73EMr8eeqL1HjFRxIOJeANKiU1lglaqcjg1NzIA'}}, 'affiliatedResources': []}, 'context': {'Viewports': [{'type': 'APLT', 'id': 'main', 'supportedProfiles': ['FOUR_CHARACTER_CLOCK'], 'lineLength': 4, 'lineCount': 1, 'characterFormat': 'SEVEN_SEGMENT', 'interSegments': [{'x': 2, 'y': 0, 'characters': "':.'"}]}], 'AudioPlayer': {'offsetInMilliseconds': 0, 'token': 's=0&sr=0&a=1&i=Search&query=freestyler&l=0&v0=ymNFyxvIdaM&p=49&v1=KLH2zNdXsmA&v2=nbre00wgcGE&v3=pQICGZd9-SA&v4=So_pKHgP_1k&v5=qFaJdnbh2JQ&v6=JAr-RVGsgFg&v7=rFRPbOCQ61U&v8=9IVefA8UYC0&v9=XZzRENQU4Q0&v10=VYK1vn6i9DE&v11=Wrdmi3zn6YM&v12=jOL1WbCttp8&v13=JhMar_ADi_A&v14=06RJfRrt6CY&v15=zXOPsxobKSo&v16=LIG-0gr9in0&v17=r2QlrxIkwjw&v18=pzPXttUsNyQ&v19=cSzSxF5jojc&v20=1Rxo25Nq1PM&v21=_coePlaTzII&v22=tlfwzanxK7o&v23=I7eC6VRPjvk&v24=e-G5pOS2VJQ&v25=DQiwLlbWas8&v26=l2rlK6sYKSk&v27=jCQI5TMc6gQ&v28=5YZ58wfOjhc&v29=WK7H4uv-qMA&v30=NZSFCxD5Zvw&v31=9eYzTs07L80&v32=hkcuNwqmCmQ&v33=dVI7DEnPu4A&v34=NT8hz0072Ak&v35=OyV1TStgqy4&v36=gBNZwhvzXQA&v37=68ooqaOTjjU&v38=VU01OK3EKvw&v39=oMy6HEI8WgU&v40=ez9ARO7YDHo&v41=gFfd5zPUumE&v42=qYhtJopGDCg&v43=YA1wYPcVwlk&v44=6VCT_BpnA2k&v45=wXY_05l-mkM&v46=Np6FvrfZAn0&v47=g41FSeJz120&v48=inQrMmIodC0&v49=IEufCIoP7OI', 'playerActivity': 'FINISHED'}, 'Extensions': {'available': {}}, 'Advertising': {'advertisingId': '00000000-0000-0000-0000-000000000000', 'limitAdTracking': True}, 'System': {'application': {'applicationId': 'amzn1.ask.skill.463790c0-8181-4ad9-8b4d-49a5549a470b'}, 'user': {'userId': 'amzn1.ask.account.AMARTVOQTHECZRBYFBYMNOD3AAVCCSJMBYH47GVYZD6CU7JAYGGLV5FKHNWZEDJCZNZ6EIY2P7CM4TQTZ7X5WFX3MPGGPXEDZSU67KRKFSZCUJV3BY3YDAV7XJJYMC2QODUUEX7QPCQYKYWBXPTLPDCLHBTV3QALJKBZ7ABPG555JSZMXOXIFEBLJ4MTK3B3OAJQCZMBMZZOXRTPMBRU64KIL2VOOTSSBADMRED3DXOA', 'permissions': {'consentToken': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLjQ2Mzc5MGMwLTgxODEtNGFkOS04YjRkLTQ5YTU1NDlhNDcwYiIsImV4cCI6MTcwNTg1NTA3NSwiaWF0IjoxNzA1ODUxNDc1LCJuYmYiOjE3MDU4NTE0NzUsInByaXZhdGVDbGFpbXMiOnsiaXNEZXByZWNhdGVkIjoidHJ1ZSIsImNvbnNlbnRUb2tlbiI6IkF0emF8SXdFQklJd2s4c2RIQnluSFN0MVgtVkRwM3YzTFBHQmNVRTllWVFJcUdXQ08xVkNvLTdpTFZOWVQtYjZ2R1p2Y0ZDdWk3N3pxYTM4QTMxUHJlMzRGV2U4TVo4SXA2NklFQS1ZXzc2V0o2VFRMTl9aQkpPX3hnbXB3Tnh3SmNpbkRKdjhHeGd5TlhPU042eEx4QXlkbWRXYUZEVW1fNkx1YmhySVBlLXNSclItaUNDWEs4bmdNVElQeVpqYTUyUlZ2dTZXanJXNFZlUXBsdVI3Qjg2UHZINlRrelhYd2tfRlRoSGVCLW9GZG9Id0dqcFl6QWVsRVZZb1BhTDM0TWdhQVAta0MxTmVuRDhlajRlaHF5eG5ocENzT3YtMktlWmJSN2ZYSmRRc0l3Vkk5bXZCN29QVGZTUGl1U08tNDRuNHpMa2R1ZlowIiwiZGV2aWNlSWQiOiJhbXpuMS5hc2suZGV2aWNlLkFNQVdUUERGQzZUV0xWQ0g3REtBNU80RDU3NkRVUUw3NVhOTkY3QlVaUUxBRlQ0V0VZWlZQV0xDRUg2Sk9ORUZXQlo2TU9FUDRLVzZGUDZaVEkzUVVFQllDTEtBWVpaWUtKT0dDRU83WDdMSEs0SlVVQkVUN1hUTjVRVlgzNFdTUkxLNVVJVUhGR0xGNTVKQTVVVUNPQVpEQjYzRlNLRzM2SlNIQUI1NlpINEJWSzJFNVdVWlNaUzVHQlczWElMREhaVEZaTFdPVklEVzNUNzQiLCJ1c2VySWQiOiJhbXpuMS5hc2suYWNjb3VudC5BTUFSVFZPUVRIRUNaUkJZRkJZTU5PRDNBQVZDQ1NKTUJZSDQ3R1ZZWkQ2Q1U3SkFZR0dMVjVGS0hOV1pFREpDWk5aNkVJWTJQN0NNNFRRVFo3WDVXRlgzTVBHR1BYRURaU1U2N0tSS0ZTWkNVSlYzQlkzWURBVjdYSkpZTUMyUU9EVVVFWDdRUENRWUtZV0JYUFRMUERDTEhCVFYzUUFMSktCWjdBQlBHNTU1SlNaTVhPWElGRUJMSjRNVEszQjNPQUpRQ1pNQk1aWk9YUlRQTUJSVTY0S0lMMlZPT1RTU0JBRE1SRUQzRFhPQSJ9fQ.TEU6oJ8rcpo_D62zhbSA14zVQ8-v-cbP1RoFDXx8z6C2Be4AAFfEIpWDFv93aSa7t9pxL99mUsibmMDQj5x-mNXe4_MqrI7SrbI-UNiri9Ht_G-wNnJnsb7VBdhrrlJ-X7mRGt5wAd7ho8-dpamnmd2-dNPPWT7iF7gzJ2XZ23cKhY6oIs0rCwE_pNWub-J6COpyYtgO85AFklO2Cx0qsouQEaQzTgKI3ZzQ0BUNVfbDrDeRcpkQKB-MSmw3s0biY1mN4XBAVGl7eWQuZRC2C-mX0Kw_V6m0T5eCQmsmXoHeYVY73EMr8eeqL1HjFRxIOJeANKiU1lglaqcjg1NzIA'}}, 'device': {'deviceId': 'amzn1.ask.device.AMAWTPDFC6TWLVCH7DKA5O4D576DUQL75XNNF7BUZQLAFT4WEYZVPWLCEH6JONEFWBZ6MOEP4KW6FP6ZTI3QUEBYCLKAYZZYKJOGCEO7X7LHK4JUUBET7XTN5QVX34WSRLK5UIUHFGLF55JA5UUCOAZDB63FSKG36JSHAB56ZH4BVK2E5WUZSZS5GBW3XILDHZTFZLWOVIDW3T74', 'supportedInterfaces': {'AudioPlayer': {}}}, 'apiEndpoint': 'https://api.eu.amazonalexa.com', 'apiAccessToken': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5ldS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLjQ2Mzc5MGMwLTgxODEtNGFkOS04YjRkLTQ5YTU1NDlhNDcwYiIsImV4cCI6MTcwNTg1MTUzNSwiaWF0IjoxNzA1ODUxNDc1LCJuYmYiOjE3MDU4NTE0NzUsInByaXZhdGVDbGFpbXMiOnsiY29udGV4dCI6IkFBQUFBQUFBQVFCNDJlMG1yVkt1WVM4blpKV011YW51aWdFQUFBQUFBQUI2UFdQdHRJZGNwUDlQWUpGZXYybzdhOFQwc2ZKV1A4SnViYU9IMk8yT2UvRVY5RUMvWkhWZ253Q3k3YmpLcnVVKzdBaVBKbjRiclBqVng1Y3RESlhaNUNWcC81UU9tWGhtSmlYQ2I3cmJlbUJzYU00QWFDNGt1L0hUSjVSdTY5R3pFM0pHcjNxZ28zVlJuVDRrU2hRamtNZ2M5N3ZXSVFqQXFia1UwaVF3T0lJNDNPR0J4aEplbm9HWWhkMmU3N25DczZJQWNHcWNST0R2ZytNVFZodGNlTmNUMDlJZzFwSU5lOHVzdTJsd292eFlnWFNpOFNIN01DcjZVTzJlME5laVl1dEFZOWI0Mi9QZjUxaE00S3lKNXVMRXkweU9lTytScUhCR0tERE1BQXEzNm16bmFOUTlBdzhnb3ZuMSt5eDRVd0YzK3FRV0lGT2tTQUVUbFpFSHV1QytJemcyYUswUkI2aEZ6RWRHWHFxSnpRbDRoWmlhbnM4R0N6OTNQaWc1anhxTnh5ZXozZmFUdGRaemVpbHhudWwrYTlOeStxeU1pK3NrMmdNK3RMcGRMKzRVanV2YlFyTkVrcWZiWFhGa2ZlRW80N3ZXcHEzMDRNY1hUb1RqTkpjODZpckdBOEJKVi9XeTJmbWlOUmJYeHBtanJUUlJKY2RzN0FIRklqelN3WUZENGUyQTBnRW8iLCJjb25zZW50VG9rZW4iOiJBdHphfEl3RUJJSXdrOHNkSEJ5bkhTdDFYLVZEcDN2M0xQR0JjVUU5ZVlRSXFHV0NPMVZDby03aUxWTllULWI2dkdadmNGQ3VpNzd6cWEzOEEzMVByZTM0RldlOE1aOElwNjZJRUEtWV83NldKNlRUTE5fWkJKT194Z21wd054d0pjaW5ESnY4R3hneU5YT1NONnhMeEF5ZG1kV2FGRFVtXzZMdWJocklQZS1zUnJSLWlDQ1hLOG5nTVRJUHlaamE1MlJWdnU2V2pyVzRWZVFwbHVSN0I4NlB2SDZUa3pYWHdrX0ZUaEhlQi1vRmRvSHdHanBZekFlbEVWWW9QYUwzNE1nYUFQLWtDMU5lbkQ4ZWo0ZWhxeXhuaHBDc092LTJLZVpiUjdmWEpkUXNJd1ZJOW12QjdvUFRmU1BpdVNPLTQ0bjR6TGtkdWZaMCIsImRldmljZUlkIjoiYW16bjEuYXNrLmRldmljZS5BTUFXVFBERkM2VFdMVkNIN0RLQTVPNEQ1NzZEVVFMNzVYTk5GN0JVWlFMQUZUNFdFWVpWUFdMQ0VINkpPTkVGV0JaNk1PRVA0S1c2RlA2WlRJM1FVRUJZQ0xLQVlaWllLSk9HQ0VPN1g3TEhLNEpVVUJFVDdYVE41UVZYMzRXU1JMSzVVSVVIRkdMRjU1SkE1VVVDT0FaREI2M0ZTS0czNkpTSEFCNTZaSDRCVksyRTVXVVpTWlM1R0JXM1hJTERIWlRGWkxXT1ZJRFczVDc0IiwidXNlcklkIjoiYW16bjEuYXNrLmFjY291bnQuQU1BUlRWT1FUSEVDWlJCWUZCWU1OT0QzQUFWQ0NTSk1CWUg0N0dWWVpENkNVN0pBWUdHTFY1RktITldaRURKQ1pOWjZFSVkyUDdDTTRUUVRaN1g1V0ZYM01QR0dQWEVEWlNVNjdLUktGU1pDVUpWM0JZM1lEQVY3WEpKWU1DMlFPRFVVRVg3UVBDUVlLWVdCWFBUTFBEQ0xIQlRWM1FBTEpLQlo3QUJQRzU1NUpTWk1YT1hJRkVCTEo0TVRLM0IzT0FKUUNaTUJNWlpPWFJUUE1CUlU2NEtJTDJWT09UU1NCQURNUkVEM0RYT0EifX0.IuAY6g3RqJD0y2KMo_5aMB96C0nK1HhBVDAs2sp06Qj5rDkTy2GLj42j27NN2inoPAFh2wOqxJWQz5n467K_ppmpC6OTHw9ht-Gvnigf8EEFMDhLuBdvjQ5U2AjqZWuiX-Rbmt7hk6wjCdbP15eO3GgYstqrXQVpOXo0UZb_PXElJmj78sAq83awWhMRFKvod2KqOiJwuBlQ6mauYf0ZxoVKyn8HcxFnrvM0t778U1d0-r-4ZO3LEP9mkxE3jQk06aVBWKNgHtWZZl2b4OGWgYFIBzXG6bwCZeERRadG8BiyYDg3Itw404lpXRhwwdRlmV-PIwcUXpiae44DtN5bDQ', 'unit': {'unitId': 'amzn1.ask.unit.AMAYYEIR7K73UFDHEFFOXETIFPKQBR7ZSOXIGTX7CY3ARQR4SX6R7TS34QBXZP7G4UJVALXC7WHJZPBM5YVYETJHRGUNQXSMCWCIUD2K3ZMH5VD7VNBUONEHGO34NM267UFDNAN5DC62BKBTYZOY7EB2B5V2XJXJGY'}}}, 'request': {'type': 'IntentRequest', 'requestId': 'amzn1.echo-api.request.151d0882-f0c2-4108-a19b-e5d7db7307dc', 'locale': 'de-DE', 'timestamp': '2024-01-21T15:37:55Z', 'intent': {'name': 'SearchIntent', 'confirmationStatus': 'NONE', 'slots': {'query': {'name': 'query', 'value': 'freestyler', 'confirmationStatus': 'NONE', 'source': 'USER', 'slotValue': {'type': 'Simple', 'value': 'freestyler'}}}}}} | [INFO] 2024-01-21T15:37:56.432Z f8cec73d-f8ac-4643-b093-bf15e4dcda3f {'version': '1.0', 'session': {'new': True, 'sessionId': 'amzn1.echo-api.session.481807f3-6bdd-4e47-83a2-d8dc143bc779', 'application': {'applicationId': 'amzn1.ask.skill.463790c0-8181-4ad9-8b4d-49a5549a470b'}, 'attributes': {}, 'user': {'userId': 'amzn1.ask.account.AMARTVOQTHECZRBYFBYMNOD3AAVCCSJMBYH47GVYZD6CU7JAYGGLV5FKHNWZEDJCZNZ6EIY2P7CM4TQTZ7X5WFX3MPGGPXEDZSU67KRKFSZCUJV3BY3YDAV7XJJYMC2QODUUEX7QPCQYKYWBXPTLPDCLHBTV3QALJKBZ7ABPG555JSZMXOXIFEBLJ4MTK3B3OAJQCZMBMZZOXRTPMBRU64KIL2VOOTSSBADMRED3DXOA', 'permissions': {'consentToken': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLjQ2Mzc5MGMwLTgxODEtNGFkOS04YjRkLTQ5YTU1NDlhNDcwYiIsImV4cCI6MTcwNTg1NTA3NSwiaWF0IjoxNzA1ODUxNDc1LCJuYmYiOjE3MDU4NTE0NzUsInByaXZhdGVDbGFpbXMiOnsiaXNEZXByZWNhdGVkIjoidHJ1ZSIsImNvbnNlbnRUb2tlbiI6IkF0emF8SXdFQklJd2s4c2RIQnluSFN0MVgtVkRwM3YzTFBHQmNVRTllWVFJcUdXQ08xVkNvLTdpTFZOWVQtYjZ2R1p2Y0ZDdWk3N3pxYTM4QTMxUHJlMzRGV2U4TVo4SXA2NklFQS1ZXzc2V0o2VFRMTl9aQkpPX3hnbXB3Tnh3SmNpbkRKdjhHeGd5TlhPU042eEx4QXlkbWRXYUZEVW1fNkx1YmhySVBlLXNSclItaUNDWEs4bmdNVElQeVpqYTUyUlZ2dTZXanJXNFZlUXBsdVI3Qjg2UHZINlRrelhYd2tfRlRoSGVCLW9GZG9Id0dqcFl6QWVsRVZZb1BhTDM0TWdhQVAta0MxTmVuRDhlajRlaHF5eG5ocENzT3YtMktlWmJSN2ZYSmRRc0l3Vkk5bXZCN29QVGZTUGl1U08tNDRuNHpMa2R1ZlowIiwiZGV2aWNlSWQiOiJhbXpuMS5hc2suZGV2aWNlLkFNQVdUUERGQzZUV0xWQ0g3REtBNU80RDU3NkRVUUw3NVhOTkY3QlVaUUxBRlQ0V0VZWlZQV0xDRUg2Sk9ORUZXQlo2TU9FUDRLVzZGUDZaVEkzUVVFQllDTEtBWVpaWUtKT0dDRU83WDdMSEs0SlVVQkVUN1hUTjVRVlgzNFdTUkxLNVVJVUhGR0xGNTVKQTVVVUNPQVpEQjYzRlNLRzM2SlNIQUI1NlpINEJWSzJFNVdVWlNaUzVHQlczWElMREhaVEZaTFdPVklEVzNUNzQiLCJ1c2VySWQiOiJhbXpuMS5hc2suYWNjb3VudC5BTUFSVFZPUVRIRUNaUkJZRkJZTU5PRDNBQVZDQ1NKTUJZSDQ3R1ZZWkQ2Q1U3SkFZR0dMVjVGS0hOV1pFREpDWk5aNkVJWTJQN0NNNFRRVFo3WDVXRlgzTVBHR1BYRURaU1U2N0tSS0ZTWkNVSlYzQlkzWURBVjdYSkpZTUMyUU9EVVVFWDdRUENRWUtZV0JYUFRMUERDTEhCVFYzUUFMSktCWjdBQlBHNTU1SlNaTVhPWElGRUJMSjRNVEszQjNPQUpRQ1pNQk1aWk9YUlRQTUJSVTY0S0lMMlZPT1RTU0JBRE1SRUQzRFhPQSJ9fQ.TEU6oJ8rcpo_D62zhbSA14zVQ8-v-cbP1RoFDXx8z6C2Be4AAFfEIpWDFv93aSa7t9pxL99mUsibmMDQj5x-mNXe4_MqrI7SrbI-UNiri9Ht_G-wNnJnsb7VBdhrrlJ-X7mRGt5wAd7ho8-dpamnmd2-dNPPWT7iF7gzJ2XZ23cKhY6oIs0rCwE_pNWub-J6COpyYtgO85AFklO2Cx0qsouQEaQzTgKI3ZzQ0BUNVfbDrDeRcpkQKB-MSmw3s0biY1mN4XBAVGl7eWQuZRC2C-mX0Kw_V6m0T5eCQmsmXoHeYVY73EMr8eeqL1HjFRxIOJeANKiU1lglaqcjg1NzIA'}}, 'affiliatedResources': []}, 'context': {'Viewports': [{'type': 'APLT', 'id': 'main', 'supportedProfiles': ['FOUR_CHARACTER_CLOCK'], 'lineLength': 4, 'lineCount': 1, 'characterFormat': 'SEVEN_SEGMENT', 'interSegments': [{'x': 2, 'y': 0, 'characters': "':.'"}]}], 'AudioPlayer': {'offsetInMilliseconds': 0, 'token': 's=0&sr=0&a=1&i=Search&query=freestyler&l=0&v0=ymNFyxvIdaM&p=49&v1=KLH2zNdXsmA&v2=nbre00wgcGE&v3=pQICGZd9-SA&v4=So_pKHgP_1k&v5=qFaJdnbh2JQ&v6=JAr-RVGsgFg&v7=rFRPbOCQ61U&v8=9IVefA8UYC0&v9=XZzRENQU4Q0&v10=VYK1vn6i9DE&v11=Wrdmi3zn6YM&v12=jOL1WbCttp8&v13=JhMar_ADi_A&v14=06RJfRrt6CY&v15=zXOPsxobKSo&v16=LIG-0gr9in0&v17=r2QlrxIkwjw&v18=pzPXttUsNyQ&v19=cSzSxF5jojc&v20=1Rxo25Nq1PM&v21=_coePlaTzII&v22=tlfwzanxK7o&v23=I7eC6VRPjvk&v24=e-G5pOS2VJQ&v25=DQiwLlbWas8&v26=l2rlK6sYKSk&v27=jCQI5TMc6gQ&v28=5YZ58wfOjhc&v29=WK7H4uv-qMA&v30=NZSFCxD5Zvw&v31=9eYzTs07L80&v32=hkcuNwqmCmQ&v33=dVI7DEnPu4A&v34=NT8hz0072Ak&v35=OyV1TStgqy4&v36=gBNZwhvzXQA&v37=68ooqaOTjjU&v38=VU01OK3EKvw&v39=oMy6HEI8WgU&v40=ez9ARO7YDHo&v41=gFfd5zPUumE&v42=qYhtJopGDCg&v43=YA1wYPcVwlk&v44=6VCT_BpnA2k&v45=wXY_05l-mkM&v46=Np6FvrfZAn0&v47=g41FSeJz120&v48=inQrMmIodC0&v49=IEufCIoP7OI', 'playerActivity': 'FINISHED'}, 'Extensions': {'available': {}}, 'Advertising': {'advertisingId': '00000000-0000-0000-0000-000000000000', 'limitAdTracking': True}, 'System': {'application': {'applicationId': 'amzn1.ask.skill.463790c0-8181-4ad9-8b4d-49a5549a470b'}, 'user': {'userId': 'amzn1.ask.account.AMARTVOQTHECZRBYFBYMNOD3AAVCCSJMBYH47GVYZD6CU7JAYGGLV5FKHNWZEDJCZNZ6EIY2P7CM4TQTZ7X5WFX3MPGGPXEDZSU67KRKFSZCUJV3BY3YDAV7XJJYMC2QODUUEX7QPCQYKYWBXPTLPDCLHBTV3QALJKBZ7ABPG555JSZMXOXIFEBLJ4MTK3B3OAJQCZMBMZZOXRTPMBRU64KIL2VOOTSSBADMRED3DXOA', 'permissions': {'consentToken': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLjQ2Mzc5MGMwLTgxODEtNGFkOS04YjRkLTQ5YTU1NDlhNDcwYiIsImV4cCI6MTcwNTg1NTA3NSwiaWF0IjoxNzA1ODUxNDc1LCJuYmYiOjE3MDU4NTE0NzUsInByaXZhdGVDbGFpbXMiOnsiaXNEZXByZWNhdGVkIjoidHJ1ZSIsImNvbnNlbnRUb2tlbiI6IkF0emF8SXdFQklJd2s4c2RIQnluSFN0MVgtVkRwM3YzTFBHQmNVRTllWVFJcUdXQ08xVkNvLTdpTFZOWVQtYjZ2R1p2Y0ZDdWk3N3pxYTM4QTMxUHJlMzRGV2U4TVo4SXA2NklFQS1ZXzc2V0o2VFRMTl9aQkpPX3hnbXB3Tnh3SmNpbkRKdjhHeGd5TlhPU042eEx4QXlkbWRXYUZEVW1fNkx1YmhySVBlLXNSclItaUNDWEs4bmdNVElQeVpqYTUyUlZ2dTZXanJXNFZlUXBsdVI3Qjg2UHZINlRrelhYd2tfRlRoSGVCLW9GZG9Id0dqcFl6QWVsRVZZb1BhTDM0TWdhQVAta0MxTmVuRDhlajRlaHF5eG5ocENzT3YtMktlWmJSN2ZYSmRRc0l3Vkk5bXZCN29QVGZTUGl1U08tNDRuNHpMa2R1ZlowIiwiZGV2aWNlSWQiOiJhbXpuMS5hc2suZGV2aWNlLkFNQVdUUERGQzZUV0xWQ0g3REtBNU80RDU3NkRVUUw3NVhOTkY3QlVaUUxBRlQ0V0VZWlZQV0xDRUg2Sk9ORUZXQlo2TU9FUDRLVzZGUDZaVEkzUVVFQllDTEtBWVpaWUtKT0dDRU83WDdMSEs0SlVVQkVUN1hUTjVRVlgzNFdTUkxLNVVJVUhGR0xGNTVKQTVVVUNPQVpEQjYzRlNLRzM2SlNIQUI1NlpINEJWSzJFNVdVWlNaUzVHQlczWElMREhaVEZaTFdPVklEVzNUNzQiLCJ1c2VySWQiOiJhbXpuMS5hc2suYWNjb3VudC5BTUFSVFZPUVRIRUNaUkJZRkJZTU5PRDNBQVZDQ1NKTUJZSDQ3R1ZZWkQ2Q1U3SkFZR0dMVjVGS0hOV1pFREpDWk5aNkVJWTJQN0NNNFRRVFo3WDVXRlgzTVBHR1BYRURaU1U2N0tSS0ZTWkNVSlYzQlkzWURBVjdYSkpZTUMyUU9EVVVFWDdRUENRWUtZV0JYUFRMUERDTEhCVFYzUUFMSktCWjdBQlBHNTU1SlNaTVhPWElGRUJMSjRNVEszQjNPQUpRQ1pNQk1aWk9YUlRQTUJSVTY0S0lMMlZPT1RTU0JBRE1SRUQzRFhPQSJ9fQ.TEU6oJ8rcpo_D62zhbSA14zVQ8-v-cbP1RoFDXx8z6C2Be4AAFfEIpWDFv93aSa7t9pxL99mUsibmMDQj5x-mNXe4_MqrI7SrbI-UNiri9Ht_G-wNnJnsb7VBdhrrlJ-X7mRGt5wAd7ho8-dpamnmd2-dNPPWT7iF7gzJ2XZ23cKhY6oIs0rCwE_pNWub-J6COpyYtgO85AFklO2Cx0qsouQEaQzTgKI3ZzQ0BUNVfbDrDeRcpkQKB-MSmw3s0biY1mN4XBAVGl7eWQuZRC2C-mX0Kw_V6m0T5eCQmsmXoHeYVY73EMr8eeqL1HjFRxIOJeANKiU1lglaqcjg1NzIA'}}, 'device': {'deviceId': 'amzn1.ask.device.AMAWTPDFC6TWLVCH7DKA5O4D576DUQL75XNNF7BUZQLAFT4WEYZVPWLCEH6JONEFWBZ6MOEP4KW6FP6ZTI3QUEBYCLKAYZZYKJOGCEO7X7LHK4JUUBET7XTN5QVX34WSRLK5UIUHFGLF55JA5UUCOAZDB63FSKG36JSHAB56ZH4BVK2E5WUZSZS5GBW3XILDHZTFZLWOVIDW3T74', 'supportedInterfaces': {'AudioPlayer': {}}}, 'apiEndpoint': 'https://api.eu.amazonalexa.com', 'apiAccessToken': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5ldS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLjQ2Mzc5MGMwLTgxODEtNGFkOS04YjRkLTQ5YTU1NDlhNDcwYiIsImV4cCI6MTcwNTg1MTUzNSwiaWF0IjoxNzA1ODUxNDc1LCJuYmYiOjE3MDU4NTE0NzUsInByaXZhdGVDbGFpbXMiOnsiY29udGV4dCI6IkFBQUFBQUFBQVFCNDJlMG1yVkt1WVM4blpKV011YW51aWdFQUFBQUFBQUI2UFdQdHRJZGNwUDlQWUpGZXYybzdhOFQwc2ZKV1A4SnViYU9IMk8yT2UvRVY5RUMvWkhWZ253Q3k3YmpLcnVVKzdBaVBKbjRiclBqVng1Y3RESlhaNUNWcC81UU9tWGhtSmlYQ2I3cmJlbUJzYU00QWFDNGt1L0hUSjVSdTY5R3pFM0pHcjNxZ28zVlJuVDRrU2hRamtNZ2M5N3ZXSVFqQXFia1UwaVF3T0lJNDNPR0J4aEplbm9HWWhkMmU3N25DczZJQWNHcWNST0R2ZytNVFZodGNlTmNUMDlJZzFwSU5lOHVzdTJsd292eFlnWFNpOFNIN01DcjZVTzJlME5laVl1dEFZOWI0Mi9QZjUxaE00S3lKNXVMRXkweU9lTytScUhCR0tERE1BQXEzNm16bmFOUTlBdzhnb3ZuMSt5eDRVd0YzK3FRV0lGT2tTQUVUbFpFSHV1QytJemcyYUswUkI2aEZ6RWRHWHFxSnpRbDRoWmlhbnM4R0N6OTNQaWc1anhxTnh5ZXozZmFUdGRaemVpbHhudWwrYTlOeStxeU1pK3NrMmdNK3RMcGRMKzRVanV2YlFyTkVrcWZiWFhGa2ZlRW80N3ZXcHEzMDRNY1hUb1RqTkpjODZpckdBOEJKVi9XeTJmbWlOUmJYeHBtanJUUlJKY2RzN0FIRklqelN3WUZENGUyQTBnRW8iLCJjb25zZW50VG9rZW4iOiJBdHphfEl3RUJJSXdrOHNkSEJ5bkhTdDFYLVZEcDN2M0xQR0JjVUU5ZVlRSXFHV0NPMVZDby03aUxWTllULWI2dkdadmNGQ3VpNzd6cWEzOEEzMVByZTM0RldlOE1aOElwNjZJRUEtWV83NldKNlRUTE5fWkJKT194Z21wd054d0pjaW5ESnY4R3hneU5YT1NONnhMeEF5ZG1kV2FGRFVtXzZMdWJocklQZS1zUnJSLWlDQ1hLOG5nTVRJUHlaamE1MlJWdnU2V2pyVzRWZVFwbHVSN0I4NlB2SDZUa3pYWHdrX0ZUaEhlQi1vRmRvSHdHanBZekFlbEVWWW9QYUwzNE1nYUFQLWtDMU5lbkQ4ZWo0ZWhxeXhuaHBDc092LTJLZVpiUjdmWEpkUXNJd1ZJOW12QjdvUFRmU1BpdVNPLTQ0bjR6TGtkdWZaMCIsImRldmljZUlkIjoiYW16bjEuYXNrLmRldmljZS5BTUFXVFBERkM2VFdMVkNIN0RLQTVPNEQ1NzZEVVFMNzVYTk5GN0JVWlFMQUZUNFdFWVpWUFdMQ0VINkpPTkVGV0JaNk1PRVA0S1c2RlA2WlRJM1FVRUJZQ0xLQVlaWllLSk9HQ0VPN1g3TEhLNEpVVUJFVDdYVE41UVZYMzRXU1JMSzVVSVVIRkdMRjU1SkE1VVVDT0FaREI2M0ZTS0czNkpTSEFCNTZaSDRCVksyRTVXVVpTWlM1R0JXM1hJTERIWlRGWkxXT1ZJRFczVDc0IiwidXNlcklkIjoiYW16bjEuYXNrLmFjY291bnQuQU1BUlRWT1FUSEVDWlJCWUZCWU1OT0QzQUFWQ0NTSk1CWUg0N0dWWVpENkNVN0pBWUdHTFY1RktITldaRURKQ1pOWjZFSVkyUDdDTTRUUVRaN1g1V0ZYM01QR0dQWEVEWlNVNjdLUktGU1pDVUpWM0JZM1lEQVY3WEpKWU1DMlFPRFVVRVg3UVBDUVlLWVdCWFBUTFBEQ0xIQlRWM1FBTEpLQlo3QUJQRzU1NUpTWk1YT1hJRkVCTEo0TVRLM0IzT0FKUUNaTUJNWlpPWFJUUE1CUlU2NEtJTDJWT09UU1NCQURNUkVEM0RYT0EifX0.IuAY6g3RqJD0y2KMo_5aMB96C0nK1HhBVDAs2sp06Qj5rDkTy2GLj42j27NN2inoPAFh2wOqxJWQz5n467K_ppmpC6OTHw9ht-Gvnigf8EEFMDhLuBdvjQ5U2AjqZWuiX-Rbmt7hk6wjCdbP15eO3GgYstqrXQVpOXo0UZb_PXElJmj78sAq83awWhMRFKvod2KqOiJwuBlQ6mauYf0ZxoVKyn8HcxFnrvM0t778U1d0-r-4ZO3LEP9mkxE3jQk06aVBWKNgHtWZZl2b4OGWgYFIBzXG6bwCZeERRadG8BiyYDg3Itw404lpXRhwwdRlmV-PIwcUXpiae44DtN5bDQ', 'unit': {'unitId': 'amzn1.ask.unit.AMAYYEIR7K73UFDHEFFOXETIFPKQBR7ZSOXIGTX7CY3ARQR4SX6R7TS34QBXZP7G4UJVALXC7WHJZPBM5YVYETJHRGUNQXSMCWCIUD2K3ZMH5VD7VNBUONEHGO34NM267UFDNAN5DC62BKBTYZOY7EB2B5V2XJXJGY'}}}, 'request': {'type': 'IntentRequest', 'requestId': 'amzn1.echo-api.request.151d0882-f0c2-4108-a19b-e5d7db7307dc', 'locale': 'de-DE', 'timestamp': '2024-01-21T15:37:55Z', 'intent': {'name': 'SearchIntent', 'confirmationStatus': 'NONE', 'slots': {'query': {'name': 'query', 'value': 'freestyler', 'confirmationStatus': 'NONE', 'source': 'USER', 'slotValue': {'type': 'Simple', 'value': 'freestyler'}}}}}}
 2024-01-21T16:37:56.432+01:00Copy[INFO]    2024-01-21T15:37:56.432Z    f8cec73d-f8ac-4643-b093-bf15e4dcda3f    Looking for: freestyler | [INFO] 2024-01-21T15:37:56.432Z f8cec73d-f8ac-4643-b093-bf15e4dcda3f Looking for: freestyler
 2024-01-21T16:37:56.432+01:00Copy[INFO]    2024-01-21T15:37:56.432Z    f8cec73d-f8ac-4643-b093-bf15e4dcda3f    checking for faves | [INFO] 2024-01-21T15:37:56.432Z f8cec73d-f8ac-4643-b093-bf15e4dcda3f checking for faves
 2024-01-21T16:37:56.629+01:00Copy[INFO]    2024-01-21T15:37:56.628Z    f8cec73d-f8ac-4643-b093-bf15e4dcda3f    checking Add shortcuts to your favorite videos or playlists like this: | [INFO] 2024-01-21T15:37:56.628Z f8cec73d-f8ac-4643-b093-bf15e4dcda3f checking Add shortcuts to your favorite videos or playlists like this:
 2024-01-21T16:37:56.629+01:00Copy[INFO]    2024-01-21T15:37:56.629Z    f8cec73d-f8ac-4643-b093-bf15e4dcda3f    checking Song den ich mag \| https://youtu.be/gJLIiF15wjQ | [INFO] 2024-01-21T15:37:56.629Z f8cec73d-f8ac-4643-b093-bf15e4dcda3f checking Song den ich mag \| https://youtu.be/gJLIiF15wjQ
 2024-01-21T16:37:56.629+01:00Copy[INFO]    2024-01-21T15:37:56.629Z    f8cec73d-f8ac-4643-b093-bf15e4dcda3f    checking Geile playlist \| https://www.youtube.com/playlist?list=PL1EQjK4xc6hsirkCQq-MHfmUqGMkSgUTn | [INFO] 2024-01-21T15:37:56.629Z f8cec73d-f8ac-4643-b093-bf15e4dcda3f checking Geile playlist \| https://www.youtube.com/playlist?list=PL1EQjK4xc6hsirkCQq-MHfmUqGMkSgUTn
 2024-01-21T16:37:57.201+01:00Copy[INFO]    2024-01-21T15:37:57.200Z    f8cec73d-f8ac-4643-b093-bf15e4dcda3f    Getting YouTubeStream url for https://www.youtube.com/watch?v=ymNFyxvIdaM | [INFO] 2024-01-21T15:37:57.200Z f8cec73d-f8ac-4643-b093-bf15e4dcda3f Getting YouTubeStream url for https://www.youtube.com/watch?v=ymNFyxvIdaM
 2024-01-21T16:37:57.201+01:00Copy[INFO]    2024-01-21T15:37:57.201Z    f8cec73d-f8ac-4643-b093-bf15e4dcda3f    Sending song: https://isseutestgithub.youtube-music-alexa-test.de:4000/dl/ymNFyxvIdaM?f=bestaudio to Alexa | [INFO] 2024-01-21T15:37:57.201Z f8cec73d-f8ac-4643-b093-bf15e4dcda3f Sending song: https://isseutestgithub.youtube-music-alexa-test.de:4000/dl/ymNFyxvIdaM?f=bestaudio to Alexa
 2024-01-21T16:37:57.203+01:00CopyEND RequestId: f8cec73d-f8ac-4643-b093-bf15e4dcda3fEND RequestId: f8cec73d-f8ac-4643-b093-bf15e4dcda3f
 2024-01-21T16:37:57.203+01:00CopyREPORT RequestId: f8cec73d-f8ac-4643-b093-bf15e4dcda3f    Duration: 771.98 ms Billed Duration: 772 ms Memory Size: 512 MB Max Memory Used: 50 MB  Init Duration: 587.52 ms | REPORT RequestId: f8cec73d-f8ac-4643-b093-bf15e4dcda3f Duration: 771.98 ms Billed Duration: 772 ms Memory Size: 512 MB Max Memory Used: 50 MB Init Duration: 587.52 ms
 2024-01-21T16:37:59.277+01:00CopySTART RequestId: 06a1e1dd-aad5-4cbf-9865-701cae620545 Version: $LATEST | START RequestId: 06a1e1dd-aad5-4cbf-9865-701cae620545 Version: $LATEST
 2024-01-21T16:37:59.278+01:00Copy[INFO]    2024-01-21T15:37:59.278Z    06a1e1dd-aad5-4cbf-9865-701cae620545    Playback failed | [INFO] 2024-01-21T15:37:59.278Z 06a1e1dd-aad5-4cbf-9865-701cae620545 Playback failed
 2024-01-21T16:37:59.278+01:00Copy[INFO]    2024-01-21T15:37:59.278Z    06a1e1dd-aad5-4cbf-9865-701cae620545    {'version': '1.0', 'context': {'Viewports': [{'type': 'APLT', 'id': 'main', 'supportedProfiles': ['FOUR_CHARACTER_CLOCK'], 'lineLength': 4, 'lineCount': 1, 'characterFormat': 'SEVEN_SEGMENT', 'interSegments': [{'x': 2, 'y': 0, 'characters': "':.'"}]}], 'AudioPlayer': {'offsetInMilliseconds': 0, 'token': 's=0&sr=0&a=1&i=Search&query=freestyler&l=0&v0=ymNFyxvIdaM&p=0&v1=KLH2zNdXsmA&v2=nbre00wgcGE&v3=pQICGZd9-SA&v4=So_pKHgP_1k&v5=qFaJdnbh2JQ&v6=JAr-RVGsgFg&v7=rFRPbOCQ61U&v8=9IVefA8UYC0&v9=XZzRENQU4Q0&v10=Wrdmi3zn6YM&v11=VYK1vn6i9DE&v12=jOL1WbCttp8&v13=JhMar_ADi_A&v14=06RJfRrt6CY&v15=zXOPsxobKSo&v16=LIG-0gr9in0&v17=cSzSxF5jojc&v18=1Rxo25Nq1PM&v19=_coePlaTzII&v20=tlfwzanxK7o&v21=I7eC6VRPjvk&v22=e-G5pOS2VJQ&v23=DQiwLlbWas8&v24=l2rlK6sYKSk&v25=r2QlrxIkwjw&v26=jCQI5TMc6gQ&v27=5YZ58wfOjhc&v28=pzPXttUsNyQ&v29=WK7H4uv-qMA&v30=NZSFCxD5Zvw&v31=9eYzTs07L80&v32=hkcuNwqmCmQ&v33=dVI7DEnPu4A&v34=NT8hz0072Ak&v35=OyV1TStgqy4&v36=68ooqaOTjjU&v37=VU01OK3EKvw&v38=oMy6HEI8WgU&v39=ez9ARO7YDHo&v40=qYhtJopGDCg&v41=6VCT_BpnA2k&v42=YA1wYPcVwlk&v43=Np6FvrfZAn0&v44=g41FSeJz120&v45=inQrMmIodC0&v46=IEufCIoP7OI&v47=uiIpjSKRwMg&v48=Y3cwyY91piY&v49=gBNZwhvzXQA', 'playerActivity': 'STOPPED'}, 'Extensions': {'available': {}}, 'System': {'application': {'applicationId': 'amzn1.ask.skill.463790c0-8181-4ad9-8b4d-49a5549a470b'}, 'user': {'userId': 'amzn1.ask.account.AMARTVOQTHECZRBYFBYMNOD3AAVCCSJMBYH47GVYZD6CU7JAYGGLV5FKHNWZEDJCZNZ6EIY2P7CM4TQTZ7X5WFX3MPGGPXEDZSU67KRKFSZCUJV3BY3YDAV7XJJYMC2QODUUEX7QPCQYKYWBXPTLPDCLHBTV3QALJKBZ7ABPG555JSZMXOXIFEBLJ4MTK3B3OAJQCZMBMZZOXRTPMBRU64KIL2VOOTSSBADMRED3DXOA', 'permissions': {'consentToken': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLjQ2Mzc5MGMwLTgxODEtNGFkOS04YjRkLTQ5YTU1NDlhNDcwYiIsImV4cCI6MTcwNTg1NTA3OSwiaWF0IjoxNzA1ODUxNDc5LCJuYmYiOjE3MDU4NTE0NzksInByaXZhdGVDbGFpbXMiOnsiaXNEZXByZWNhdGVkIjoidHJ1ZSIsImNvbnNlbnRUb2tlbiI6IkF0emF8SXdFQklJd2s4c2RIQnluSFN0MVgtVkRwM3YzTFBHQmNVRTllWVFJcUdXQ08xVkNvLTdpTFZOWVQtYjZ2R1p2Y0ZDdWk3N3pxYTM4QTMxUHJlMzRGV2U4TVo4SXA2NklFQS1ZXzc2V0o2VFRMTl9aQkpPX3hnbXB3Tnh3SmNpbkRKdjhHeGd5TlhPU042eEx4QXlkbWRXYUZEVW1fNkx1YmhySVBlLXNSclItaUNDWEs4bmdNVElQeVpqYTUyUlZ2dTZXanJXNFZlUXBsdVI3Qjg2UHZINlRrelhYd2tfRlRoSGVCLW9GZG9Id0dqcFl6QWVsRVZZb1BhTDM0TWdhQVAta0MxTmVuRDhlajRlaHF5eG5ocENzT3YtMktlWmJSN2ZYSmRRc0l3Vkk5bXZCN29QVGZTUGl1U08tNDRuNHpMa2R1ZlowIiwiZGV2aWNlSWQiOiJhbXpuMS5hc2suZGV2aWNlLkFNQVdUUERGQzZUV0xWQ0g3REtBNU80RDU3NkRVUUw3NVhOTkY3QlVaUUxBRlQ0V0VZWlZQV0xDRUg2Sk9ORUZXQlo2TU9FUDRLVzZGUDZaVEkzUVVFQllDTEtBWVpaWUtKT0dDRU83WDdMSEs0SlVVQkVUN1hUTjVRVlgzNFdTUkxLNVVJVUhGR0xGNTVKQTVVVUNPQVpEQjYzRlNLRzM2SlNIQUI1NlpINEJWSzJFNVdVWlNaUzVHQlczWElMREhaVEZaTFdPVklEVzNUNzQiLCJ1c2VySWQiOiJhbXpuMS5hc2suYWNjb3VudC5BTUFSVFZPUVRIRUNaUkJZRkJZTU5PRDNBQVZDQ1NKTUJZSDQ3R1ZZWkQ2Q1U3SkFZR0dMVjVGS0hOV1pFREpDWk5aNkVJWTJQN0NNNFRRVFo3WDVXRlgzTVBHR1BYRURaU1U2N0tSS0ZTWkNVSlYzQlkzWURBVjdYSkpZTUMyUU9EVVVFWDdRUENRWUtZV0JYUFRMUERDTEhCVFYzUUFMSktCWjdBQlBHNTU1SlNaTVhPWElGRUJMSjRNVEszQjNPQUpRQ1pNQk1aWk9YUlRQTUJSVTY0S0lMMlZPT1RTU0JBRE1SRUQzRFhPQSJ9fQ.D88tzZvT0fV3HneaUAZ_vGR4PAKo0-6vc8kms71JnUqJIPjjSCUodSkeoFmrdM3spKUYVhVbJzPfzPjS3tD8AB8jEUUiCNDySgoFA8mfRND_v98bRaIOz0h7zpGRGpL9oeeyi2mbTdvdq6LOKRI4Rqf3ScBYnWybbxFdSvJNuo5aLslBzQ-aOe5kTjLUjKHCkXF3d_cKzli03kROBwlZILSKVr1RWFCtMP3QkKNrHtsFBYg4W1530p5_Xun99-DmnDELacJlaHwyU1GSZFLyiejglI84UqtTQ8mRgD5C17QWfHSpW7r8ZVrP5KnbheTk0ZLelRb3bcKZQGKMgpJQQw'}}, 'device': {'deviceId': 'amzn1.ask.device.AMAWTPDFC6TWLVCH7DKA5O4D576DUQL75XNNF7BUZQLAFT4WEYZVPWLCEH6JONEFWBZ6MOEP4KW6FP6ZTI3QUEBYCLKAYZZYKJOGCEO7X7LHK4JUUBET7XTN5QVX34WSRLK5UIUHFGLF55JA5UUCOAZDB63FSKG36JSHAB56ZH4BVK2E5WUZSZS5GBW3XILDHZTFZLWOVIDW3T74', 'supportedInterfaces': {'AudioPlayer': {}}}, 'apiEndpoint': 'https://api.eu.amazonalexa.com', 'apiAccessToken': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5ldS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLjQ2Mzc5MGMwLTgxODEtNGFkOS04YjRkLTQ5YTU1NDlhNDcwYiIsImV4cCI6MTcwNTg1MTUzOSwiaWF0IjoxNzA1ODUxNDc5LCJuYmYiOjE3MDU4NTE0NzksInByaXZhdGVDbGFpbXMiOnsiY29udGV4dCI6IkFBQUFBQUFBQVFCNDJlMG1yVkt1WVM4blpKV011YW51aWdFQUFBQUFBQUM4MFM1dC9WUzFnL2ZPQnl5ZlFNV2VzYW1pZVhNOFFCSmlETUh5OEtMemJ6LzN1eUdLK2hrT3M2NzRDbmtFdmRDcElOcW8xZkdGa2xITks3dklUSUdyVWdZbVB4cWlMcHRabHJranowZzJxRk1PWFUwdk9ENUZBcGNHRnhVSVdwZkF5aVIvSC9sZldvRzVRcHNuVVVQY3ZwbWFRMXhCeFpudnNmWVBGSkRoODJobXJUUnlRdThwV0l5TDJnOVRDc3E4cWZtOGplYSsxTXdzb2src0h4cWpYNkUvalIyb09nMThyeHFxZGxQdjNES1VhUlJFUkNmNHozSUhTTUNzOVc5OHFYMjNhdWcyM20xR25GWjVaSWoveVJ3NEdZVUVzTFVPQ21LVUlLdDYzVzM2NnRESkhDSDFvUXVPMm1XbWlGMWk1eTEwa3Y3M3QvZ2RFVXd2cEt4ZVR2ZWRmcUM3SFBsaUx1alJtY3E4VEYwa0ZaNng2d2dRYWVEbjF4dzNqNG4rN2NXMTB5UGhCSWd5WXZtMWRoSVR3QkhKbVpieWJPREQ2SGx6ZDhFbC8xYktuLy81cFE5MWptWTVPT292d3ZQaUNmRE9RUnRBRTdPRmdKNWdqUy9SdXFVcmZwOEUrc3JZdGJaSWxJTURUSHdnZERsRGtUaytCNUdCYkxYVnpmRGJrWVBzNEpiL1VudUsiLCJjb25zZW50VG9rZW4iOiJBdHphfEl3RUJJSXdrOHNkSEJ5bkhTdDFYLVZEcDN2M0xQR0JjVUU5ZVlRSXFHV0NPMVZDby03aUxWTllULWI2dkdadmNGQ3VpNzd6cWEzOEEzMVByZTM0RldlOE1aOElwNjZJRUEtWV83NldKNlRUTE5fWkJKT194Z21wd054d0pjaW5ESnY4R3hneU5YT1NONnhMeEF5ZG1kV2FGRFVtXzZMdWJocklQZS1zUnJSLWlDQ1hLOG5nTVRJUHlaamE1MlJWdnU2V2pyVzRWZVFwbHVSN0I4NlB2SDZUa3pYWHdrX0ZUaEhlQi1vRmRvSHdHanBZekFlbEVWWW9QYUwzNE1nYUFQLWtDMU5lbkQ4ZWo0ZWhxeXhuaHBDc092LTJLZVpiUjdmWEpkUXNJd1ZJOW12QjdvUFRmU1BpdVNPLTQ0bjR6TGtkdWZaMCIsImRldmljZUlkIjoiYW16bjEuYXNrLmRldmljZS5BTUFXVFBERkM2VFdMVkNIN0RLQTVPNEQ1NzZEVVFMNzVYTk5GN0JVWlFMQUZUNFdFWVpWUFdMQ0VINkpPTkVGV0JaNk1PRVA0S1c2RlA2WlRJM1FVRUJZQ0xLQVlaWllLSk9HQ0VPN1g3TEhLNEpVVUJFVDdYVE41UVZYMzRXU1JMSzVVSVVIRkdMRjU1SkE1VVVDT0FaREI2M0ZTS0czNkpTSEFCNTZaSDRCVksyRTVXVVpTWlM1R0JXM1hJTERIWlRGWkxXT1ZJRFczVDc0IiwidXNlcklkIjoiYW16bjEuYXNrLmFjY291bnQuQU1BUlRWT1FUSEVDWlJCWUZCWU1OT0QzQUFWQ0NTSk1CWUg0N0dWWVpENkNVN0pBWUdHTFY1RktITldaRURKQ1pOWjZFSVkyUDdDTTRUUVRaN1g1V0ZYM01QR0dQWEVEWlNVNjdLUktGU1pDVUpWM0JZM1lEQVY3WEpKWU1DMlFPRFVVRVg3UVBDUVlLWVdCWFBUTFBEQ0xIQlRWM1FBTEpLQlo3QUJQRzU1NUpTWk1YT1hJRkVCTEo0TVRLM0IzT0FKUUNaTUJNWlpPWFJUUE1CUlU2NEtJTDJWT09UU1NCQURNUkVEM0RYT0EifX0.EhHzZgPBUMDnWV53Ocm0pFUjWYDZIZ_s0O1KXHyvWZwwS_MhGXIgbeLv9nPl1yfYTDOYBZTExKi-b2hFPjYbHROxLyFqkrasz3Ikl6BgtiB7w_YgjvZPvWNls79dVdm9XyhHWYYY39jfSDxAPUELfhDgnk6V_dOHrVnYp4Ld_MYMV7YmYM_bqV-AJvIu9ymnuFGBh6OaqySgemCgknHHdnoxWv8gR2RpG-Wxs0zS5eqaKVEskant0tXUzPT7jgQOWtw9SEZn0vZktWZml8o8ipPMByNrSdZDsscIUWOaodJ2uj6-NpUceqhSM-tmo1U9PQQXMioninPtRxt-pr2PkA'}}, 'request': {'type': 'AudioPlayer.PlaybackFailed', 'requestId': 'amzn1.echo-api.request.4d9a4221-9e96-4721-a5fb-2d7fb13e911f', 'timestamp': '2024-01-21T15:37:59Z', 'locale': 'de-DE', 'currentPlaybackState': {'offsetInMilliseconds': 0, 'token': 's=0&sr=0&a=1&i=Search&query=freestyler&l=0&v0=ymNFyxvIdaM&p=0&v1=KLH2zNdXsmA&v2=nbre00wgcGE&v3=pQICGZd9-SA&v4=So_pKHgP_1k&v5=qFaJdnbh2JQ&v6=JAr-RVGsgFg&v7=rFRPbOCQ61U&v8=9IVefA8UYC0&v9=XZzRENQU4Q0&v10=Wrdmi3zn6YM&v11=VYK1vn6i9DE&v12=jOL1WbCttp8&v13=JhMar_ADi_A&v14=06RJfRrt6CY&v15=zXOPsxobKSo&v16=LIG-0gr9in0&v17=cSzSxF5jojc&v18=1Rxo25Nq1PM&v19=_coePlaTzII&v20=tlfwzanxK7o&v21=I7eC6VRPjvk&v22=e-G5pOS2VJQ&v23=DQiwLlbWas8&v24=l2rlK6sYKSk&v25=r2QlrxIkwjw&v26=jCQI5TMc6gQ&v27=5YZ58wfOjhc&v28=pzPXttUsNyQ&v29=WK7H4uv-qMA&v30=NZSFCxD5Zvw&v31=9eYzTs07L80&v32=hkcuNwqmCmQ&v33=dVI7DEnPu4A&v34=NT8hz0072Ak&v35=OyV1TStgqy4&v36=68ooqaOTjjU&v37=VU01OK3EKvw&v38=oMy6HEI8WgU&v39=ez9ARO7YDHo&v40=qYhtJopGDCg&v41=6VCT_BpnA2k&v42=YA1wYPcVwlk&v43=Np6FvrfZAn0&v44=g41FSeJz120&v45=inQrMmIodC0&v46=IEufCIoP7OI&v47=uiIpjSKRwMg&v48=Y3cwyY91piY&v49=gBNZwhvzXQA', 'playerActivity': 'STOPPED'}, 'error': {'message': 'Device playback error', 'type': 'MEDIA_ERROR_UNKNOWN'}, 'token': 's=0&sr=0&a=1&i=Search&query=freestyler&l=0&v0=ymNFyxvIdaM&p=0&v1=KLH2zNdXsmA&v2=nbre00wgcGE&v3=pQICGZd9-SA&v4=So_pKHgP_1k&v5=qFaJdnbh2JQ&v6=JAr-RVGsgFg&v7=rFRPbOCQ61U&v8=9IVefA8UYC0&v9=XZzRENQU4Q0&v10=Wrdmi3zn6YM&v11=VYK1vn6i9DE&v12=jOL1WbCttp8&v13=JhMar_ADi_A&v14=06RJfRrt6CY&v15=zXOPsxobKSo&v16=LIG-0gr9in0&v17=cSzSxF5jojc&v18=1Rxo25Nq1PM&v19=_coePlaTzII&v20=tlfwzanxK7o&v21=I7eC6VRPjvk&v22=e-G5pOS2VJQ&v23=DQiwLlbWas8&v24=l2rlK6sYKSk&v25=r2QlrxIkwjw&v26=jCQI5TMc6gQ&v27=5YZ58wfOjhc&v28=pzPXttUsNyQ&v29=WK7H4uv-qMA&v30=NZSFCxD5Zvw&v31=9eYzTs07L80&v32=hkcuNwqmCmQ&v33=dVI7DEnPu4A&v34=NT8hz0072Ak&v35=OyV1TStgqy4&v36=68ooqaOTjjU&v37=VU01OK3EKvw&v38=oMy6HEI8WgU&v39=ez9ARO7YDHo&v40=qYhtJopGDCg&v41=6VCT_BpnA2k&v42=YA1wYPcVwlk&v43=Np6FvrfZAn0&v44=g41FSeJz120&v45=inQrMmIodC0&v46=IEufCIoP7OI&v47=uiIpjSKRwMg&v48=Y3cwyY91piY&v49=gBNZwhvzXQA'}} | [INFO] 2024-01-21T15:37:59.278Z 06a1e1dd-aad5-4cbf-9865-701cae620545 {'version': '1.0', 'context': {'Viewports': [{'type': 'APLT', 'id': 'main', 'supportedProfiles': ['FOUR_CHARACTER_CLOCK'], 'lineLength': 4, 'lineCount': 1, 'characterFormat': 'SEVEN_SEGMENT', 'interSegments': [{'x': 2, 'y': 0, 'characters': "':.'"}]}], 'AudioPlayer': {'offsetInMilliseconds': 0, 'token': 's=0&sr=0&a=1&i=Search&query=freestyler&l=0&v0=ymNFyxvIdaM&p=0&v1=KLH2zNdXsmA&v2=nbre00wgcGE&v3=pQICGZd9-SA&v4=So_pKHgP_1k&v5=qFaJdnbh2JQ&v6=JAr-RVGsgFg&v7=rFRPbOCQ61U&v8=9IVefA8UYC0&v9=XZzRENQU4Q0&v10=Wrdmi3zn6YM&v11=VYK1vn6i9DE&v12=jOL1WbCttp8&v13=JhMar_ADi_A&v14=06RJfRrt6CY&v15=zXOPsxobKSo&v16=LIG-0gr9in0&v17=cSzSxF5jojc&v18=1Rxo25Nq1PM&v19=_coePlaTzII&v20=tlfwzanxK7o&v21=I7eC6VRPjvk&v22=e-G5pOS2VJQ&v23=DQiwLlbWas8&v24=l2rlK6sYKSk&v25=r2QlrxIkwjw&v26=jCQI5TMc6gQ&v27=5YZ58wfOjhc&v28=pzPXttUsNyQ&v29=WK7H4uv-qMA&v30=NZSFCxD5Zvw&v31=9eYzTs07L80&v32=hkcuNwqmCmQ&v33=dVI7DEnPu4A&v34=NT8hz0072Ak&v35=OyV1TStgqy4&v36=68ooqaOTjjU&v37=VU01OK3EKvw&v38=oMy6HEI8WgU&v39=ez9ARO7YDHo&v40=qYhtJopGDCg&v41=6VCT_BpnA2k&v42=YA1wYPcVwlk&v43=Np6FvrfZAn0&v44=g41FSeJz120&v45=inQrMmIodC0&v46=IEufCIoP7OI&v47=uiIpjSKRwMg&v48=Y3cwyY91piY&v49=gBNZwhvzXQA', 'playerActivity': 'STOPPED'}, 'Extensions': {'available': {}}, 'System': {'application': {'applicationId': 'amzn1.ask.skill.463790c0-8181-4ad9-8b4d-49a5549a470b'}, 'user': {'userId': 'amzn1.ask.account.AMARTVOQTHECZRBYFBYMNOD3AAVCCSJMBYH47GVYZD6CU7JAYGGLV5FKHNWZEDJCZNZ6EIY2P7CM4TQTZ7X5WFX3MPGGPXEDZSU67KRKFSZCUJV3BY3YDAV7XJJYMC2QODUUEX7QPCQYKYWBXPTLPDCLHBTV3QALJKBZ7ABPG555JSZMXOXIFEBLJ4MTK3B3OAJQCZMBMZZOXRTPMBRU64KIL2VOOTSSBADMRED3DXOA', 'permissions': {'consentToken': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLjQ2Mzc5MGMwLTgxODEtNGFkOS04YjRkLTQ5YTU1NDlhNDcwYiIsImV4cCI6MTcwNTg1NTA3OSwiaWF0IjoxNzA1ODUxNDc5LCJuYmYiOjE3MDU4NTE0NzksInByaXZhdGVDbGFpbXMiOnsiaXNEZXByZWNhdGVkIjoidHJ1ZSIsImNvbnNlbnRUb2tlbiI6IkF0emF8SXdFQklJd2s4c2RIQnluSFN0MVgtVkRwM3YzTFBHQmNVRTllWVFJcUdXQ08xVkNvLTdpTFZOWVQtYjZ2R1p2Y0ZDdWk3N3pxYTM4QTMxUHJlMzRGV2U4TVo4SXA2NklFQS1ZXzc2V0o2VFRMTl9aQkpPX3hnbXB3Tnh3SmNpbkRKdjhHeGd5TlhPU042eEx4QXlkbWRXYUZEVW1fNkx1YmhySVBlLXNSclItaUNDWEs4bmdNVElQeVpqYTUyUlZ2dTZXanJXNFZlUXBsdVI3Qjg2UHZINlRrelhYd2tfRlRoSGVCLW9GZG9Id0dqcFl6QWVsRVZZb1BhTDM0TWdhQVAta0MxTmVuRDhlajRlaHF5eG5ocENzT3YtMktlWmJSN2ZYSmRRc0l3Vkk5bXZCN29QVGZTUGl1U08tNDRuNHpMa2R1ZlowIiwiZGV2aWNlSWQiOiJhbXpuMS5hc2suZGV2aWNlLkFNQVdUUERGQzZUV0xWQ0g3REtBNU80RDU3NkRVUUw3NVhOTkY3QlVaUUxBRlQ0V0VZWlZQV0xDRUg2Sk9ORUZXQlo2TU9FUDRLVzZGUDZaVEkzUVVFQllDTEtBWVpaWUtKT0dDRU83WDdMSEs0SlVVQkVUN1hUTjVRVlgzNFdTUkxLNVVJVUhGR0xGNTVKQTVVVUNPQVpEQjYzRlNLRzM2SlNIQUI1NlpINEJWSzJFNVdVWlNaUzVHQlczWElMREhaVEZaTFdPVklEVzNUNzQiLCJ1c2VySWQiOiJhbXpuMS5hc2suYWNjb3VudC5BTUFSVFZPUVRIRUNaUkJZRkJZTU5PRDNBQVZDQ1NKTUJZSDQ3R1ZZWkQ2Q1U3SkFZR0dMVjVGS0hOV1pFREpDWk5aNkVJWTJQN0NNNFRRVFo3WDVXRlgzTVBHR1BYRURaU1U2N0tSS0ZTWkNVSlYzQlkzWURBVjdYSkpZTUMyUU9EVVVFWDdRUENRWUtZV0JYUFRMUERDTEhCVFYzUUFMSktCWjdBQlBHNTU1SlNaTVhPWElGRUJMSjRNVEszQjNPQUpRQ1pNQk1aWk9YUlRQTUJSVTY0S0lMMlZPT1RTU0JBRE1SRUQzRFhPQSJ9fQ.D88tzZvT0fV3HneaUAZ_vGR4PAKo0-6vc8kms71JnUqJIPjjSCUodSkeoFmrdM3spKUYVhVbJzPfzPjS3tD8AB8jEUUiCNDySgoFA8mfRND_v98bRaIOz0h7zpGRGpL9oeeyi2mbTdvdq6LOKRI4Rqf3ScBYnWybbxFdSvJNuo5aLslBzQ-aOe5kTjLUjKHCkXF3d_cKzli03kROBwlZILSKVr1RWFCtMP3QkKNrHtsFBYg4W1530p5_Xun99-DmnDELacJlaHwyU1GSZFLyiejglI84UqtTQ8mRgD5C17QWfHSpW7r8ZVrP5KnbheTk0ZLelRb3bcKZQGKMgpJQQw'}}, 'device': {'deviceId': 'amzn1.ask.device.AMAWTPDFC6TWLVCH7DKA5O4D576DUQL75XNNF7BUZQLAFT4WEYZVPWLCEH6JONEFWBZ6MOEP4KW6FP6ZTI3QUEBYCLKAYZZYKJOGCEO7X7LHK4JUUBET7XTN5QVX34WSRLK5UIUHFGLF55JA5UUCOAZDB63FSKG36JSHAB56ZH4BVK2E5WUZSZS5GBW3XILDHZTFZLWOVIDW3T74', 'supportedInterfaces': {'AudioPlayer': {}}}, 'apiEndpoint': 'https://api.eu.amazonalexa.com', 'apiAccessToken': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5ldS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLjQ2Mzc5MGMwLTgxODEtNGFkOS04YjRkLTQ5YTU1NDlhNDcwYiIsImV4cCI6MTcwNTg1MTUzOSwiaWF0IjoxNzA1ODUxNDc5LCJuYmYiOjE3MDU4NTE0NzksInByaXZhdGVDbGFpbXMiOnsiY29udGV4dCI6IkFBQUFBQUFBQVFCNDJlMG1yVkt1WVM4blpKV011YW51aWdFQUFBQUFBQUM4MFM1dC9WUzFnL2ZPQnl5ZlFNV2VzYW1pZVhNOFFCSmlETUh5OEtMemJ6LzN1eUdLK2hrT3M2NzRDbmtFdmRDcElOcW8xZkdGa2xITks3dklUSUdyVWdZbVB4cWlMcHRabHJranowZzJxRk1PWFUwdk9ENUZBcGNHRnhVSVdwZkF5aVIvSC9sZldvRzVRcHNuVVVQY3ZwbWFRMXhCeFpudnNmWVBGSkRoODJobXJUUnlRdThwV0l5TDJnOVRDc3E4cWZtOGplYSsxTXdzb2src0h4cWpYNkUvalIyb09nMThyeHFxZGxQdjNES1VhUlJFUkNmNHozSUhTTUNzOVc5OHFYMjNhdWcyM20xR25GWjVaSWoveVJ3NEdZVUVzTFVPQ21LVUlLdDYzVzM2NnRESkhDSDFvUXVPMm1XbWlGMWk1eTEwa3Y3M3QvZ2RFVXd2cEt4ZVR2ZWRmcUM3SFBsaUx1alJtY3E4VEYwa0ZaNng2d2dRYWVEbjF4dzNqNG4rN2NXMTB5UGhCSWd5WXZtMWRoSVR3QkhKbVpieWJPREQ2SGx6ZDhFbC8xYktuLy81cFE5MWptWTVPT292d3ZQaUNmRE9RUnRBRTdPRmdKNWdqUy9SdXFVcmZwOEUrc3JZdGJaSWxJTURUSHdnZERsRGtUaytCNUdCYkxYVnpmRGJrWVBzNEpiL1VudUsiLCJjb25zZW50VG9rZW4iOiJBdHphfEl3RUJJSXdrOHNkSEJ5bkhTdDFYLVZEcDN2M0xQR0JjVUU5ZVlRSXFHV0NPMVZDby03aUxWTllULWI2dkdadmNGQ3VpNzd6cWEzOEEzMVByZTM0RldlOE1aOElwNjZJRUEtWV83NldKNlRUTE5fWkJKT194Z21wd054d0pjaW5ESnY4R3hneU5YT1NONnhMeEF5ZG1kV2FGRFVtXzZMdWJocklQZS1zUnJSLWlDQ1hLOG5nTVRJUHlaamE1MlJWdnU2V2pyVzRWZVFwbHVSN0I4NlB2SDZUa3pYWHdrX0ZUaEhlQi1vRmRvSHdHanBZekFlbEVWWW9QYUwzNE1nYUFQLWtDMU5lbkQ4ZWo0ZWhxeXhuaHBDc092LTJLZVpiUjdmWEpkUXNJd1ZJOW12QjdvUFRmU1BpdVNPLTQ0bjR6TGtkdWZaMCIsImRldmljZUlkIjoiYW16bjEuYXNrLmRldmljZS5BTUFXVFBERkM2VFdMVkNIN0RLQTVPNEQ1NzZEVVFMNzVYTk5GN0JVWlFMQUZUNFdFWVpWUFdMQ0VINkpPTkVGV0JaNk1PRVA0S1c2RlA2WlRJM1FVRUJZQ0xLQVlaWllLSk9HQ0VPN1g3TEhLNEpVVUJFVDdYVE41UVZYMzRXU1JMSzVVSVVIRkdMRjU1SkE1VVVDT0FaREI2M0ZTS0czNkpTSEFCNTZaSDRCVksyRTVXVVpTWlM1R0JXM1hJTERIWlRGWkxXT1ZJRFczVDc0IiwidXNlcklkIjoiYW16bjEuYXNrLmFjY291bnQuQU1BUlRWT1FUSEVDWlJCWUZCWU1OT0QzQUFWQ0NTSk1CWUg0N0dWWVpENkNVN0pBWUdHTFY1RktITldaRURKQ1pOWjZFSVkyUDdDTTRUUVRaN1g1V0ZYM01QR0dQWEVEWlNVNjdLUktGU1pDVUpWM0JZM1lEQVY3WEpKWU1DMlFPRFVVRVg3UVBDUVlLWVdCWFBUTFBEQ0xIQlRWM1FBTEpLQlo3QUJQRzU1NUpTWk1YT1hJRkVCTEo0TVRLM0IzT0FKUUNaTUJNWlpPWFJUUE1CUlU2NEtJTDJWT09UU1NCQURNUkVEM0RYT0EifX0.EhHzZgPBUMDnWV53Ocm0pFUjWYDZIZ_s0O1KXHyvWZwwS_MhGXIgbeLv9nPl1yfYTDOYBZTExKi-b2hFPjYbHROxLyFqkrasz3Ikl6BgtiB7w_YgjvZPvWNls79dVdm9XyhHWYYY39jfSDxAPUELfhDgnk6V_dOHrVnYp4Ld_MYMV7YmYM_bqV-AJvIu9ymnuFGBh6OaqySgemCgknHHdnoxWv8gR2RpG-Wxs0zS5eqaKVEskant0tXUzPT7jgQOWtw9SEZn0vZktWZml8o8ipPMByNrSdZDsscIUWOaodJ2uj6-NpUceqhSM-tmo1U9PQQXMioninPtRxt-pr2PkA'}}, 'request': {'type': 'AudioPlayer.PlaybackFailed', 'requestId': 'amzn1.echo-api.request.4d9a4221-9e96-4721-a5fb-2d7fb13e911f', 'timestamp': '2024-01-21T15:37:59Z', 'locale': 'de-DE', 'currentPlaybackState': {'offsetInMilliseconds': 0, 'token': 's=0&sr=0&a=1&i=Search&query=freestyler&l=0&v0=ymNFyxvIdaM&p=0&v1=KLH2zNdXsmA&v2=nbre00wgcGE&v3=pQICGZd9-SA&v4=So_pKHgP_1k&v5=qFaJdnbh2JQ&v6=JAr-RVGsgFg&v7=rFRPbOCQ61U&v8=9IVefA8UYC0&v9=XZzRENQU4Q0&v10=Wrdmi3zn6YM&v11=VYK1vn6i9DE&v12=jOL1WbCttp8&v13=JhMar_ADi_A&v14=06RJfRrt6CY&v15=zXOPsxobKSo&v16=LIG-0gr9in0&v17=cSzSxF5jojc&v18=1Rxo25Nq1PM&v19=_coePlaTzII&v20=tlfwzanxK7o&v21=I7eC6VRPjvk&v22=e-G5pOS2VJQ&v23=DQiwLlbWas8&v24=l2rlK6sYKSk&v25=r2QlrxIkwjw&v26=jCQI5TMc6gQ&v27=5YZ58wfOjhc&v28=pzPXttUsNyQ&v29=WK7H4uv-qMA&v30=NZSFCxD5Zvw&v31=9eYzTs07L80&v32=hkcuNwqmCmQ&v33=dVI7DEnPu4A&v34=NT8hz0072Ak&v35=OyV1TStgqy4&v36=68ooqaOTjjU&v37=VU01OK3EKvw&v38=oMy6HEI8WgU&v39=ez9ARO7YDHo&v40=qYhtJopGDCg&v41=6VCT_BpnA2k&v42=YA1wYPcVwlk&v43=Np6FvrfZAn0&v44=g41FSeJz120&v45=inQrMmIodC0&v46=IEufCIoP7OI&v47=uiIpjSKRwMg&v48=Y3cwyY91piY&v49=gBNZwhvzXQA', 'playerActivity': 'STOPPED'}, 'error': {'message': 'Device playback error', 'type': 'MEDIA_ERROR_UNKNOWN'}, 'token': 's=0&sr=0&a=1&i=Search&query=freestyler&l=0&v0=ymNFyxvIdaM&p=0&v1=KLH2zNdXsmA&v2=nbre00wgcGE&v3=pQICGZd9-SA&v4=So_pKHgP_1k&v5=qFaJdnbh2JQ&v6=JAr-RVGsgFg&v7=rFRPbOCQ61U&v8=9IVefA8UYC0&v9=XZzRENQU4Q0&v10=Wrdmi3zn6YM&v11=VYK1vn6i9DE&v12=jOL1WbCttp8&v13=JhMar_ADi_A&v14=06RJfRrt6CY&v15=zXOPsxobKSo&v16=LIG-0gr9in0&v17=cSzSxF5jojc&v18=1Rxo25Nq1PM&v19=_coePlaTzII&v20=tlfwzanxK7o&v21=I7eC6VRPjvk&v22=e-G5pOS2VJQ&v23=DQiwLlbWas8&v24=l2rlK6sYKSk&v25=r2QlrxIkwjw&v26=jCQI5TMc6gQ&v27=5YZ58wfOjhc&v28=pzPXttUsNyQ&v29=WK7H4uv-qMA&v30=NZSFCxD5Zvw&v31=9eYzTs07L80&v32=hkcuNwqmCmQ&v33=dVI7DEnPu4A&v34=NT8hz0072Ak&v35=OyV1TStgqy4&v36=68ooqaOTjjU&v37=VU01OK3EKvw&v38=oMy6HEI8WgU&v39=ez9ARO7YDHo&v40=qYhtJopGDCg&v41=6VCT_BpnA2k&v42=YA1wYPcVwlk&v43=Np6FvrfZAn0&v44=g41FSeJz120&v45=inQrMmIodC0&v46=IEufCIoP7OI&v47=uiIpjSKRwMg&v48=Y3cwyY91piY&v49=gBNZwhvzXQA'}}
 2024-01-21T16:37:59.278+01:00Copy[INFO]    2024-01-21T15:37:59.278Z    06a1e1dd-aad5-4cbf-9865-701cae620545    {'message': 'Device playback error', 'type': 'MEDIA_ERROR_UNKNOWN'} | [INFO] 2024-01-21T15:37:59.278Z 06a1e1dd-aad5-4cbf-9865-701cae620545 {'message': 'Device playback error', 'type': 'MEDIA_ERROR_UNKNOWN'}`

I hope somebody can help me

DavidBerdik commented 9 months ago

Hello Justin,

Unfortunately, the formatting of your post seems to be a bit messed up and I am therefore having a hard time understanding what exactly your issue is. That said, I think you may have an issue with how your SSL certificate is configured. When I open https://isseutestgithub.youtube-music-alexa-test.de:4000/dl/ymNFyxvIdaM?f=bestaudio in Chrome, the audio downloads, but clicking on the info icon on the address bar shows the following pop-up.

image

Additionally, curl also reports an SSL certificate issue:

david@David-PC:~$ curl -v https://isseutestgithub.youtube-music-alexa-test.de:4000/dl/ymNFyxvIdaM?f=bestaudio
*   Trying 84.171.124.221:4000...
* Connected to isseutestgithub.youtube-music-alexa-test.de (84.171.124.221) port 4000 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.0 (OUT), TLS header, Certificate Status (22):
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS header, Certificate Status (22):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS header, Finished (20):
* TLSv1.2 (IN), TLS header, Supplemental data (23):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.2 (IN), TLS header, Supplemental data (23):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS header, Unknown (21):
* TLSv1.3 (OUT), TLS alert, unknown CA (560):
* SSL certificate problem: unable to get local issuer certificate
* Closing connection 0
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
justinh998 commented 9 months ago

Hi David Berik Thank your for the quick answer I've corrected the formatting. Not sure what happened, but it definitely shouldn't be like that.

The certificate error is strange; I can actually reproduce it in Chrome (no issues in Edge) only when requesting "/dl." If, for example, I request "/meta," the connection is secure.

I simply added my SSL certificates from Let's Encrypt to Unicorn to enable HTTPS.

ssl_keyfile="./key.pem", ssl_certfile="./cert.pem"

I'll take another look at that; there must be a way to solve it without needing a reverse proxy for this particular case.

My main issue is that Alexa isn't playing audio due to an unknown error (see the last entry in the large log at the end of the first message). This error doesn't seem to be related to the certificate because there would be another certificate error in the log if it were. I don't know where this error is coming from. By the way, in your code, it states that my website accesses Alexa not as https://test.de:4000/dl/jfhs872?f?bestaudio but rather as https://test.de:4000/api/dl/jfhs872?f=bestaudio. However, when I include "api" in there, I always get a "not found" error. I don't see any "api" in the code (Server.py) either. The error was easily corrected by simply removing "api."

DavidBerdik commented 9 months ago

Thank your for the quick answer I've corrected the formatting. Not sure what happened, but it definitely shouldn't be like that.

You're welcome! Thanks for fixing it! It's much easier to read now, but unfortunately, I don't have anything to add to what I shared earlier.

I'll take another look at that; there must be a way to solve it without needing a reverse proxy for this particular case.

I am sure you probably can run it directly with some modifications, but since my setup uses a reverse proxy, I have never bothered to research it.

My main issue is that Alexa isn't playing audio due to an unknown error (see the last entry in the large log at the end of the first message). This error doesn't seem to be related to the certificate because there would be another certificate error in the log if it were. I don't know where this error is coming from.

What is the type of Alexa device that you're trying to use for playback?

By the way, in your code, it states that my website accesses Alexa not as https://test.de:4000/dl/jfhs872?f?bestaudio but rather as https://test.de:4000/api/dl/jfhs872?f=bestaudio. However, when I include "api" in there, I always get a "not found" error. I don't see any "api" in the code (Server.py) either. The error was easily corrected by simply removing "api."

Would you mind linking me to the code you're referring to?

justinh998 commented 9 months ago

I am sure you probably can run it directly with some modifications, but since my setup uses a reverse proxy, I have never bothered to research it.

yes I will have a look, I had already looked yesterday but nothing really found. if not I have to create an isseu in the uvicorn github.

What is the type of Alexa device that you're trying to use for playback?

i use an echo dot (3 gen), but the error also occurs when i call up the skill in the alexa app on my cell phone. so it's not device-specific.

Would you mind linking me to the code you're referring to?

Of course! I am referring to this code snippet from lines 944 to 973, particularly line 973: So this line : return 'https://' + environ['ytdl_web_address'] + '/api/dl/' + id + '?f=bestaudio&preshared=' + environ['ytdl_preshared_key'], first_stream.title

The web address you return with this code is e.g. https://test.de:4000/api/dl/163Hudhs?f=bestaudio I'll leave out the preshared key now, I don't use it . But this UrL does not work, because I always get a not found (i.e. the server responds with json saying not found). but if I leave out the json and there : https://test.de:4000/dl/163Hudhs?f=bestaudio, it works. Also in @wes1993 code , is the api in the adress . Do you have any service running outside the server that you address with api?

DavidBerdik commented 9 months ago

i use an echo dot (3 gen), but the error also occurs when i call up the skill in the alexa app on my cell phone. so it's not device-specific.

Alright. The reason I asked about the device you're using is because, at least from what I have read elsewhere, older Alexa devices just don't work with this skill. That said, I have a 3rd gen Echo Dot that I use this with and it works just fine.

Of course! I am referring to this code snippet from lines 944 to 973, particularly line 973: So this line : return 'https://' + environ['ytdl_web_address'] + '/api/dl/' + id + '?f=bestaudio&preshared=' + environ['ytdl_preshared_key'], first_stream.title

The web address you return with this code is e.g. https://test.de:4000/api/dl/163Hudhs?f=bestaudio I'll leave out the preshared key now, I don't use it . But this UrL does not work, because I always get a not found (i.e. the server responds with json saying not found). but if I leave out the json and there : https://test.de:4000/dl/163Hudhs?f=bestaudio, it works.

Ah, I see the issue. You're looking at an older version of that function. The branch in this repository with the most recent code changes as of this reply is add-video-thumbnail-to-title-card. I significantly modified the code for this function as compared to what you shared. Take a look at the latest version here.

Also in @wes1993 code , is the api in the adress . Do you have any service running outside the server that you address with api?

The API component of the address is an artifact from youtube-dl-web, which is the project upon which the YouTube Stream Repeater is based. Basically, this project took the code from that project and stripped out most of the components that I did not need. The original project used /api/ as part of the URL for its reverse proxy configuration (see here), but I did not need it for this fork, so I removed it.

justinh998 commented 9 months ago

Ah, I see the issue. You're looking at an older version of that function. The branch in this repository with the most recent code changes as of this reply is add-video-thumbnail-to-title-card. I significantly modified the code for this function as compared to what you shared. Take a look at the latest version here.

Interesting, I'll put the code into kdiff (a tool for bit-by-bit comparisons). There, I can compare it with wes1993's code and my current code. After a quick look, it seems that only the get_url_and_title_ytdl_web function has been changed, and now the video title is pulled through the YouTube Data API. The part about thumbnails and the title card (whatever that is, the title card) sounds interesting, but it doesn't matter to me since it only makes sense and works on devices with displays. However, the branch seems to be one version behind wes1993's code or one commit behind the master branch. In the new version by wes1993, progressive play has definitely been added, which is likely useful, and apparently, YouTube DL has been updated. I'll merge both locally and examine the exact differences later this afternoon. I could also imagine that the device might encounter a playback error because it wants to download the file from my server (it's not a stream but a file), but that could fail due to a certificate error. Although, there would certainly be an error, similar to when I try to access /meta.One thing definitely supports this, namely, when I try to play a song using Alexa, there are no incoming requests at the server that you could actually see in the log. Although I'm not even entirely sure if the server actually downloads the audio file from the YouTube servers and forwards it to me, or if it's indeed a stream that VLC, for example, interprets incorrectly. However, that is an entirely different topic and has nothing to do with this issue.

justinh998 commented 9 months ago

Ok, I have solved the problem, it was actually the certificate. I simply changed the ssl certfile from cert.pem to Fullchain.pem. It works for now except for a few things like the fast forward function / jump function which leads to problems / errors in several ways. But I will investigate again where the errors are (will be a combination of lambda programming and missing checks in the server code) and then create an isseu or solve it myself. I think my biggest problem is that I am currently training to become an IT specialist in application development (3 months ago) and although I can write and read code, the code seems a bit more complicated. Well, what are ki tools like chat gpt for, which help you in places where you don't know what to do. Thank you for your help.

DavidBerdik commented 9 months ago

After a quick look, it seems that only the get_url_and_title_ytdl_web function has been changed, and now the video title is pulled through the YouTube Data API. The part about thumbnails and the title card (whatever that is, the title card) sounds interesting, but it doesn't matter to me since it only makes sense and works on devices with displays.

My changes to the code to support the title card is just a minor cosmetic change that I made so that when I use the YouTube skill on my Echo Show, it will show the name of the video as well as the thumbnail for the video on the display instead of using a generic title card for everything. Unless you have an Alexa device with a screen, it's not of any value.

However, the branch seems to be one version behind wes1993's code or one commit behind the master branch. In the new version by wes1993, progressive play has definitely been added, which is likely useful, and apparently, YouTube DL has been updated.

I am not sure what "progressive play" refers to, but whatever it is, it sounds like it has the potential to be useful, so I guess I'll have to check it out! As for youtube-dl getting updated, it's a good thing that he updated it, but for my use case, it's irrelevant since I use the YouTube Stream Repeater instead. Of course, the YouTube Stream Repeater uses youtube-dl (actually, it uses the yt-dlp fork) for its functionality as well, but the point is that the Lambda function is not using it directly. Rather, it just tells Alexa to access YouTube via the YouTube Stream Repeater, and when Alexa connects to the repeater, the repeater itself uses it instead of the Lambda function doing it directly.

I could also imagine that the device might encounter a playback error because it wants to download the file from my server (it's not a stream but a file)

This has never been an issue for me. Although it is true that directly accessing a URL through the stream repeater via a browser causes a file download, you can pass that URL to Alexa and it will stream its content. Similarly, you can use VLC Media Player to open the URL and it will stream it instead of downloading.

One thing definitely supports this, namely, when I try to play a song using Alexa, there are no incoming requests at the server that you could actually see in the log.

Well, the server does log requests that are made to it, which means that for whatever reason, Alexa is not accessing your server.

Although I'm not even entirely sure if the server actually downloads the audio file from the YouTube servers and forwards it to me, or if it's indeed a stream that VLC, for example, interprets incorrectly. However, that is an entirely different topic and has nothing to do with this issue.

The server is essentially acting as a proxy between your client and YouTube. Whenever a client connects to the YouTube Stream Repeater, it reaches out to YouTube on your behalf and starts downloading the content from YouTube and serving it to you directly from YouTube. It's not downloading the content and then playing it from a local cache of the content or anything like that.

Ok, I have solved the problem, it was actually the certificate.

Great!

It works for now except for a few things like the fast forward function / jump function which leads to problems / errors in several ways.

Yeah, this feature has been broken for quite a while. I know about it, but I haven't had time to look in to properly fixing it, and I don't really use it very often, so I've just dealt with it. If you manage to find a solution for it, that would be awesome!

I think my biggest problem is that I am currently training to become an IT specialist in application development (3 months ago) and although I can write and read code, the code seems a bit more complicated.

Just enjoy the journey! Learning how to work with code that you aren't familiar with can be fun! 😁

Thank you for your help.

You're welcome!