Giter Site home page Giter Site logo

widevine_keys's People

Contributors

medvm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

widevine_keys's Issues

Channel 4

Does this script work with Channel 4? If yes can you provide a basic guide on how to proceed?

Thank you!

Response [415]

license response status: <Response [415]>

server did not issue license, check json params in POST request.

Add [xfinity stream] support

MPD: https://cdn-ec-nap-313.ipvod-tve.top.comcast.net/ipvod16/ctve/1990390339876/1641476100367/manifest.mpd
License URL: https://mds.ccp.xcal.tv/license
curl commands:
`import requests

headers = {
'authority': 'mds.ccp.xcal.tv',
'sec-ch-ua': '" Not;A Brand";v="99", "Google Chrome";v="97", "Chromium";v="97"',
'accept': 'application/vnd.xcal.mds.licenseResponse+json; version=1',
'content-type': 'application/vnd.xcal.mds.licenseRequest+json; version=1',
'sec-ch-ua-mobile': '?0',
'x-moneytrace': 'trace-id=d516709a-a654-476d-aba9-2c71dc099ba4;parent-id=557717551724929907;span-id=678784004793640124;',
'user-agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36',
'sec-ch-ua-platform': '"Windows"',
'origin': 'https://www.xfinity.com',
'sec-fetch-site': 'cross-site',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
'referer': 'https://www.xfinity.com/',
'accept-language': 'es-419,es;q=0.9',
}

data = {
'{"keySystem":"widevine","licenseRequest":"CAES7R8SYApeCkgSJDVkYWIyNmFmLWM0ZDUtZDgxZS1jOTRhLWY0YTBhOWYzOTcxNiIgTlZFbjdKbXNpQnFNRmF0S0pmVEM0eV93eHVvb2NTNmMQARoQFz7J0Pbk12h8UVRRD6nmABgBIM2z7Y4GMBU4yoaUtglC B4KDGNvbWNhc3QtcHJvZBIQg8aqEInV5XiN4oOgNuZ25RrAHO2DiB0sXr7B0deYLOdbQMqtRk1OFhX8Z6EBcGhSj8KFv1WxbQmt7NEMY1f8ZY6/cD2613FiIGCDfRqSi4dl9OOXGOJf9oNs94kFFd8S8TQ04QbKdrrj8VbBHAxzxrVarthZTdrrQz2P0eO3xquS4 4k5Pz8RyU8/KsY4ILvdd6c0 M/TfjTKPAGA0Mesz19kKr3C7aAaegmGy3XgkH0PKBHwSWyEyQXZOMdJvMqrc8J8/vgbEvaO219 BnhDV5mJlqa7oHr70q73gAyoPu1CS4ftJXTcaXc9UWH/sqiZp31jgVMfWdBYdhHshOHKm3KrhEwbK2sd4BKRzkTcL HYOSCVmOwVuqqVMDSKp/uTxUb9n2yZOQZpkh 2zqryhR5GyVqVRdhQgJmFJiD2jdWL GyxhwyE lHhb5Je3lg0edE45VVnwwN2T7W9wlFwCHPO4xO8jTvZHNfGimABo7W/TaWn3EJh luz1mNDiFNMlQ6aAJIcoErJiDKRKllgp0lDhqR/ NyZQO2pwrvom8fExYyfC2I0FpiMeo1uRE5TSKMJpxBH27tp1yZ3P42FVvmyempKcz3BXMNMdZzDs/a SKwvDUatScKfNnIR4JrqMCCkTNJNPxxJMEKNkYTtMGh5wLvYvlqQ8yvUSd7INaO6j2lg7CLZNdu/pTAX6Y7fo3/hnliXIrgfqyBdjeM3Oe20z1hz2jw26khpS kX/t97usUYho51/4oe De/cTYMFEHVzPIxCij9/0lpqJ29SF89xBlb9mVFwyE4F4SmYb9lwRf4oDWa1FFwYtOManFAJrk2awY QRFBA9lvg4M8lvWsScN9HXOHJ/7CsopUsxqcbrb4CDJvLKCVDVwe2rxIhnOw1A1jSslG6vsACRdQeqb8hwUm4D43I M56JQv9ZzIRApdVCIsDWDiTMqAbf4nDZ4GArIgo8BWGXnYiUNE3NO/T04gCDuHnnYBI 9FoWcZTWy3qU11mXLwUIbAoerBI0OUu4EpHCkyZ9PjL39aH6x20bJsEEQm uYC0ujxNDXvwTzuFVaR/IbjyqEm/wGCzxx1MKabydfPgG2TWRcDEm1R5wogZuGZofBjfkGkC1kLHjYF5xE yZp iW6f/He/NxY11mO oWBfui4 9x2x5FpZqjS0nxm HG1SVfRpLwdJpY4h1r9khm5dwUiFGSwGtH4ecKrmZa/46KfRji/7Xz5wHzAQD QDsNayz uIEiKRO4waGGOzbRX1J11hPKTn Vt4eFZXhU7QzAv13l8ojifvBmk4d2bI/do9SfgiQ2yot15To sCGiUxc3Va05fv wgjKdQYNe qnmT2ZwGX81oa/LXVQ6CTdx8u59KS3JYdOcICORTXIYVH/FGe1ZmQzhmI6wvrDCvFPIqao8eEfuReIit2rtrvzEbsyMKosEQb/v73gFLx0NYd7NbEmH9cjONuJyayO202k3Kcmy29PH4rkCqROdEIGVw27LSRBIkxeat4QdSQ/QXbJcGiP07xawMUdzttt3Fpd3BX72ygZ6A11DggjSiU/fcgAqlj1PIwlpk2NKxl5n8eyS959SHTP2ho972VFArvRFPXUJYSzdKFyTL8N0ltD dicKTRkdqn7DCom87BFO8F82ESCgv4uY7YePBi22GjmJfgxFv/n 8vvr3iti61NoAQNEMJkYNW9wJLEygWUFSIyoIRQxmvXWRZHILJDKh6h izUj54h5oF7Y7cTR/ GNLT 1efij0R0U7eGyHdvnaxds0as I/ Kf4so6mwpS3rXoDdLw/dkslHZa SW1PPnFaR6nOx973WeGkka9DHf pG3muCSTwg3KPNO8glY1cZ9HVRi0WWnQExH7YVTh7IkKaIUBeK9SBGpa7a g7Y1afzHVyeygZ1eEXQihZC3OUji6qoaa6CyaIMveaAyrdB022oeTuD7hPpO3F220H5qSbd8yvgjs59bRYD8GZQksus oR4ycMrkESNfexd5oAEQiplKZaXGkVdv4nQX4bvIq6YXthVuGW4Y4cjhVqEods5PaeZb3zki9oZAt1rzK7M68MlPWE2cuU/2Rf4g6WIViL4bP335yZyeEPCmwIOOPxmVZbCaUjEQqNi8U VDItEcpjke9CCDMPpu4zqvqEEOFxW/gdUmFhZ diLF2xF9BU52nR/g7jeIEeJ5yOPnjwc/nVY Tqdo1xlC7rYBr/EWYqIrDKpaLAgijQ4ZQ9V45OXfhnk9jcCIR7LVTbKl6MluGLgifNWeBEZUkHygUKZFo6CFDiC233PnbVpuJ6q8gSyp0NOrZmIh7RYvbOOA3jqrhCSxPvN25XQq2uZqMefQIR5cyVG80Fjtt7yX4IrqY6vG87DNUZXI6D9uJpiMgBV/hAuakovvzrT2Cdbk2sLF71JVZXc6wa2bLULogtdA2uSoMUpPFj U549HJgxPtIZXztF7gy3wnR8i2hwtCVuQGtwQjnp5d Hm4AihWt5ezhIcWOIE/fGgUaj/yYIdQlLPl1bIby4INbEGBESmg44FHGeTAkQEqhWESVzRzHwXu9hA6IhwyaU4dk//3s5zcHfIUyZJ81NBhJXiklmQYDbhP Z6QGtrzYDFqb1Vb 990uYsMZGq2UrdWl y2xdcbSoP1VVRgkaF/T4Hf/6op9f8cbwgHyTJNM2WwobV7/WX/7IsGHYq3qsXJWCDExoh/LAdxEPZl2EiCNeeaQNcBkywzjEc0azVgypzAKZ8pyiSR5w3ycJWHNQQD73UVRm3e8nqAid2dCZo/VSsQCFwrRmFBGu6RKXKVP8/JyftDrY41Mp JwDxKlN0i6d fugeM NmzKrRgPPj/Fvek7gwAmdFEIakd7qizSUhRuQaRHbhCqkAda5LG JP/1lsYeU/IVBmtP9viN9FJKyV/T5yJQ2rmD844n4c2kC3MdI6mYbNbB vbh8x0PU7Z5Oi4ZdJ8pMFJw8H498AWdTmKEBQRayIwP 9mA3pSO0C9CfXAWIMmUkGy5Sb/c9J/yx5/43MVF7h9hUxH LuYLMK0z4VU0OQOyzFCjgQO5ylAO9mnAIWqUkTsUFbg6mkllLjXrxE8U ltewIavBifisdEHeG 3dhqRnng0yfq2axdceK30bxAyZxPiS6A35RSxXB3p YP1Qbad/ZGmKHaF9dE5qU9uPbHIQnYPDP/HXdjvT3vt8BbC x4cuImLrlx3K5aYKwVbOJjPL1trRtL4P6WdiQIZrd Sn6DBxOB Gwbi3pye0Uz6ExH7FrLq4/bSY0Hzu0ovqcpO53yYRPqFp3Znj90wPSV2 AfxjGy8pKdayHK FvbI7UfrQrWteSYNEtvtm5EydvVR8rWWT8UqnTO 01mw2VMWXAoslu4q/I0Vk ePSBKcYpGfWlIIMfz6jtXngGpqeOlIN6SyTWlvo i13HpThHRfeTOhEpxyKzO3aCq8BiGprqty6MVy2gePtwnnocChOMkLuhSNg7c8qcEQW8gbT9FH/7LiANCpAm4JHOeee6JkgLtyNr3teQMEST876hS9IsmlRQOPu0f3xYTNtYoiBXimbet0xhj0GhJViyWMpkeusazL5c8aj6YhAqEGyt8kDyv7y5tTqHZj Q09RVaelTgEnCS/EyC4PhPIYHzoJBel1dWkzE RzZkgNSWXjf6BQcxfCJJaq/Sqjd6GOZnGLZdiagY4AZxCVacXKvaokJWED8eCY 9Hg6Kx GYum1CBPaoM2pDpx0wHqsVEzrLENLdbqW8KxD4BJtG8Z0/aMzDT2MdHNchqzdwmcGZndO3mmlrwuVrJDtzes9DH8U6Ma4v4wz7UpUw7nBS9CbzVImqBT5CCHyW5Q/foSCb61pDw591LA2EfjvZmenpT3rVHD430bsGWIQRGQr8yU6qYH8ONvxEOo 3WlSbEDwMYSQyoCTaCkFL0haFJGPm7vxjgkCiszIEv/iqGxMOkQXtfXut9ZuJCRWicRVaIZj9QR7DajCJZvRZ1aAKZ5lr97Ecaw3ofY81V KYaZNXh3LERUlc H2/EDpIKCIpHAjrV/AtMTozhNa5x6WSFExeYbi SfFaTbqKg44JIa6GR49xTRQRoyF337ID9z8tzk/M/TtRjTrSGDkgbnp9sYcu BQaIgXHGb5gKw/HSxoCE/okuKG qCZm086bsgf0MGDYJ/s2yXv3DptKRz10qpnvdETxt1oJQXtxZsniKHDkJhFyWJkdtF25i1jWpsNf0N5MQpC 0OGOkmfxTRXE J4Mxt Ha bFO8Ap10/RJzMBPQdUz N/fPzIgOTLY 27gFY/w5YyJk9ofi9NdN77EQwG2SJ14Z6JXig0wwXSWzU9RQUbljdOkDGu3v1oapKX G/SrONzJHkecmvIc28j3tyLNSt1IlUDf4nWFv1I7C5VfG4176XzkwB1XBmAf4tOxOIAYEPBm6hqDNRYFp7LpxzQX4LtB7qT4IfnXfeKoc8NkxwqJ8E8sv7eW8xJEm80EKu2BEasKbR2CBhioY5GO3 gzDSuh1gpU6J 6mcSoJxYmV/L8FTPOv0/RO/EWZDrVZCAyhsgaTVv65uEJljTKOu0j8KBrNpeW7kF/NKzJ8TfF2/FqHWqMoRfE8Q8m5ZjLG6Ej2SbAs2fmYT084TH oBoDnN8dCcjDBa7yWISF5735zOtDfaNfWAyCexJcutV 8sUEU0i61muhNl4Tuu82oDjFIpYU5ddGs17wpCNspqiYPec5QEbd2tYJAzubPj9K88Z/2qYy4e kSSOcHhPFAJ7gSlWwBIpRkq I4DfU/bKmPv0xNzMfaCk bFlhZNIOF3PEMEIYawL6tPUPmmdnQQHwOJ0p8oEDPD S K5UyLJ tTiRywpBPWFaeIZPsUyIQlg3TaRMvhB5uBh/S/X35xyqAAijOAfnNK5qOz2BQ6NzSpfb5h9uuSAmIPQHgUBBT1nS05tEhSTbyixCfcYAZ1ug0Ip4sboXFqKkynkATMHwZCkpuuDfQH2 eDuQTKhMczFpQNAEA3NgRFG5zxhfC9QsCN4Oc9q2WKK9tHPRXoaawToUxHfxecZIB/vQOVURlhoVu3efz8Zz59UpYA0Idf/ZR5J4pI7wH2BienQQKHqnVIpjnBN/HrVLHwU7CYmZyUex6Dx4rp m3WN8PhaSJt65VYFj/Vc2THsobp1Kd9HvqizT4SFh5DC8b9PRld 8OilElRhDJiqj7NJNNIIHuUBscuVbpQndKYcDrRdXI3FPIJggagAExUdSqWYe0foIjUuojEihfUEK2j10W4 PGoD2MLaI02zqnx45YoCESuBruoJf2uX6 zj1k3ccB7WFQ4MpKG dt77c LdytMryqjAnWp5awH8xA1XqRm/MudX4zt8RIT1/JQJvC/dG4kfWfcoKzAgbmhWtxO2pogJo4S2OsimyZ00oUAAAAAQAAABQABQAQlsUDSre6B0o': '","contentMetadata":"ZXlKNE5YUWpVekkxTmlJNklsbFNTMUpCWkZsUVYwUTJUMjV6U0ZwQ1dFMDBUMG90VEVsVFgwNUxjVGd4UmxoNldEY3RaVGRQY1djaUxDSmhiR2NpT2lKU1V6STFOaUo5LmV5SmphMjFOWlhSaFpHRjBZU0k2SWxGcVEwTkJVM05OUVZSSldFUlVTWGxOUkVWM1QxUkplRTVFWjNwT01XOU5RVlJSUlVWTlVUbFJRVmhIVEhkM1JtOTZWREZ1U1dSaWFGRXdUVUZVVlVWR1RFeERNbkJ0ZDNwWWFsazBVekZWWlRGMlVYTkVWME5WTWs4NVJFRkZNa0pKU0ZGTlNVaE9SRUZ3YW1FeU1EWmpSemx6WVZkT05VUkNSbXBpTWpGcVdWaE9NRXhYVG14aWJVMTBaRWhhYkdSbmQwMVpNblIwVDI1Q2RtSkhiR3BsVld4clJFSkdhbUl5TVdwWldFNHdURmRPYkdKdFRYUmtTRnBzWkdkM1Mxa3lPWFZrUjFaMVpFUndjRnBCZDJkaWJscHNZbXBrY1dKWVRuQlpia1owV20xR01HRXljRzFrUjAwd1pWWTVNMlZJVm5aaU1rNTZUbTFOVFVOWFVubGlWSEJ5V2xoc1NscEJkMnRPVjFKb1dXcEpNbGxYV1hSWmVsSnJUbE14YTA5RVJteE1WMDAxVGtkRmRGcHFVbWhOUjBVMVdtcE5OVTU2UlRKRVFuQnFZakkxTUZwWE5UQlBiWFJzWlZWU2JHTnRiREpaV0ZKd1lqSTFURnBZYkVwYVFYZFJXVEowZEV4WFRuSmFSM04wWTBSQmVFeFVRWGROZDNkQ1RuZDNVVmt5ZEhSTVZ6RnJZbGR6ZEdORVFYaE1WRUY0VGtFaUxDSmtjbTFVZVhCbElqb2lZMlZ1WXlJc0ltUnliVTVoYldVaU9pSmpaVzVqSWl3aVpISnRVSEp2Wm1sc1pTSTZJa05QVFVOQlUxUXRRMFZPUXkxVVZrVldJaXdpWTI5dWRHVnVkRlI1Y0dVaU9pSjBkbVYySWl3aVkyOXVkR1Z1ZEVOc1lYTnphV1pwWTJGMGFXOXVJam9pZEhabFZtOWtJaXdpWkhKdFMyVjVTV1FpT2lJMVpHRmlNalpoWmkxak5HUTFMV1E0TVdVdFl6azBZUzFtTkdFd1lUbG1NemszTVRZaUxDSmphMjFRYjJ4cFkza2lPaUpEVDAxRFFWTlVMVU5GVGtNdFZGWkZWaUlzSW1OdmJuUmxiblJKWkNJNklrNVdSVzQzU20xemFVSnhUVVpoZEV0S1psUkROSGxmZDNoMWIyOWpVelpqSWl3aWFYTnpJam9pUTA0OVVEQXlNREF3TURBd09UQXNJRTlWUFhWeWJqcGpiMjFqWVhOME9tTmpjRHB3YTJrdFkzTXRhVzUwT21OcmJTd2dUejFEYjIxallYTjBJRU52Ym5abGNtZGxaQ0JRY205a2RXTjBjeUJNVEVNc0lFdzlVR2hwYkdGa1pXeHdhR2xoTENCVFZEMVFRU3dnUXoxVlV5SXNJbTVpWmlJNk1UWTBNVGMyTkRreE55d2lhV0YwSWpveE5qUXhOelkwT1RFM0xDSjJaWEp6YVc5dUlqb2lNU0lzSW0xbGMzTmhaMlZVZVhCbElqb2lZMjl1ZEdWdWRFMWxkR0ZrWVhSaElpd2lZWFZrSWpvaVpHeHpJaXdpYW5ScElqb2lkRzFWWTJkd00xRnJORFUxYVc1U2ExVnBTWEppUVQwOUluMC5PekpDcHNtaWh2TEdTS2FIWDR6RDFPTkIxRmdsMDFHQVhpWVFfd3BCekp1MkNaZTVpaDhkcG1veVFJdnVOZGNCZTRiS0F4VXdTZHA4Y1RrRGtGVFVTZGJxNFBPZ01rcTQ5OHVHbndTNm9HSjVNYlAwSFBwYTFISElzbHJUNHlSR1U4SV9BbXk2V1NiMTFkeXRSVXhxbVVjbXRIRmxERzRWd2pkWVF1UFFjaDhYR3JxX1IxSlo5MFRGRlN3QnMzV1RyNVAtdG1pdXZhQ0lqdXViY3ZhckFGZ0NOSmFnVkhJQjhsTTJ3dk43SGNnanRnNm1Nd3dVemo4MkxzWE1ocjEySEZfY2RRb0NKZWNnRVdtUXNQVmVmYmxQQjljN0w3UldxcVBzZW5jYWJhaXFfeG5ZSmRNQTZjeW1QN24zNTEzc2RjTzEwbUVaaUJqdGRLTF9RQ2Etc1E=","mediaUsage":"stream","accessToken":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxuczI6eGNhbC1hdXRoLW1lc3NhZ2UgeG1sbnM6bnMyPSJ1cm46Y2NwOmRldmlkOmRybSIgdmVyc2lvbj0iMyI DQogIDxhdHRyaWJ1dGUga2V5PSJtZXNzYWdlOnByb3RlY3Rpb24iPk1JSVJHakNCNlF3UmJXVnpjMkZuWlVGMGRISnBZblYwWlhNd2dkTXdEQXdIZG1WeWMybHZiZ3dCTXpBZERBVnViMjVqWlFRVVJweFdob1pVeDIyenFCS3V1b2NoODkxUmVHRXdHZ3dKYVhOemRXVkVZWFJsRncweU1qQXhNRGt5TVRRNE1UbGFNQm9NQ1c1dmRFSmxabTl5WlJjTk1qSXdNVEE1TWpFME9ERTVXakFkREF4dWIzUlBiazl5UVdaMFpYSVhEVEl5TURFeE1ESXhORGd4T1Zvd0lnd0xiV1Z6YzJGblpWUjVjR1VNRTNoallXeFRaWE56YVc5dVEzUjRWRzlyWlc0d0Rnd0dhWE56ZFdWeURBUjRjMk56TUJrTUNuSmxZMmx3YVdWdWRITXdDd3dEWkd4ekRBUjRjMk56TUlIZURBMXRaWE56WVdkbFJHbG5aWE4wTUlITU1Ca01EMlJwWjJWemRFRnNaMjl5YVhSb2JRd0djMmhoTWpVMk1ERU1EVzFsYzNOaFoyVkVhV2RsYzNRRUlPR2NHSWIzdzUwNjl5Z2QxUTFwbjF0WU1mS3FBTVh3VWhNbXJzZ25NWkJDTUQwTUdYQnNZV2x1ZEdWNGRFRjBkSEpwWW5WMFpYTkVhV2RsYzNRRUlHWkt1UWpCazdXelRsTEs5S1l1ek1tWnk2TGhHck5pMTF1ODdXWWhHWU9FTUQwTUdXVnVZM0o1Y0hSbFpFRjBkSEpwWW5WMFpYTkVhV2RsYzNRRUlGU3d3STRzTzlSTUJxbDJtR0FNaEx0NVdNd3RDRXhkNGp1Q3VjRHEreGVnTUlJRkpnd09ZWFYwYUdWdWRHbGpZWFJwYjI0d2dnVVNNQllNQ1dGc1oyOXlhWFJvYlF3SmMyaGhNalUyVW5OaE1CY01DMnRsZVVsdVptOVVlWEJsREFoNE5UQTVSR0YwWVRDQ0JOME1CMnRsZVVsdVptOEVnZ1RRTUlJRXpEQ0NBN1NnQXdJQkFnSVVVVi9JSXlvWHlGTXpscjh3QXdjdUkyRXBXdGN3RFFZSktvWklodmNOQVFFRkJRQXdnWTh4Q3pBSkJnTlZCQVlNQWxWVE1Rc3dDUVlEVlFRSURBSlFRVEVWTUJNR0ExVUVCd3dNVUdocGJHRmtaV3h3YUdsaE1TY3dKUVlEVlFRS0RCNURiMjFqWVhOMElFTnZiblpsY21kbFpDQlFjbTlrZFdOMGN5Qk1URU14SWpBZ0JnTlZCQXNNR1hWeWJqcGpiMjFqWVhOME9tTmpjRHB3YTJrdFkzTXRkR1F4RHpBTkJnTlZCQU1NQmxBd01qQXdNVEFlRncweE1qRXdNRFF4TnpNME1qUmFGdzB5TWpFd01EUXhOek0wTWpSYU1JR2FNUXN3Q1FZRFZRUUdFd0pWVXpFTE1Ba0dBMVVFQ0JNQ1VFRXhGVEFUQmdOVkJBY1RERkJvYVd4aFpHVnNjR2hwWVRFbk1DVUdBMVVFQ2hNZVEyOXRZMkZ6ZENCRGIyNTJaWEpuWldRZ1VISnZaSFZqZEhNZ1RFeERNU2d3SmdZRFZRUUxFeDkxY200NlkyOXRZMkZ6ZERwalkzQTZjR3RwTFdOekxXbHVkRHA0YzJOek1SUXdFZ1lEVlFRREV3dFFNREl3TURBd01ERXdNRENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFMYkxyWmtGWWoxL01CekNtalJ1aG1xd1g0NGV2S1FHd3M3T2NpZTNKaTFzZUwzb0ppRTlPcUdLNURabWZucjdHaU1GbnRjY3QxdHZPcnVMcEdHRlV5aStOU2dDNEVsR1VhVXZUZUpZVXNHeU9FZjUrT24xazI2MzN5bW1MVnJWcTBZK2VWMnhXQmd1U1c2c1JFd1JXenU1SnllRHFWNDMxR2tZbHBjSTNoMU1jaDE4K0g3RUZNN0pGSHpkL1hzZnRwdURKaFVZNHVlZ3p4aGtZekw1M1ZUZFZVMmk2WGx4K3FvR1o4Z3JPaWxzTXJnNHJoZUo4QkR1cm5JZVUxUHUwNm83M3VSYnhsZjI0MG1hSit1THlHbFY3dmlMUkdhanJZdmJnTUpsSHVDRGN0ajlFNHdSMWRYMnh0QzY0RUxkSXVNQUFhVHJ2UDVkeHVqcE1rVE5UL2tDQXdFQUFhT0NBUkV3Z2dFTk1CMEdBMVVkRGdRV0JCUytsZVJwRms0NnpMSVJVZ3VZZ1F4aVdiMndvekFPQmdOVkhROEJBZjhFQkFNQ0I0QXdnYzBHQTFVZEl3U0J4VENCd29BVW1zQ3lvUzZ5MnJ3MDRSN25jVXZxU3ZJdDY1NmhnWk9rZ1pBd2dZMHhDekFKQmdOVkJBWU1BbFZUTVFzd0NRWURWUVFJREFKUVFURVZNQk1HQTFVRUJ3d01VR2hwYkdGa1pXeHdhR2xoTVNjd0pRWURWUVFLREI1RGIyMWpZWE4wSUVOdmJuWmxjbWRsWkNCUWNtOWtkV04wY3lCTVRFTXhJVEFmQmdOVkJBc01HSFZ5YmpwamIyMWpZWE4wT21OamNEcHdhMmt0WXkxMFlURU9NQXdHQTFVRUF3d0ZVREF5TURDQ0ZEMlBGNXNQYjVmUHFtTG1sTXNkRDBrcTJWRVlNQXdHQTFVZEV3RUIvd1FDTUFBd0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFLV1JLNEhDQ242aG5LVktoL2JubXJHR29VQlR6NXNRd0FLRWk2MmRrMTRMUHZxUWlkbW0vSGhtTnFjRWVvb0NiVHF3Q1RWTks5ajVpaWpaTTQrMU9udlY1WEE0ZllpTmhlSTF6U0xsMGQyVDd4Nzk2NU5tdWJ5SmJnM1drQ3BVQ2xQVk81ZWNMYzVSQ08yM01jN0VHN2krOWNiVldwdU5jNTBDaGcrcmRKbWRlNGZkMUdsdGxyQTNBQmVFdUU4d0N4V2ZhQ1A5UjBxMDB2aUxkeWQvTVRXVm9MZXlId3RHZjl4bjFua0lYcjBnSC9VcWtCemE5MHZybU1GU2RuR0lQRjRoRXM5ZE1TbFdjS3ZIQS80ZlFlekRLWVB2T25yRWpmTU9BZE9GdVNWbkw3bTJIdnQ3V2FHR1EzNDBqbEpYTjJDUFVXeGZPZEdKMk9VVHZoaUF4aTR3Z2NNTURHdGxlVlJ5WVc1emNHOXlkRENCc2pBZURBbGhiR2R2Y21sMGFHME1FWEp6WVU5aFpYQlRhR0V5TlRaTloyWXhNQlVNQzJ0bGVVbHVabTlVZVhCbERBWjROVEE1U1dRd2VRd0hhMlY1U1c1bWJ6QnVCQlFpMjdCSnNjKzhOd1JoQW95ZCt5S0cwT3U3MVFRVUl3UnFDeVBjdGpnR2FhMThSMGEwYVR2WkdvWUVGRVFRZVFxdUd6azNOdWV6ckFwQWxkaUhxVFQyQkJSNExyWkk1UDRsckcxYlNVOEJvZkp4L0ZlSjJBUVVUTjVkMlAzNkQ2M1I2QU4xR09pUnM4MW4yVmt3Z2I0TUNtVnVZM0o1Y0hScGIyNHdnYTh3R0F3SllXeG5iM0pwZEdodERBdGhaWE5EWW1OUWEyTnpOVEFlREF0clpYbEpibVp2Vkhsd1pRd1BZMmx3YUdWeVMyVjVVMmhoTWpVMk1Dc01CMnRsZVVsdVptOEVJTmhacnFPbWdFUlNJVFp2b3JTYU5PVHZzN3BDMS9zb1Qyd3BWbFNaREtRWk1CRU1CMnRsZVZSNWNHVU1CbUZsY3pJMU5qQVdEQU5yWkdZTUQyTnZibU5oZEV0a1psTm9ZVEkxTmpBVERBWnBkbFI1Y0dVTUNYTnBkbE5vWVRJMU5qQUdEQUpwZGdVQU1JSUltQXdLWTJsd2FHVnlSR0YwWVRDQ0NJZ3dnZ0VPREFoaGRYUm9SR0YwWVFTQ0FRQ2d2S2lncjR2UUNzQ3pMWTF2VGQ4Q21MUndZZlp1S3RZZjJMYkhwN2lUUURoVDBUMDhUbGVkMU1TS0lyR1FhNkVkckNDM25GWXcyZkhPaE4xTUpWcXVLV0c1VGJtVVhzK3MvZTdqc2F5U2VPMGVrVlBFZHZUem1oemwxbWxodWVsbFcxNHVKRmQxZVZDRS8xQTFKOGJxajJuSDFBZFZZWXVDMWtrTjRoUkV5QXpJU0JMM05uWlZBdW05NTZqSzJqVkFQeGE4ZmtyRERzdXF4a1lWL1k4dEJROEJ2REpOUTNtUXV3NG1FTXh3VTBPbFo1NmQ1OTRoNGRhdjlua0NybHZmemdWcE8wNjhwN05ORlA5eGR2OHBEbFEwbFlaWVZCZldRbFZBTk9mNDJGOURtSGV1MkQvc3Z0Q29FR0dLczF1Y0xuczVlYk11TzNERnJmdllUSWo0TUlJRktnd1FhMlY1VkhKaGJuTndiM0owUkdGMFlUQ0NCUlFFZ2dFQWhKbjhXVndWbHc3MUtMaDFUUkhXbXNyMlYrTE5mTHRhellxdm9ZMWZPUXp6UzhpaU9EeU5wOVBFQWsrcVZBUTBMQk9OckxDMllTY0FmVTZlSXlIL2tmTTcrUlZzUDBOUHJCbXlxemVVTUdoUCtwMDk4ejdKVDlqWjduc1JBRVFvK2k5cjhYSjJ6SWpEMTJEYm1XSThPdjUyVjRMZytrRllpd2ZtSFN4RUVyQi9IeTU4MUUzVWpadHNUdnRjYWVvdUNGTThJdkgrck16NTduRndtOUZXVUViV2NaUkhHdGFxdnByZEsxRW56ejhzK05xaURNalRJUDVVRFZoTkZXaHRKdk4zUHB0WkV3UWJ6MGRVS1EvTGFqZlRCSzFsbXBRaHBybW5EYmo0SHUxZWtlNEgzbmJMTkozTUpKTjI5OEdsR2ZZRFJmZkhoQ0lERytWNUQxRHFQUVNDQVFBbnN0Q1NBcGVqMHZRUnNqUk16dDlreU13bEo0U1MyT1gvRFJJQTJBZ1FqbEJ6M0U4MXhRWUhkSGQ3N25UOVBLd1FQdGErcFVMY0E5RFFGL3RyQjlHZVVKaDV3QlBQUUFLSHFaTGFxNG1UeVIwNFdnb2h4K0RFTWJtWHhTQk1ZZ2tPbXRmVDRQOFg4Vjl4ZGdPckgxN04wMHllNEsrM1dta3JEK25WWEQ0bWFkYlBrdTFJL2xleHBRWjVvUXBBN2NGUytwUlFuem4xS290YzBZSDh6N3E3TWRXdDZQZy9hYkpleWJ0Nnk0eXhNNlZ4aUovUXZ5OW5xOVpCNzhCbWxST2Mxbnl1K254OXFwTjRnN0dRMklXM2Frb2l2WWVxK0FkNitxV0J0K3h4cTFkNUEvNWdpbUpzQW4wcmlzTy9FbDFaVWNvUW1jRnNVU0ZUQ3B2UjNhVVlCSUlCQURoVVNwR2ZkWVVMNExMeGc2UnkxaFV0ekFYZ3hvRkRCVENsZGFJY2hsM2gxWWo0cnV1cjYxWi96cW1zOVBnZFRCTlJUN1kwc3Y5UXVBSWJUZzVNNTFIZFY2ajJDNjhiVEFzU1VDbHpOYWd3cmJDZ0RXc1g4UVoveUszdEVyZTIwcGFUb2VRRmtOckM1VHI2aDBYYkNRc2NjYUlZS1lzSHB4WWN5SXFKOEpDVERVZDhwZ3c1bkJlR1pSOTNIai9aVzhvRkxlM2w2NEFpME5nZWdQM05GMEV5Vkh0UmErZzNHSC84ZTY4UEdVVWlnRmN1WlhGcXVNVzQzV3pLdkd6MDlNZ2IwVXJKcTdVVGQ5dEZkdXk2WkJzVW9oTW1ZTkRFVGNJZkxEMEVTWVdVdGhWLzFCRGdPMklIcHlERERsbU44MjhTa0FYTzNEN094ZkhlQkpORFVZY0VnZ0VBUWNIU0ZweWJqb3JBZElxSlU2aEs2bWtWZmtwZTVOVjgzUEI0akdsYXo1cFRKSXA4NlBHUVFhZTFLczdmeHRpdlJxQTlZZ1JTdjY0SjZHdWcxQmx2Yzh0N3lYZldqd0xzZVhzTjRjZ0lHNy95VjAvODBzWkhKbzUzK09XUDBTSkhwa2JmSk5ZZDV0SmVDdStlVVh2bkhxbThwWjArREdhUVZQYTgvN0RtTllSV0EzOXF0eXZMdng3RXI3enUvTUt0UHpyLzFKdzZEaGhuMWpGdTFTOE81ZkZkaERYUXdlWXhDdGFiUlNQaFh0RGZMWktsQVF3cVh6YVBQdHc4RWdzZnJqVmh4VWNOZGxIWll4WWE5R0hUQkZRRmZMdlVVYjBrU2poSDBHcFI1M3ZrSGIrVlB2OXg3NC8xN0FYWktaYUZIUmdWME9maFd5Y2lmbVoyU2lqT2xBU0NBUUE5TmtrZGxnazNsOUlzUG1GYmJCdTJhVW1MWnNPdHA0Z0w4Nko5OHdRcndQSjRMbVVrNE40RUVnYi80cDBXT1V5U3FyNHRZemdyaG45NlRBZ3NlRWFZNGFCQll6aElTaGx0Zm40RkJRRGpNSEdhVXRVd1dMZjhHRy9IUU1wWk8zNGRDaHlLa2Nhc3RIUnduMmRjV3FCdk9hZjhVdXN6eFFmakhxMzVHbHN5K2pJS2xIYjlyWWh5WmRzYkdlNi8yUkxUMmF5L1IwcDFyMHpVaE12Z2cxaWlkREs2cjZLaFZaU0xieUs1UzRQdFp1S2JXeGxJU0JGWVBNOW00cy9nS1V4azIwR1RBQjRtaXpDaFkxMzY1cktMdnNUcTEzTjljd2tCVy9yNk1vdGhvQyswaGVld3FiSzJObmhWZzVuSVF4SWtlQ1NPeGFDLzU0SkRXc2ZPZUFOSE1JSUNSQXdPWTJsd2FHVnlkR1Y0ZEVSaGRHRUVnZ0l3eWZGUTdLdzNoZkV6d0ppdTZvYW9Od1NROFpKQ1RleWpwNnk5RWtQazBHUXFSdzVRUHhkVVdSb3gvekZPVVRIU1JuTUFNdWU1Uktmd1hjUXBtSWdhbUhyQlV6d1pHVzBpaElvWkwzOGJGRDdZa3NFMkZxYUZOVm5jV2QwK0NjZU50TzFHZUhRSWdDcnlJaXVzTnRxUGM0L3lhQ2tGZERkZ0FEMGRsN3RoeXRUdUpYVEIwU2I3ZjFtSG1SYUp5RVRLRCtlRlRFMG4rS1NDSEttK084YnVCZCsvVWc3dWloQkVwajVvMjM3YWlGem5EMXpkalFtV05oUWFFcVRvMDdKRk9Pd2J1bDVya2I3SW5vdkdjQWpaMElLY1dnQ2hCQ0JzcjVac0dXWEhYZi9oVytFSXdyZE40bEFBK2I5VERnUG1vSndkd2RSYWk4NEZkYk10MCttUVhHM3JlRjV1OTExNnduSkV0SjVUa3NkYy9kR1R4QXRQUFR1RTNCK2dycUZLbEUwdnRHL2hLUGhJcTh1dUlhYlBMTmkyRnp3NUplMFJ0UUxsN3h5WnJkSUR1RmtuQW9XTlhFWDUyZFdLaThpT2FDUVZYUXNrTW8zVXh2UFZ1VGVDTUpuQ0JFOEZqN1ZmTng2blk2OWJMQVpYUW9GZ2VvSHdjT0lPYVhsM1QveXpPZFhGMk9wNHlZTlZ4TC90dDBYK1JYNEIwWTU1WURwbko2WVVMcVc1UzlaeGltRVl4c29oalpWRVVYNEJ5RUJxV1Ryeko2Uy9hZUZrZEJyV2RibGFlVjZlOGRrTkxtVFVPMHo4OUFzc3l4UWhaU2lndUFzUE0yZDRhak8wTUhRYlo5am1jTithcjQ4MHJPMER1KytMNHlZSjJjUDdUeUkwakxhTm1kQlpKdDduNXZFUTJ6Z2Vnc0VCMmJGb0pjdXM3OGh5SlBPYzlpdUdLT29CSUpuY2V0c29BRmFMNnZEbCt4Q3J4SENxTktJPTwvYXR0cmlidXRlPg0KICA8YXR0cmlidXRlIGtleT0iZGV2aWNlOnhjYWw6c3RhdHVzIj5BY3RpdmU8L2F0dHJpYnV0ZT4NCiAgPGF0dHJpYnV0ZSBrZXk9Im1lc3NhZ2U6dHlwZSI eGNhbFNlc3Npb25DdHhUb2tlbjwvYXR0cmlidXRlPg0KICA8YXR0cmlidXRlIGtleT0ibWVzc2FnZTpwcm90ZWN0aW9uOmlzc3VlRGF0ZSI MjAyMi0wMS0wOVQyMTo0ODoxOVo8L2F0dHJpYnV0ZT4NCiAgPGF0dHJpYnV0ZSBrZXk9InNlcnZpY2U6eGNhbDpjbGllbnRQcm9maWxlIj54dHY6eDI6d2ViPC9hdHRyaWJ1dGU DQogIDxhdHRyaWJ1dGUga2V5PSJhY2NvdW50OnhjYWw6ZWFzQ29kZSI MTIwODY0NTAwMDwvYXR0cmlidXRlPg0KICA8YXR0cmlidXRlIGtleT0iZGV2aWNlOnhjYWw6bG9jYXRpb25Ib21lWmlwIj4zMzEzMDwvYXR0cmlidXRlPg0KICA8YXR0cmlidXRlIGtleT0iZGV2aWNlOnhjYWw6bG9jYXRpb25JbkhvbWUiPkZBTFNFPC9hdHRyaWJ1dGU DQogIDxhdHRyaWJ1dGUga2V5PSJhY2NvdW50OnhjYWw6c3RhdHVzIj5BY3RpdmU8L2F0dHJpYnV0ZT4NCiAgPGF0dHJpYnV0ZSBrZXk9ImRldmljZTp4Y2FsOmxvY2F0aW9uT25QbGFudCI ZmFsc2U8L2F0dHJpYnV0ZT4NCiAgPGF0dHJpYnV0ZSBrZXk9ImRldmljZTp4Y2FsOmxvY2F0aW9uU2Vzc2lvblRpbWV6b25lIj5BbWVyaWNhL05ld19Zb3JrPC9hdHRyaWJ1dGU DQogIDxhdHRyaWJ1dGUga2V5PSJtZXNzYWdlOmlkIj44OTk4ODA2MS1iYjliLTQ3MDgtOTU4ZS1lZTIwY2VjOTllOTg8L2F0dHJpYnV0ZT4NCiAgPGF0dHJpYnV0ZSBrZXk9InNlcnZpY2U6ZW50aXRsZW1lbnRzIj5zZXJ2aWNlOnhjYWw6Q0RWUixzZXJ2aWNlOnhjYWw6aW50ZXJuZXRhcHBzLHNlcnZpY2U6eGNhbDp4YmNsb3VkLWFkdi1zZWN1cml0eSxzZXJ2aWNlOnhjYWw6TURWUixzZXJ2aWNlOnhjYWw6Q0RWUi1PT0gsc2VydmljZTp4Y2FsOkRWUixzZXJ2aWNlOnhjYWw6SEQsc2VydmljZTp4Y2FsOnhiY2xvdWQtYmFzaWMsc2VydmljZTp4Y2FsOnNlbmR0b3R2LHNlcnZpY2U6eGNhbDpDVk9ELHNlcnZpY2U6eGNhbDpDTElORUFSLHNlcnZpY2U6eGNhbDpzbWFydGludGVybmV0LHNlcnZpY2U6eGNhbDphbGxvdy1wdXJjaGFzZTwvYXR0cmlidXRlPg0KICA8YXR0cmlidXRlIGtleT0ic2VydmljZTp4Y2FsOnByb2R1Y3QiPmNkdnI8L2F0dHJpYnV0ZT4NCiAgPGF0dHJpYnV0ZSBrZXk9ImRldmljZTp4Y2FsOmxvY2F0aW9uU2Vzc2lvblppcCI MzMxMzA8L2F0dHJpYnV0ZT4NCiAgPGF0dHJpYnV0ZSBrZXk9Im1lc3NhZ2U6cHJvdGVjdGlvbjpub3RPbk9yQWZ0ZXIiPjIwMjItMDEtMTBUMjE6NDg6MTlaPC9hdHRyaWJ1dGU DQogIDxhdHRyaWJ1dGUga2V5PSJhY2NvdW50OkNFVDpiaWxsaW5nSWQiPjg0OTU2MDA0NDg1OTIyNjM8L2F0dHJpYnV0ZT4NCiAgPGF0dHJpYnV0ZSBrZXk9ImRldmljZTp4Y2FsOmxvY2F0aW9uSG9tZVRpbWV6b25lIj5BbWVyaWNhL05ld19Zb3JrPC9hdHRyaWJ1dGU DQogIDxhdHRyaWJ1dGUga2V5PSJhY2NvdW50OnhjYWw6dGltZXpvbmUiPkFtZXJpY2EvTmV3X1lvcms8L2F0dHJpYnV0ZT4NCiAgPGF0dHJpYnV0ZSBrZXk9InNlcnZpY2U6eGNhbDpwYXJ0bmVyIj5Db21jYXN0PC9hdHRyaWJ1dGU DQogIDxhdHRyaWJ1dGUga2V5PSJkZXZpY2U6eGNhbDpsb2NhdGlvblZvZCI MTwvYXR0cmlidXRlPg0KICA8YXR0cmlidXRlIGtleT0ibWVzc2FnZTpwcm90ZWN0aW9uOm5vdEJlZm9yZSI MjAyMi0wMS0wOVQyMTo0ODoxOVo8L2F0dHJpYnV0ZT4NCjwvbnMyOnhjYWwtYXV0aC1tZXNzYWdlPg0KDQo="}'
}

response = requests.post('https://mds.ccp.xcal.tv/license', headers=headers, data=data)`

pssh: AAAAaHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAEgSJDVkYWIyNmFmLWM0ZDUtZDgxZS1jOTRhLWY0YTBhOWYzOTcxNiIgTlZFbjdKbXNpQnFNRmF0S0pmVEM0eV93eHVvb2NTNmM=

i am using a cdm which has worked well with HBO max ad others web, but not with xfinity

Peacock get PSSH failed

With Peacock l3.py simply can't even get pssh from mpd

Input MPD URL: https://e0e005bd81f241e9b59d2fbf8addde0f.mediatailor.us-west-2.am
azonaws.com/v1/dash/6f3f45fea6332a47667932dede90d20a96f2690c/peacock-cmaf-dash-v
od-2s-021821/pub/global/iS4/968/PCK_1637605188890.8127_01/cmaf/mpeg_cenc_2sec/ma
ster_cmaf.mpd?aws.sessionId=a8bfc3db-3d20-40e9-8385-6fc0349e0600&c3.ri=125194738
12177933808
License URL: https://ovp.peacocktv.com/drm/widevine/
Traceback (most recent call last):
File "C:\Users\Helen\Documents\widevine_keys-main\l3.py", line 24, in

pssh = get_pssh(MDP_URL)

File "C:\Users\Helen\Documents\widevine_keys-main\getPSSH.py", line 8, in get_
pssh
tracks = mpd['MPD']['Period']['AdaptationSet']
TypeError: list indices must be integers or slices, not str

AttributeError: 'NoneType' object has no attribute 'enum_types_by_name'

hello, any ideas on how i can solve this problem?
Python version =3.10
S.O = windows 10

py l3.py
Traceback (most recent call last):
File "D:\temp\BaixarVideosCopyright\widevine_keys-main\l3.py", line 11, in
from cdm import cdm, deviceconfig
File "D:\temp\BaixarVideosCopyright\widevine_keys-main\cdm\cdm.py", line 10, in
from cdm.formats import wv_proto2_pb2 as wv_proto2
File "D:\temp\BaixarVideosCopyright\widevine_keys-main\cdm\formats\wv_proto2_pb2.py", line 20, in
_LICENSETYPE = DESCRIPTOR.enum_types_by_name['LicenseType']
AttributeError: 'NoneType' object has no attribute 'enum_types_by_name'

Mime type error

Traceback (most recent call last):
File "D:\Tools\widevine_keys-main\l3.py", line 24, in
pssh = get_pssh(MDP_URL)
File "D:\Tools\widevine_keys-main\getPSSH.py", line 35, in get_pssh
if ad_set['@MimeType'] == 'video/mp4':
KeyError: '@MimeType'

Add [dmm.com] support

When I was trying to get the keys form a video I purchased on the site, I got this error

Input MPD URL: https://vmdash-cenc.akamaized.net/tw-cenc-gnr/k20160903034215/cp-wxtg04/047/239/047239028000_4096.mpd
License URL: https://api-p.videomarket.jp/v3/api/play/keyissue

PSSH obtained.
AAAAjHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGwIARIQ1HgYlcEoTYe4OPg/xIKD/CJPeyJ2ZW5kb3JfY29kZSI6InZpZGVvbWFya2V0IiwicHJvZHVjdF9jb2RlIjoiZDQ3ODE4OTVjMTI4NGQ4N2I4MzhmODNmYzQ4MjgzZmMifSoFU0RfSEQ=

license response status: <Response [400]>
server reports: {"status":{"code":400,"message":"PlayToken has failed."},"errorInfo":{"code":"PT20002","notice":"作品を 再生するための認証ができませんでした。PT20002"}}
server did not issue license, make sure you have correctly pasted all the required headers in the headers.py. Also check json/raw params of POST request.

The japanese part roughly translates to: "Could not authenticate to play the work."

Any reasons as to why this is?

l3.py

Thanks for your work.

Few questions since I'm not expert here.

What is 'token' ? Is that the cookie?
Where do I find 'priovider' and where do I find 'releasePid' ?

also, i get this error message:

license response status: <Response [200]>

Traceback (most recent call last):
File "C:\l3.py", line 102, in WV_Function
if widevine_license.content.find('{'):
TypeError: argument should be integer or bytes-like object, not 'str'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\l3.py", line 121, in
correct, keys = WV_Function(pssh, lic_url)
File "C:\l3.py", line 107, in WV_Function
license_b64 = json.loads(widevine_license.content.decode())[key]
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbc in position 3: invalid start byte

Need support

Traceback (most recent call last):
File "D:\widevine\widevine_keys-main\widevine_keys-main\l3.py", line 130, in
correct, keys = WV_Function(pssh, lic_url)
File "D:\widevine\widevine_keys-main\widevine_keys-main\l3.py", line 52, in WV_Function
data=f'token={headers.token}&provider={headers.provider}&payload={str(request, "utf-8" )}'
AttributeError: module 'headers' has no attribute 'token'

Vdocipher license issue

I do have CDM keys which I got from my mobile.
I had to add one line in l3.py file in WV_Function as following so my request will be made to vdocipher server -

responses.append(requests.post(url=lic_url, headers=headers.headers, json=headers.data))

My header file looks like following -

import requests

headers = {
'authority': 'license.vdocipher.com',
'sec-ch-ua': '" Not;A Brand";v="99", "Google Chrome";v="97", "Chromium";v="97"',
'sec-ch-ua-mobile': '?0',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36',
'sec-ch-ua-platform': '"Windows"',
'content-type': 'application/json',
'accept': '/',
'origin': 'https://d1z78r8i505acl.cloudfront.net',
'sec-fetch-site': 'cross-site',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
'referer': 'https://d1z78r8i505acl.cloudfront.net/',
'accept-language': 'en-US,en;q=0.9',
}

data = {
"token":"TOKEN CODE': '"
}

// these 2 lines are commented
// response = requests.post('https://license.vdocipher.com/auth', headers=headers, json=data)
// params inserted below will be passed to data-raw

token = ''
provider = ''
releasePid = ""

When I run l3 file, output comes as following -
image

My CDM key is L3 key

Anyone help me to solve this issue.

Thanks in advance

Add [Udemy] support

Hey, where can I find the algorithm used to generating additional fields?

Add [site_name] support

What additional fields does your site require?
A clear and concise description or screenshot of payload tab of post-request in chrome devtools

Describe algorithm for generating additional fields if they are not static
[text]

Get key error: AttributeError: module 'headers' has no attribute 'token'

Hello,

I got error when request key of VieOn website (streaming service in Vietnam). (AttributeError: module 'headers' has no attribute 'token')

I use Python 3.9.9

Here is my infomation:

MPDLink: https://sgn-vnpt-001-livecdn-vthn-vnd.vieon.vn/64a746395b9fd585e07e33064f9da7fd/1639407409828/qnet_vod/storage02/hbo/the_conjuring_2/dash/master.mpd
License URL: https://drmtoday.vieon.vn/license-proxy-widevine/cenc/
PSSH: AAAAgXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGEIARIQ6dQrLZC5Pou06R0azvvENhoIY2FzdGxhYnMiOGV5SmhjM05sZEVsa0lqb2lNREl3TlRNMFRERWlMQ0oyWVhKcFlXNTBTV1FpT2lKMmIyUWlmUT09MgdkZWZhdWx0
Headers:
import requests

headers = {
'authority': 'drmtoday.vieon.vn',
'sec-ch-ua': '"Google Chrome";v="95", "Chromium";v="95", ";Not A Brand";v="99"',
'sec-ch-ua-mobile': '?0',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36',
'x-dt-custom-data': 'eyJ1c2VySWQiOiIxMi1hZmRjM2Y5Zjc0OTM4YWE4M2JlMmEzMGE4YzA2MGY3NyIsInNlc3Npb25JZCI6ImV5SmhiR2NpT2lKSVV6STFOaUlzSW5SNWNDSTZJa3BYVkNKOS5leUp2Y0dWeVlYUnZjbDlwWkNJNk1USXNJbk5sYzNOcGIyNUpaQ0k2SW1GbVpHTXpaamxtTFRjME9UTXRPR0ZoT0MwelltVXlMV0V6TUdFNFl6QTJNR1kzTnpFMk16a3pNakV3TURraUxDSjBhVzFsYzNSaGJYQWlPakUyTXprek1qRXdNRGtzSW5WelpYSkpaQ0k2SWpFeUxXRm1aR016WmpsbU56UTVNemhoWVRnelltVXlZVE13WVRoak1EWXdaamMzSW4wLmk5dzdYZlZZYWVwTmQyU2t4YWZhRVZRSXJSOXcxbHBxRXJ5WEFldTJjaU0iLCJtZXJjaGFudCI6InFuZXQifQ==',
'sec-ch-ua-platform': '"Windows"',
'accept': '/',
'origin': 'https://vieon.vn',
'sec-fetch-site': 'same-site',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
'referer': 'https://vieon.vn/',
'accept-language': 'en-US,en;q=0.9,vi;q=0.8',
}

data = {
'\b\x01\x12\x8E \x12y\nw\na\b\x01\x12\x10\xE9\xD4 -\x90\xB9>\x8B\xB4\xE9\x1D\x1A\xCE\xFB\xC46\x1A\bcastlabs"8eyJhc3NldElkIjoiMDIwNTM0TDEiLCJ2YXJpYW50SWQiOiJ2b2QifQ': '=2\x07default\x10\x01\x1A\x109\xC5\r',
'\f\x813|\xB9O[L\xD0\xD1\xCE\xDA\x18\x01 \x99\x9B\xD8\x8D\x060\x158\xED\x9F\xA3\xFE\nB\x80\x1F\n\x14license.widevine.com\x12\x10\x17\x05\xB9\x17\xCC\x12\x04\x86\x8B\x063:/w*\x8C\x1A\xC0\x1C\xA1m\xB0\xFA\xAE.\x0FY\xAA\x01f \xEC\xFB\x16\xCD\x1Eu\xB7\xE7wS\xAFk\xC5[\r\nh\xA1\xBB\xA4\xF7T\xED?\xD3)P\xB1~\xEE\xD1\xAF\x7FI\nw\x8A\xEFO\xF8\xE4w\xA9\xF2z\xE8F\xFAzd\xDB\xB4\xBF;\x82~\x07\xA1\xA7\xD9%U\x9C\xFE\xE55\xAD\x95T!\x86\\xCA1u\xF1\x81F\xD2<\xE2\xC3\x87\xFCUu\x8Cw\xBDz\x8EF\x98\x0B\xA3Q^\xE8\x15\xC7Y\x81Dy\xDAX>\x89'E\xF2\xFDG\x9Ar}\x07\xB8\xFE\xAF\xF4\xD1\xF1\xC15\x07{\xA5n\x8E\x81\x12\x80qYN\x106\xCALs': '',
'\x9E7\xE9l\xEB\x070\x15\xEB\xB5\xB9\xEA\xF4\xA8jO?\xD7\x93\xD00\xFF\r\xC5Y\xF7\xA9\xFE\xB7\xE8hys\xEE\xD9\xE9\xEF3\xFFEV\xEB:bF\xBA\tb\xF0\x05Z\xB3c\x18\xF5\xC1\xA5\xEC\xB7\xF2?4\xCD4O%\x05\x04':\xF5\xEB\xD95\xD9r*\x03v\xD9\xF6!\xF6\x05\xF6\xF6\xF1\xF2\xC9\xD6\xEB\x8AK^kQ\x87\xEEZ\x1Dl.\x11\x02\xF1\xD6I\x0F\x1A\r Kr\x8F6\xA6\x93\xC3\xD2\xCB,\x9BP^\x8B\x93\x05\xE0)UqZ48\xDA\xB2H\xE3\x95\xD9\xEEL\x8D/\x8B$\x0B\x94\xA7\xFF\xC2Y\x8A\x952\x07H\xC8$\xB0{\xCF\x9D\r\xD7]Q\xDA\x8E\xE2\xD4\xB5\xB5\xA9:\x0F\xBB6^:\xA0\xB5\x07M\xC0\x1DV\xAD\xF2\x81\x82\x18_Xf\x1A\xC9\xC71\xE2$\x80@\xB9\x9F>\xB1\xDA\0\xBB\x9F\xC0q\xB8\x199\xFD\xF4\x9B\xB8\x86\f\x8By\xC6\xDDa\xF2n\x88pH\x91]y\xB2}\x8B\xFEu\x1F\xE93\x82\x8D\'o\xBE\xF7h\xD2\xD6EEF\xF2\0\xAE\xA6\xC4-\xD9\xD9\x99\x8F\xCF\xEB/,\xA0!z': '', 'o': '', '\b\xCC\xA6\xD5\x91\xAB9E\x06\x1C,\x1B\x11W\xF8\x10\x87\f\xE9v\x99\xD6\xE9\x8F\x12JOE4\xDF\xB9\xFD8\xB93\x7F\x9E\xB6^\'%\xF5U\xEF\xBD\xC4z.A\x9Ewpzo,\x15\b\xA4e \xE8\xA2;\xA4\xE1\x8F\xDF\xD2\xC0?\xFA\xE9l\xF5hm\xE0\xA6\x82 \xFCnMM\xBB\x86@Hr\x18\x13%]\x8D9n\xD5\xB1\xBA \x98\x1Dj\xD57s\x98\xD9\x9C\xF4\x98\xEFX\x1B\xA2.i\x10M\x02,\xE85<:)\xB1\b\xC8\xEB\x13\xC1\x89HK\x16\xE935\x9Eg\xDC\x9A\xED\x8D\x85\x1ER\0|Az\xC2\xE4e\x89\x12\xFDf\xEA\x10^D/*\xE6:N\xF8\x98\x18\r\x03q\x89\xADm[\x14|\t\xB4\xB1\x83H6\xD1\x1B\xEA\xE5\x15\xF0\x9A\xBF\xD3\x97\xC8\xC4{8;\xC4[t\xB5a\xD5\xA7!\xB4Yt\t\xEC\x87/yq\x1B\x81\xEF\x15\xB6\xAB4mA\xF1dS\xC1\xFA\xC3\x90\x970x\xE5\xAF{\x0E\0\x8B\xF0\xB3\x14\x0BM\x12\x1F\xD9\x07.\xCA->\xE9U\x8B\x93{\xFA\x9Eh\xE1\xAD\xCB7\b\x1A\xE8\xE3\xA2f\x1B\x90\xBE\xFD\xA9\x96\xBAyh\xBC\xB8\xAD\x04\x01\x06\xBB\x8F\xBB\x03\xC3\xD9\n!\x15\xF4\x10\x16|C\xF5;\xC6.\xF1\x8Ak\xF2\x0E\x89u\x8C\x17\xA0\xCBb\xE4\xDEA\xFAd\xA0ig\xD8\xF74\xCF^\xB6\xE8\xB5*\x12\x8F\xC0\xD6\x95\xB7\0Xh\x9F\x1F\xB6o\xFA\xCEU\xDB\xDE\xC1\xAF\xE9\xA2\x8C4\xD9\xE5\xA2r\x98\xFDt\xB2\xD8\x046\xCF_\x8Eg\xAB\x93\x94\x8E>"\xB2@\xC5PM\xD4\x80,\xAE\xB5\xF98\xE8P\x05\xAE\x01{\xF8d\x89\xDF\xBD\rW\x82\x03n\x1B\x11\xB0<\xCC\x1E\r\xA8_\xF5\x0F\x84\xB089\xD0\xFD)\xD1\x12c\xEF\x9A \x0B\x81G\xE9j\xC6\x07\xC2\xCE\x98r': '\xFB'Np\x0B\xFC\xE9P\x99\x94\xDC\xDB\xEF-'\xCB\xA7\x95l\x8D[\xCA\x8C\xF8\xA6\xA5\xC9_\x82\xC6\xCC Y\xA0\x95\x9CdE8\x7F\xCD\x05\xA1RVn\x93\x13\xE0)9\xF5\xB8\xA8\xF4]\\\xAC\xC7\xB1\xBB\xACa2\x14\xD3\xD7G\xBF\xBB!Le\x9D\xCE@>i\xFB$\x98\xB9\xC8LG\xE7{\xE0@N\x18\xCCrt \x10\b\xF6[\x85\xAE\xAFR\xE0\r\x84\x1F\xC2n\xAA\xC20\xA5\x9A7\x06r\xB6Li\xBC\xE6p\xF1\x8E\x91\xEFJ\x17\xA8', 'M\xFA\xC7\xD0U\x03': '', '\xFC\xA2]@J\xD5\xF7\xE5\x14\xD7\xE2\xCF3U\xBA\xD2\x13<\xA8\xFC\x01\x8C\x15\xD6\xE1\xC2\xF0\xF7sG\xE19_\xF7c\b\xC7\x07\xCAF\x14\x9DHr\xB33h\x14\xA1v\xF0\xEE\xB6\x17yX#\xD8\xDB\x86\x0B\bO\xA4\xDC\x1D\xB6\xF4\x85\x9B\x99~\x17\xC9y\xB9\xE4[@\xBB"\x16\x90\x93I\xCF\xE6-\x8E|M\xAB_FBk\xEAa\xF0\xB2\xD5\x17\xD68U\xEB\xFCq\xE5V@\0c\xFC\xF8]1\xBBR\xBF\t$\xF2\xCDR\x91f\x1C\xC7\xCC6\xB2\x89\x82z#\x022[\x99\x07\xFB\xD6\xBA\xABB\xD5\xA6\xD6 \xEB\x87wsO\x92^\xDAs|\x19rTX\xB6\x0F\x85\xBF\x04\xF1\x94f\xDB3\xB8\x83\x95\x8E\x8A\x9D\xE7\f\xDB\xEA\x94\x8Fu\xEBk\xA5\x86-\x91\xAC\xF5E\x0Ex\xE4V': '', '\xAE\xD19\xA5\x9F\xCA\xAD?B\x17\xF2\x0B\x15\x1E\xA3\xDE\xD3q\t\xA5\xF8\xC0\x1C\xF2\xCA\xDE\xC4\xA9\x86\xD9M\xFA': '\xF8\xD8\xC6p\xC5i\xBA\xC9\xE4l\xEDn\xB6Y1\xBD\bZ\xF4o\x17\x86\x07\xBE\x0E\x8E\xB7-\xE6\xCDQ\x05%\xB3L\x7FL\x85\x0Bt\x9A~\x11H\xC7\x84\xC8\f\xFF\x1Aw\xC7\xBE\xB4\xF8\x05K\xE9\x9E\x99\x8A\x0By\xF6l\xC7#\xB8.y"v\xD8\xD0\xD20\xC7q\xCC\x0B\x03\x99\xCC\x04j\xA9tx(\xE5\x9E\xC4Fs\xB0\x9B\xFD\b5\x04\x1DQ ', 'Y2\x96\xF0\xBB\xC94\x17#"\xBE,\x83\xCB': '\f\xFF\xBD\xCD\x07uA1|\xF0\xE5\xDF6\x10Z{0\xC0.g8G\x05\xB8\xBC\x8F@\xD2\xE5\xD0~\xB2\xA2{\x1A\x1Fr\xF0\xC9\n\xD0\xB5\xCFVR\xD6\0j\x8C\xC1{\xE0\xD4\xCD?\x92\x99\xD3\xA5\x8C\xEB;\x94\xC7u\xCF#\x0F\xB6\x94\xBC\x9B8q\xD7\x962\xB1r^<\xAB\x98\xF3\xA5\xDF\x19,\x0F\x8E\x05\xC9\xC6\xBB\x1A\xA9!\xB9\xDC\xCB\xEE\xD0\xC14Oxe X\xA6(\xA1s\x99\xAC=es\xBBLKh\nq\xCE]$*g\xF6Q\x9D?\xCD\n\x11\x1D 7\xA7\xD8\x12]\xA7\x9E:\xAFR\xF1d\xC2\x0E\fl8\'ag=$\xB3\x15\x83\xBA\xC3\xE46\xA4\x1A;\xE2\xF0', 'c\r\xBEGv\xEB^\xA8\xB7HW\xE5\x93\x1B\x9E\xA5,T\xB3\x9E!\xF4\xF2c7\f\x12\x9Ew\x8Bx\x85e\x10\0\x8B\xEB\x8E\xB1e\x05\xAA\xFAo\xA2\xDDm\x16\xEF\x8C\x02\x01_s\'\xC6\xDE(\x07n_\xA4>"a\xC6\xABW\x83\x18\x04dx_\x87\xAF\xF0? \xF2<\0 \xA1\xBD\xACN\xB9\x99P\bl\x0B/\xC9\x93A6$\xC7\xA4/\x97g3v\x06M\x9F/\r\xCD\xC1\x12Ru\xD5\x06l-\xC1\xBD*\x8A\x92\xE5\x02': '', '\xDC :\xCE\xD1\x0E,\xC5\xBA!j ^\xE4\xDE\xA6\xC9\xAD?\xCB\xDB\x82\x8E! \xC71S\xBDG\0\x01\x85\x162\xFC\xD7$iN\x07\xF5\xCF\xEA; \x93v\xAB\x97\xA0>\xCA\nh\xCD\x99\xA3\xA3\xD0\x15\x05\xFF?\xCC\f\xD4\xB0C\r\xF2\xAA\xEA\xE4f\xB2\xE2\xE1\xE9\x14\x8C\xEF9g\'\xDC\xF8\xDET\x01I\xFC\xFC\xD6A \xF8\xA3\x15\x89\x07\\^\xC2\xCE\x19\x05zo\x97\xA4\nO\xAA\xB6q!\x8F\xF6\x87AVJ\xBE\xFE\xF2c\xD8uW/\x93xu\xB7"z\xB2Z6\x85\xA0\xB4\xBB\xC3\x99\xA3uv\x9D\xE7t\xA19Q\xF0\xAD\xC6\x0ES\x99>*\xED)\x17\x13m\x95\x15\0\xD6\x9Cr\x191\x05\xDA\t\xD4,v^q~\xB2\x90\xA5\x96{sn\xB3\xB1\\\xBCQ6\x99\xB4\x8E\xCDG\x8B\xAB.\xD6\xBFO4\x1Fy\xB5\xF9\xF35\xA6V\xC1\x8B\\\x83Y\\\xF5K\xA6\x11H': '@\xB2r\xA3)\x07\x02\xEA\xF4\xA1\x1FrZ\xC53\x07\f\xA3w\x93\xFD\xB9\xFE#A\x1F\xBB\xEE\xF9\x9C/R\x1E\t\xDEa\xB7)\xD5\x88\xC8\xEF1\x98\xAB\x95\xE8\xCC\x83M\x12\xDB\xAD\xE2\xDC\xB4\x9Bz\x8F\xF3\xCF\xF3d\x14q\x1A\xDCIq\f\x12\x95r\xE8\xCCI(\xB9\\\x94\xA8\x8C\xC6\\\xC0\xECLnt(t Q\x92[\0\xA6\x89n\xBCR\xC0[l(I\xD9\x80\xDDOH9^\xC6\xBE\x94b\x9D\xA8\x99\xA7[\xEF\xA5\xD7^no\x11~\xE6\xA6\xBEJm\xCFe\f\xD4\x1D\xE5\xF0\xBA\x0B<0\xAE \x9E\x95\x0B;\x82\xC8\x022C\x94\xF6ym\x8DA\xD3\x9C\xAC\xBE\xF2\xA5OKN\xB2:(\xB6\xF7\xEC\x87<J\xC3\x96\xDD\x96\xF2D?\xCC[U\xF6\xC6"\x05AY\xF4k\xCF]*\xE3\xE3\xBEn\xC1\x84\x86C\xEA[=\x1D\x992\xE0\xD8c\xF0\xF6\x1C\xAA\x8E\x19\xA4\x15\xA2\0\xB1\x88\xFCs\xC1^\xF5,f\xBC\xEC\xF4]\xAE\x17\xF6\xEA\xD4\x01Dl,H\xBA\xF4\x84Tc\x19\xBC]\xF6f\xDB)/4k\n\x13b\xE4I7\xFBD|7\xB6rJ~a\xAE9\x88Ht\x99~\xA8\xDD\xE45\xC7p\x1E\x9A\xD8\xBFUkN\x9B=\xCE\xEF\x91\x19Zi;\xE31\xC4\xA38\x12E\xA35\r\x8A2\x07\x0B\xE9\x86J\xE96\xA30\xAE\x81:\x14f\x85\xB1\xC7\xAE8\xF9,\xEEwg\r\x1E:X\xF9\0r\x8F\x90~\x9Ax7\xF4$\xE5\x02\xBE\xD6Y4\xE8\xF4$\x17s\xEBi\xADh\x06\xC8skt\xAA\xE9\x14\x9D%z\xA8\r|\xE4T\xBB\xAB\x8Bo\xDC/\xEBZ=\x9A\x1C\x144p=\x84\xB6', '\xF2\xC3\xDB\xD5\x8CTB\x8C:\xD6\xD3\xA0$\'\xAE\xB1\xF3\x05\x80~\xC5\xAB\x93e\x81C\xF3U\xD5\x9D\xCE\xF7\t\rY@\xEB\x03\xCA\x85\xE5\t2\xBD\xA89CbU\xB1\x9D\xF66_[\xE7\\\x81h\x7F2\xB31\x18\xE2M\xCC\xA0\x9Bh\xA0\x82Y_\x1D\xBD\xAC/\xF5\xE9\xBE\xAAw\xAF\xD6\xDA\x07O\xBC^\xAD\xAB\xF6$\xDEu\xECK\xBFm\xD4>\xD8pG\x0F\xAC\rH%\x88:\x9D\x10\xB7{\x8D\x84\x14-\xD2\xA5\xD80\x80r\x84\xC0\xEA\xDB\xCC\xD8\xA3C\x96\x16\xC4\xE8\x07\x81W\xDA-DYxG"F\xC0\xFE\xD6\xE9,\x95\xA7-\x80)\xB2\xE9\x0FO\xB7:-\x1D\xBAd\0\xDC}J?Q\xE1\xD7\x92~/f\xCE\xF4 ': '', ';\x0E|X\x13\x9E\x11\xD1M\xB5\xC6\xFA\xD1l\x95\xA2\x95\xB3\xEC\\ \x90\x8AW\xC9\x80\x1E\xE9\xDC\x8D\x80y\xEC\x91\xA2\x83#\xD2\xA8\xEC\x10\xE2wJ\xAAW\x04\xFD\f\xD3\xEA\x9AE\x9A*\x84\xF3\x7F\x05\xB3\x8D\x82\xF1l\xC9\xB8\xE5\x8A\xD6W.\xC6Da\x1D\xBB",\xCA\x82#\x1D\x9E\b\x06\xEF\xACqr\xF8I\xFC\xFBz\xB5pj\xF2P \xC0\xD3\xD2\r\x1E\x068\xA6\x8Bm\x07a\xFB\xEAK\xD6\x8C': '<\xC2\x9A\xDB\xE8\x87$\x1CR\x83\xE6n/\x19\xD8\xCA\xCC\xA9(\x03\xB6kv-e3\x9F\x9A\x8Ey\xA9\xF8\xA8#N\x8Eu\x01$\xAD\x85\x96\x1E\xBA\x83$\x10*\'\x1A\xB4\x1B\xDB\xF3G\x911J#G\x13\xE4\xEBa\xD9\x180\xF8\xEF\xED\xEA]\xAA\xFAMy\x1C<\xF5\xDA*\\xF39(\xD4\xB4\f\xA6\xA8\b\xCC\xFFb>\x9F\xC6\xCC\xD8\x05\xED\x84t\x7Fy\x8A\xCE\xD6\x99f,Y$\xE3\x03\xE0\x0E*\x8Dk\xEF/\x19\xE0V\xA5\x17\xA9\xCC\xB4\x80\rx\xC6\x1E\x1BUl\x01IuI0"\xA9\xF0\x9Eum\xB0\xCF\xA5\x02\xFA\xEE!\x0BN\x1194\xB7\xD2\b\t\xABi\xFF\x8B\xBD\xAD\xEF<-\xFB\b\xA7\x87\xB8'\xAC\xA8\xB3\x1E\xF7\xD2\xCC\xB4\xB8\tkX\xE6sH\xBF\xE9\x90\x1B\xD9\xDB\x86D\x89q\xC4rD5n\xE6\xB2\xD6G\\x18,\xCBo\xC9.z\xD4Q\xA4\x1B\x1C\b\x12\xBF\bJ?\x7FX\xD5\xFFf\xF2\xB4z\xD2\x07\xCD\x8B?\xD7\xC3A$4\xA5\xC6\x18\xD0\xB5[\x82\x95]G\x98\x12\xDF\xF4J\xCC}s\xB4\x96(\xB8/R|oU\x04Fz\x7FN(\xB9\x04"\xD9#\x92\xB4u]\xDFz\xE6\f\x89j\xA1>\xCC\x7F4\x7F\xA8TH\x1E.=\xD4\xF1uSI\xA37C\xA5\xA8\xD1*\xF6\xE0\xCE\x180CiJ\xEA\xFC\x8A\xA3\xA5.\x13\xD1\xD8\xAE\xE7G\xE1\xAB\xB0)\xA2\x89E\x8Ak\x90f2\x80\x9D\x8B\x98IY\xA1\x17\xA0\x93v\xDF<(\x07U\xCF\x18\xD5x\x80\x85\xE8{\xBC\xFC\x1E\xB6\x97L\xC9\xA2\xC4\x15\x87\xE0\xEA\0\x1A\xED\xAFrw\xE2\x05\xF5f\x07Y\xE7E\x96\xC5\x86}C\xF9\xDC\x82\x8A\xC6{Y>\xFCP\x1F\xC32:\xB7\xAC=\xD7\xA5\xD3\xEF\xD5%\xAE\xDB\xC0\xFC\x04\xD7\xA6jw\y\x924\xDEgwG\xD5\x0B"\x1B\x81K\x96\xC9\xF5\x96-\xF6\x1C\xEE\xCD8"\xC8!\x94U5\f\xBF\xBCr\xFF\x8C\xB1\xDD\xC0\xE2Tr4\t \xBF\xD7\xE0\xA1\x9B\x1Ez\xFA\x85\x8A\xE1\xA2\xA5\xE0\xA3LP\xE2\0H \xA8?J\x13fG\xB9\xA9\xC2\xDE@\x8E\x07\xBD\xB9\xD3\xB6\x90\xB3l\xA6\xDD3\xA6\xE1F\xB1\x05f\xCF\xBEp\xB3JM3\x80\xA0\xDD%\xCCy8\xA2lW\x81\xFBH\xDE)f\xCF\xC2\x90\x8FE9\x81Y[\xF4\xC3\x98\xA4\xB5\x05jZ\xC8\xC0\x003\xAE\x82\xB5S\x01\x8D\xD0\x0B]U\xED\xE22\xC4\xA2l\xE0\x18)@\xF5\x8FH-L\x9C\'\xBC ^\x96\x0EU$\x06\xA6@\xD0\x0BA\x1Ex9Th\x93\x10j\xA5\xAF\x15\xB4\xFBy\xC8\xC4\xFE\xB9OU\xD3\xC3\xE6\xF5\x92\x84\x01\x10\x9D\x9E\x9D\x98\x81x\x1B\x85\xE5\xFF\xA3\xD3\x13\xA7C\x89k7\xB9\xBEH\xECV \xFC\xFB\xCC6U\x92\x1AF3S\xFF\xE9\r!\x13\xAFYs\x8F\xD9\xA7\x92\xF0\xB5v\xD4f\xECA\xF6\x96\x80zn\xD7w\xD1\xD1?\xFCw\xA3,\xED\xB1C<\xEC\xFE\x06\x17z't\xEB\xE0\x83\x9C',
'\f@\x9B\xDAE\xE4\x01\x9C\x10\xE5\x13#\xFD\xDDf\x10\xDE\xEA9\xC4y\xD6\x8A\x8F\x15\n3\xF1\xE1\nT\xE7\xBE\x18\xFE\xACU\x1F\0xV\xCB\xEF\x15I\xCB\x02\xE4\xE7#[\x17d\xC9\xE7\x0B\x1D\xFF/\xB6Z\x1F\x97\n\x99\xC3!e\x8F\xD1\x0E\xD2\xB2l\x10?\xFC\xBE\xC3\xE8\xAD\xE1mZ\x91\x83\x1E\x82Cz\x1B5xk\xEA\xE8z\x9F\xC3\x18\rD\x06\xE7\x16\xA1N\xBD]B\xEE1\xC8t\x9B\xEF\xC8Q\xBA\t\xE9D\xE7\xDF\xF5\x9E\xE5\xF3y\xCC\xCAN\x9E\x1Bx\xCF\xF5\x0B\xEFm\xB3': '',
'\x85\x1C\xDB?,\xA4F#\x9E`[F\xE3\xDB\xBC\xAA\xAB\x99\xCD\x8E\xD7Q;\x84{\xF5\xE0\xB7\x98\xE3\x91\f\x8F5\xF9\xF2\xF2K!\x87h#\x16\xF1\0{\xA7\xCE4zJ\xB3v\x9Ehlv\x9B\xDE\x0E\xB31[\xCF\x86Qy\xDA': '',
'L@J|x\xED\x15\x1A\xCC\xC4\xB3.~q\xA4>\xFD\x99.?\xAF\x9B\xF2@T\xA8\xF5m\xA5',\xD5\x842C\xC2-\xB7\x99\xB0N\xC1\xEB\x97\xDA\x9B?\xD4y\x86D\x96\xBE\xFC\x0BB\xB9\x12 \x87\xEBl\x1AZ6\xE3/7\x80\x80\xF0\xDCG\x93"\x10I\x076\xDA\x9B\xA4\x19h,w\xBA\f\xC3\xC9\x1Fp
\x80\x02)\xA0\xB6H\xAE\xA5\x92\0\xC50Xr\xABt\x1F?\x1F\xAB)\xAC\x96I\xD9B\x9A?t\x7F\x86'dKC\xEDn\x9EJ3Bt\x1C;\xA0XQ\n/\xE3\x034\xD2\xC5\x85\xF2\xBAF\xD4"\xF19\x9D9\x95\ro\x85(\xCCy\x82\xC5\xD2\xC8\x9F\xEB\x9A{\xF2\xFF3|\xF7\xF3\xE15\xEE-\x8AlL@\f\f\xB9\xD8\xA8\x83\x03\x12MWx\x19\x81D\xF6\xDE\xB6Ev\xE2\xE1\x03y\xC4*\x90?\x0F\xD5\xC6\xEF\x1C\x96\xE8\x9C\xE5w,u2\r"\xA2\x16N\xB8\xFFtM'DY\x8C\xD9\x9C?e\xA2YW\x93\xEA\xF5%\xD2\x87\xF0\x99\x05\xA6B#) Z\xA8\xF9\xC2\xC0\x05\xF4\xDC\x90B\x17\xF7\xFDDd\xD2\x1D\\xD6\xFC\xE1bA\x98\xDD\xFD\xC4P\xB7TTg\x14\xC1
1S\xDD\xAE\x02\xE2\x1B\xB0w\x9FC\x07\xC5\x84\xE8#\xD8[\x19{\x12\x82\x9D\xA6\xFD\xDF\x88o\x96\xFD\x98\x1D)\xFC\xFA\xF7\xCE\xC0_\x80m\x8FS\xE0\xCF\f\xE3\xDC,A\x97qi\xA4\xC3\x1A\x80\x01%\x9C\x90\xCB\x97\xE8\x97OTF\xA4\xED1w\xC7Dr{\x15(\xA9b\x1F\xE1'L\xE8\x8D\xD1\0<\xB4\x93w\x9B\x1F\x99?\xA7\xEB\x91\xF8\xD8\x13F\xE5\x9D\x02A\xC8\xFE{p~\x1F\x81\xFA\xF1\xFC\x84\xC5\x186\xA5L4h\x9C\xA4|w\xF0w!\xF2\xF9': '\xBE#zb=\xEB_v\xBBYro3\x16E\x99d=\x91\t\xB4\x84F\nj\xA1\x85\x19\xEDT\x93r\x1A\xC5\\xBB\xE3E\xA8\xFBw\xE1B%k\xBE\r\0_\x10J\x14\0\0\0\x01\0\0\0\x14\0\x05\0\x10\xAF\xC8\xCF\xED#P/'
}

response = requests.post('https://drmtoday.vieon.vn/license-proxy-widevine/cenc/', headers=headers, data=data)

Can you help me this error

Untitled

Thanks!

Add [wink] support

Здравствуйте,
Так и не получилось что-бы WINK заработал,
Может есть какие-то особенности?

Потому как я получаю только такое:

license response status: <Response [200]>

unable to parse license - check protobufs

Cdm error

widevine_keys-main>py l3.py
usage: cdm [-h] {start,add,clear,exportQ,importQ} ...
cdm: error: the following arguments are required: command

Charzeh Download manager

positional arguments:
{start,add,clear,exportQ,importQ}
sub-command help
start start downloading
add add to queue
clear clear queue
exportQ Export queue
importQ Import queue

what is?

.

Closed 🗡️

Add bitmovin support

facing some problems with bitmovin

Input MPD URL: https://bitmovin-a.akamaihd.net/content/art-of-motion_drm/mpds/11331.mpd
License URL: https://widevine-proxy.appspot.com/proxy
Unable to find PSSH in mpd. Edit getPSSH.py or enter PSSH manually: AAAAW3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADsIARIQ62dqu8s0Xpa7z2FmMPGj2hoNd2lkZXZpbmVfdGVzdCIQZmtqM2xqYVNkZmFsa3IzaioCSEQyAA==

PSSH obtained.
AAAAW3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADsIARIQ62dqu8s0Xpa7z2FmMPGj2hoNd2lkZXZpbmVfdGVzdCIQZmtqM2xqYVNkZmFsa3IzaioCSEQyAA==
Traceback (most recent call last):
File "D:\widevine\widevine_keys-main\widevine_keys-main\l3.py", line 130, in
correct, keys = WV_Function(pssh, lic_url)
File "D:\widevine\widevine_keys-main\widevine_keys-main\l3.py", line 52, in WV_Function
data=f'token={headers.token}&provider={headers.provider}&payload={str(request, "utf-8" )}'
AttributeError: module 'headers' has no attribute 'token'

Auto Closing error

I faced this error
I entered the mpd link
I entered the license url
it showed me the pssh and it automatically closed suddenly
Please help me
Thank you

I want to get the key from this site noorplay

I want to get the key from this site noorplay
https://www.noorplay.com/
mpd: https://d31ib6xnmsvhmh.cloudfront.net/CEseEtXO_5TVYLlB7x36Vbry4_enc.mpd
license: https://vdrm.mobiotics.com/prod/proxy/v1/license/widevine
license2: https://vdrm.mobiotics.com/prod/proxy/v1/license
AAAAXHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADwSEM7J6lx2Hx68B2HnXTsuGUUSEANaeBK08x5VgubZ1z3aR14SEEXxWXo10f9Kakv+/yisPtlI49yVmwY= CEseEtXO_5TVYLlB7x36Vbry4_VIDEO_HD_2625K_enc.mp4 CEseEtXO_5TVYLlB7x36Vbry4_VIDEO_HD_4982K_enc.mp4
https://www.noorplay.com/series/The-Ottoman/gnOJj66iEQb7/season/3

Add vdocipher support

Add vdocipher support

Input MPD URL: https://d1z78r8i505acl.cloudfront.net/media/ChIa1gxFQGBuI/7065244f/stream.mpd
License URL: https://license.vdocipher.com/auth
Unable to find PSSH in mpd. Edit getPSSH.py or enter PSSH manually: AAAAUnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADIiKnZkb2NpcGhlcjoyMjhlNWM4Y2JlMGE0NTA0ODE0MDBhZTVlODk3NGM5Y0jj3JWbBg==

PSSH obtained.
AAAAUnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADIiKnZkb2NpcGhlcjoyMjhlNWM4Y2JlMGE0NTA0ODE0MDBhZTVlODk3NGM5Y0jj3JWbBg==

license response status: <Response [403]>
server reports: {"code":2011,"message":"request unwrapping failed"}
server did not issue license, make sure you have correctly pasted all the required headers in the headers.py. Also check json/raw params of POST request.

This is the curl converter code :
headers = {
'authority': 'license.vdocipher.com',
'accept': '/',
'access-control-request-method': 'POST',
'access-control-request-headers': 'content-type',
'origin': 'https://d1z78r8i505acl.cloudfront.net',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'cross-site',
'sec-fetch-dest': 'empty',
'referer': 'https://d1z78r8i505acl.cloudfront.net/',
'accept-language': 'en-US,en;q=0.9,si;q=0.8',
}
response = requests.options('https://license.vdocipher.com/auth', headers=headers)

Screenshot (10)
Screenshot (11)
Screenshot (12)
Screenshot (13)
Screenshot (14)
Screenshot (15)

Please add vdocipher site............................

Add [redefine.pl] support

Input MPD URL: https://hls.redefine.pl/6EFF0E23/1712/0/dash_iptv/live.mpd
License URL: https://b2c-www.redefine.pl/rpc/drm/

PSSH obtained.
AAAAZHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAEQIARIQsckmWr/9a0OY0dX9OfwZCBoNY3lmcm93eXBvbHNhdCIZNkVGRjBFMjMvMTcxMi8wL2Rhc2hfaXB0dkjj3JWbBg==

license response status: <Response [200]>
server reports: {"error":{"code":-32600,"message":"Invalid Request"},"id":null,"jsonrpc":"2.0"}
server did not issue license, make sure you have correctly pasted all the required headers in the headers.py. Also check json/raw params of POST request.

Where to find provider and releasePid?

Where do I find the values of "provider" and "releasePid" when I check in Chrome F12 Network? The site I want to download from is https://www.cmore.se

I also wonder, the value that should be entered at "token", is that the same value as in "x-dt-auth-token"?

unable to parse license - check protobufs

Input MPD URL: https://s3-iad-2.cf.dash.row.aiv-cdn.net/bd26/7388/7c7b/4ddd-bf00-61356e58f32f/d26cf947-5b9d-46c0-a5ad-deba66ce275d_corrected.mpd
License URL: https://fls-eu.amazon.com/1/action-impressions/1/OE/dv-xp-player/action/XpPlayer:.Media.SourceBuffer.Audio.SessionAppendTimeRatio.Average@v=0.0028257978723404257/XpPlayer:.Media.SourceBuffer.Audio.SessionAppendTimeRatio.StdDev@v=0.0016455277487718858/XpPlayer:.Media.SourceBuffer.Video.SessionAppendTimeRatio.Average@v=0.005661005661005662/XpPlayer:.Media.SourceBuffer.Video.SessionAppendTimeRatio.StdDev@v=0.00428394283392228/XpPlayer:.Media.TimeUpdateFrequency.Average@v=1947:u=ms/XpPlayer:.Media.TimeUpdateFrequency.StdDev@v=0:u=ms/XpPlayer:.Media.UnexpectedWaiting.Count@v=0/XpPlayer:.LoadCalled@v=1/XpPlayer:.LoadCalled.Feature@v=1/XpPlayer:.ServiceRequest.PRS.PrimaryResources.RequestLatencyTime@v=207.20000000298023:u=ms/XpPlayer:.Manifest.DASH.Download.TransferTime@v=0.29999999701976776:u=ms/XpPlayer:.Manifest.DASH.Download.Latency@v=5.399999998509884:u=ms/XpPlayer:.Manifest.DASH.Download.Throughput@v=4878596.495054215/XpPlayer:.Manifest.DASH.Parse.Time@v=6:u=ms/XpPlayer:.Filter.MediaCapabilities.Time@v=20:u=ms/XpPlayer:.ServiceRequest.PRS.License.RequestLatencyTime@v=116.89999999850988:u=ms/XpPlayer:.ServiceRequest.GetSections.RequestLatencyTime@v=783.1999999955297:u=ms/XpPlayer:.ServiceRequest.PRS.PrimaryResources.RequestLatencyTime@v=145.70000000298023:u=ms/XpPlayer:.Manifest.DASH.Download.TransferTime@v=0.5:u=ms/XpPlayer:.Manifest.DASH.Download.Latency@v=10.600000001490116:u=ms?marketplace=uk&marketplaceId=A1F83G8C2ARO7P&requestId=1&service=ATVXpPlayer&session=6898ed67-88d2-4844-a170-5db1e8248a06&host=XP

PSSH obtained.
CAESEPAV99rR/k0pkKjWQrzNxZsaBmFtYXpvbiI1Y2lkOnJPeDhMK09PUk9LR0MrY1FLWWVXY2c9PSw4QlgzMnRIK1RTbVFxTlpDdk0zRm13PT0qAlNEMgA=

license response status: <Response [403]>

server did not issue license, check json params in POST request.

unable to parse license - check protobufs

Input MPD URL: https://s3-iad-2.cf.dash.row.aiv-cdn.net/bd26/7388/7c7b/4ddd-bf00-61356e58f32f/d26cf947-5b9d-46c0-a5ad-deba66ce275d_corrected.mpd
License URL: https://atv-ps-eu.amazon.co.uk/cdp/catalog/GetPlaybackResources?deviceID=dd36a649c2e8285c83143a88b5d21e6d1d68eb86fedc5d57d9def97c&deviceTypeID=AOAGZA014O5RE&gascEnabled=false&marketplaceID=A1F83G8C2ARO7P&uxLocale=en_GB&firmware=1&clientId=f22dbddb-ef2c-48c5-8876-bed0d47594fd&deviceApplicationName=EdgeNext&playerType=xp&operatingSystemName=Windows&operatingSystemVersion=10.0&asin=amzn1.dv.gti.a857089e-cccd-4f32-8cd3-4b91fb587c48&consumptionType=Streaming&desiredResources=PlaybackUrls%2CCuepointPlaylist%2CCatalogMetadata%2CSubtitleUrls%2CForcedNarratives%2CTrickplayUrls%2CTransitionTimecodes%2CPlaybackSettings%2CXRayMetadata&resourceUsage=CacheResources&videoMaterialType=Feature&userWatchSessionId=afdf7538-0779-48b0-b2bf-41333dc36240&deviceProtocolOverride=Https&deviceStreamingTechnologyOverride=DASH&deviceDrmOverride=CENC&deviceBitrateAdaptationsOverride=CBR&deviceHdrFormatsOverride=None&deviceVideoCodecOverride=H264&deviceVideoQualityOverride=HD&audioTrackId=all&languageFeature=MLFv2&liveManifestType=patternTemplate%2Caccumulating%2Clive&supportedDRMKeyScheme=SINGLE_KEY&titleDecorationScheme=primary-content&subtitleFormat=TTMLv2&playbackSettingsFormatVersion=1.0.0&xrayToken=XRAY_WEB_2021_V1&xrayPlaybackMode=playback&xrayDeviceClass=normal&playerAttributes=%7B%22middlewareName%22%3A%22EdgeNext%22%2C%22middlewareVersion%22%3A%2296.0.1054.43%22%2C%22nativeApplicationName%22%3A%22EdgeNext%22%2C%22nativeApplicationVersion%22%3A%2296.0.1054.43%22%2C%22supportedAudioCodecs%22%3A%22AAC%2CAC3%2CEC3%22%2C%22frameRate%22%3A%22SFR%22%2C%22H264.codecLevel%22%3A%223.1%22%2C%22H265.codecLevel%22%3A%220.0%22%7D

PSSH obtained.
CAESEPAV99rR/k0pkKjWQrzNxZsaBmFtYXpvbiI1Y2lkOnJPeDhMK09PUk9LR0MrY1FLWWVXY2c9PSw4QlgzMnRIK1RTbVFxTlpDdk0zRm13PT0qAlNEMgA=

license response status: <Response [200]>

unable to parse license - check protobufs

Could you offer support for rte.ie

Not sure what information you would require to enable this. But the license url seems to require a token, see
https://widevine.entitlement.eu.theplatform.com/wv/web/ModularDrm?token=eyJhbGciOiJSUzUxMiJ9.eyJzdWIiOiJydGUtcHJkLXByZC10cnQvYW5vbnltb3VzX25ncnBfcGxheWVyQHJ0ZS5pZSIsImlzcyI6IjEiLCJleHAiOjE2MzkyNDUyMDMsImlhdCI6MTYzOTE1ODgwMzY2MCwianRpIjoiM2VhZjkzNTMtOWMyZi00NDI1LTgwNDAtYTMwNWQ5MzhmYjFkIiwiZGlkIjoicnRlLXByZC1wcmQtdHJ0IiwidW5tIjoiYW5vbnltb3VzX25ncnBfcGxheWVyQHJ0ZS5pZSIsImN0eCI6IntcInVzZXJOYW1lXCI6XCJhbm9ueW1vdXNfbmdycF9wbGF5ZXJAcnRlLmllXCJ9XG4iLCJvaWQiOm51bGx9.B0M0t-VS44ELtmMa-8YW0e-I4-0CFR6FaLpwkXB7ys25QLiXpdOXFjhBoi_xeuB-wraDXuc8uJ2WlLc2_tEDAMfrVZ6QZvvERXep0j9oha0zH3GoagIbwvfXbcuQICh3D9pIDsbeVzNTSBww-LLoGQFZOXiAa60YiueZdua9TMpfo8BtLgaB7xp-cGx0UVbyRgo_Vs_o55CBWk6csrWPpL-PQZCUjAGYLIPhzRin6TjECtP1dWOLN_1tHgpVOEPUhrzDLemX6wgYlRw74xlHbuYzFvwruHQYxJcHzJ-xtmnFllkOF3JEieFai-eVIF5WusHzWcDsBifZp4spbnZbTw&account=http://access.auth.theplatform.com/data/Account/2700894001&form=json&schema=1.0
and when entered into your script it offers up the error message

PSSH obtained.
AAAAXHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADwIARIQ7iYSc3cNGm7XKPe3hSn3MhoIdXNwLWNlbmMiGDdpWVNjM2NOR203WEtQZTNoU24zTWc9PSoAMgA=

license response status: <Response [200]>

unable to parse license - check protobufs

python version?!

Hello,

Can you mention in requirements txt file which python version needed?!

python l3.py File "l3.py", line 33 print(f'{chr(10)}PSSH obtained.\n{pssh}') ^ SyntaxError: invalid syntax

Thanks

It doesn't work

I got the following error.
What is the solution?

C:\Users\○○\Desktop\DRM\widevine_keys-main>C:\Users\○○\Desktop\DRM\widevine_keys-main\l3.py
Traceback (most recent call last):
  File "C:\Users\○○\Desktop\DRM\widevine_keys-main\l3.py", line 11, in <module>
    from cdm import cdm, deviceconfig
  File "C:\Users\○○\Desktop\DRM\widevine_keys-main\cdm\cdm.py", line 10, in <module>
    from cdm.formats import wv_proto2_pb2 as wv_proto2
  File "C:\Users\○○\Desktop\DRM\widevine_keys-main\cdm\formats\wv_proto2_pb2.py", line 20, in <module>
    _LICENSETYPE = DESCRIPTOR.enum_types_by_name['LicenseType']
AttributeError: 'NoneType' object has no attribute 'enum_types_by_name'

l3.py doesnt finish

I'm no expert in this so I may make a beginners mistake. I tried your project on channel 4 and get the main script doesnt finish. After entering the license URL it waits forever - interrupting at some point results in the following traceback.

Screenshot from 2021-12-11 20-28-45

I'm unsure about the URLs are correct and the chosen header is the right one. From DevTools I got this for the header and license URL:

Screenshot from 2021-12-11 20-25-54

and this for the MPD URL:

Screenshot from 2021-12-11 20-26-15

I hope someone knows what the issue could be.

.

..

Please Add galaxyplay.vn support

python l3.py

Input MPD URL: https://a30-fcdn.glxplay.io/25aa1cfb-0565-4509-8226-ff7394e6c620/4e32a7c2-c748-43ff-88a8-dbf0a94b8b10/5/d8dd0528fbe07990e5431f58bdd1325e/h264/manifest.mpd

License URL: https://lic.glxplay.io/license-proxy-widevine/cenc/

Unable to find PSSH in mpd. Edit getPSSH.py or enter PSSH manually: AAAAXHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADwIARIQJe+p+2yBV4ecVjXp9J3jIRoIdXNwLWNlbmMiGEplK3ArMnlCVjRlY1ZqWHA5SjNqSVE9PSoAMgA=

PSSH obtained.
AAAAXHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADwIARIQJe+p+2yBV4ecVjXp9J3jIRoIdXNwLWNlbmMiGEplK3ArMnlCVjRlY1ZqWHA5SjNqSVE9PSoAMgA=

license response status: <Response [400]>
server reports: <!doctype html><title>HTTP Status 400 – Bad Request</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style>

HTTP Status 400 – Bad Request


server did not issue license, make sure you have correctly pasted all the required headers in the headers.py. Also check json/raw params of POST request.

This header:

import requests

headers = {
'authority': 'lic.glxplay.io',
'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="96", "Microsoft Edge";v="96"',
'dt-custom-data': 'eyJ1c2VySWQiOiIyNWFhMWNmYi0wNTY1LTQ1MDktODIyNi1mZjczOTRlNmM2MjAiLCJzZXNzaW9uSWQiOiJwcm9kdWN0aW9uX2ExMGNiYmNlLWEyZjQtNGEzZC1iZjhhLTgyNjRkNzViYzk3YyIsIm1lcmNoYW50IjoiZmltcGx1cyJ9',
'sec-ch-ua-mobile': '?0',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36 Edg/96.0.1054.53',
'sec-ch-ua-platform': '"Windows"',
'accept': '/',
'origin': 'https://galaxyplay.vn',
'sec-fetch-site': 'cross-site',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
'referer': 'https://galaxyplay.vn/',
'accept-language': 'en-US,en;q=0.9',
}

params = (
('platform', 'BROWSER'),
('type', 'MOVIE'),
)

params inserted below will be passed to data-raw

token = 'PFYtFSqWMYIROJYywBp0rbKvpD3z6N6E6UezNrZmCeKHkcJ5BiH4J8qwO0kfWOmrSsyFJMg9OqKKEwvuQiXL4qdDTa6ZYplNV9IQt6eEuveglDxjVlYd0vAecS5TZKn5mIs01YxcYNlTC7tu3BIk63JhMykMWEMmj1oEqaLa7N3ZrfU2VTlEPaWXBQV6PxnFeD022Yi298GOX/lDik7sXt5u4duT0aKIYbz0HPmjoh8b9Uy8bvzJUa0/SlgRcsW8RNTNjRJHM6N7BESCBGFEZcWoSXeDLEblEfRoBKro2iDGB1neLfRdY1fj7tJX1Rn9lj+OJwRTrBV4XoTQFuSsFwvYCeQfkAoRHXnze9njI5pY7sYgIGxuM4Zh3Wqaps6kxdO53QMm0jJ/L41X6r5CikSGKQ3Rcps8eQccZb9svEuyXMof2nm+eYL+AVPPrfmAf/BrmUHfiuF9CmNsF9pI7PjJfLeASmh3KDI/5gUuC4uJB7rjTzHVWNRz8MSvYjJ37/5V9+FTihpu04+0jFZ1AlGRks2dzk2IGvm5WcwUhsW2l/oQXlh7AgsksIl2DT0wH11WeG+h1/ijymMcG9AZzsxtkC53eLJ8bl55/Aag0TJfX4N6KvV7UhglXxkLifb06bLK/wlcGCfb01b4cnngcjPJEMxh2+Q7sJSnbyrtsfodzNah8JXITmx5kTkFFZkdtga1ha9jAb+Z40VMQfbrCLgh0GEe2G3VczcIt8QHAWAeS91TkzLbMRAugbgLvdbI8yQXtM15uo+TXrV4PNFprug33AnvnQu7IpNxlmgPMZhEn4Qqc/V++OFIpz/JYEMnLFvjYcXE2+sPc4uKnoE0xk33+IgZKtWtDhxRg2SJKyKOYxXucXybUuqPP/d+Nq1VNhD84Of+EfVvBjs1u75pNz/kmu5ms9ppRMkafq0/2311hbYi6VXmp6AeJweGJWkGKEFxw7xADuC8iM7xWnXW5aiNvhbsXBOwuTK8b2ioxjrg6OFhiMck+z9M5FHg+ktY7YB8iY+0V6B/Op2cQGtLaZ2E9lsomlQpxL+LiPI7UWEqmALEGH/Pk5tdLnlFRjEk2PPc8YURw+/nkP9tqJ/AXQwaXc9iwC5yxlYPCsp/Tc4='
provider = 'kakaotv'

releasePid = "_qVpiY31v_oU"

response = requests.post('https://widevine-proxy.ott.yandex.ru/proxy', headers=headers, cookies=cookies, data=data)

print(f'{chr(10)}widevine_license: {response.content}')

#NB. Original query string below. It seems impossible to parse and
#reproduce query strings 100% accurately so the one below is given
#in case the reproduced version is not "correct".

response = requests.options('https://api.ott.kinopoisk.ru/v12/license-affected-content-metadata?contentIds=4b63db58ab27e92b90a457e533b00007&serviceId=25', headers=headers)

dash-cenc/hdr10_uhd_hevc_ec3.mpd

https://strm.yandex.ru/vh-ottenc-converted/vod-content/4315082489d87677b21f7c83593fcb73/8614535x1631802676x41611665-4e76-41ac-93a7-5070b77b5f3c/dash-cenc/sdr_uhd_hevc_ec3.mpd

'GET /certificate HTTP/1.1'

Add [jio_cinema] support

What additional fields does your site require?
A clear and concise description or screenshot of payload tab of post-request in chrome devtools

Describe algorithm for generating additional fields if they are not static
[text]

Add [sokmil] support

Hello,
I’m not sure what data you need. This is an adult website.

MPD : https://idc104.candl.jp/watch/?a=c1LsAlPLnq01XHDCHmI7s1-beZV.LcFGar0zaZDoq0E&h=205&f=ing0342_00_3m.vismv&style.mpd
License : https://license.candl.jp/sokmil/widevine/
Pssh : AAAAMnBzc2gAAAAA7e+LqXnWSs7jyCfc1R0h8QAAABISEB0tbK4Y1U1wpJ/wf7eklJ8=
000333
11996600
990088
{"status":"OK","status_message":"","license":"CAISogIKOAoQ5hyBygBtzixiPbUsxM32EhIQ5hyBygBtzixiPbUsxM32EhoAIAEoADj9ogVA/aIFSP/t040GEhAIARABGAAg/aIFKP2iBWABGmYSEHRzhgNRLWoakHInQ2LBr+0aUO+Xsly0YsF1TR1O5RO7NLgLn5v0Rk12w/j9qbdQbPmRY7rt4CiTMKT6rSB1USMURi08zrxH08Cf1WdDxLsp8t0RDdSH/6OFVeC1v1OgytTiIAEaYgoQHy1srhjVTfCkn/B/t6SUnxIQ21pZZHj79qKLDTlibr8nshogkxPW9IY7Pxj/oh+BZd3uAJ7TUmUy9DPIysDDegURRgAgAigBQhIKEGtjMTYAAAAAXOUZI4AAAAhiAkhEIP/t040GOABQBRog6UOSomcEXb/h/1d4M67fWpjskrQgYackEKdo8Z4fW9MigAE/Msy4YWGYiFeTXLmc7di9hWYnDpg6pTyJJN2lPDmtgFoNB+WRfPTmmxLE7qcD/tEb6A3K95t8a2VMCPVDHF+g4wIILqa0crNCCbxziX9g4ybi/xibJZNknq1bFSYxIi4eKq9Ki0eMVYsTAw0pOewo1ytp2KY01RPPd3OBzqWChDoyCjAxNi41LjAgQnVpbHQgb24gTm92IDMgMjAyMSAyMTo0MTowMSAoMTYzNjAwMDgzNilAAUqwAQAAAAIAAACwAAUAEFzlGSPwVC9xAAAAUAAAABAAAABiAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAFRfQAAAAAAAVF9AAAAAAAAAAAAAAABAAAAuAAAABAAAADKAAAAEAAAANwAAAAQAAAAAAAAAAAAAAEEAAAAEIs87E+RLDbJ3f4D2g+005VCBUfgzm9kJoC0oJ8zlJShWAE=","license_metadata":{"content_id":"ZXlKaGMzTmxkRWxrSWpvaU1XWXlaRFpqWVdVeE9HUTFOR1JtTUdFME9XWm1NRGRtWWpkaE5EazBPV1lpZlE9PQ==","license_type":"STREAMING","request_type":"NEW"},"supported_tracks":[{"type":"HD","key_id":"Hy1srhjVTfCkn/B/t6SUnw=="}],"make":"Google","model":"ChromeCDM-Win-x64-7","security_level":3,"internal_status":0,"session_state":{"license_id":{"request_id":"5hyBygBtzixiPbUsxM32Eg==","session_id":"5hyBygBtzixiPbUsxM32Eg==","purchase_id":"","type":"STREAMING","version":0,"original_rental_duration_seconds":86397,"original_playback_duration_seconds":86397,"original_start_time_seconds":1639249663},"signing_key":"+vc7ir7rWH1ItVig9lfY9a92SQ7TcV68O2XLu4LaSsANrIebaSMldljwPlGSZLcQokhol4NZuDbMKO/5ag6NuQ==","keybox_system_id":21889,"license_counter":0},"drm_cert_serial_number":"NDY4NWI0OTk3YjI3MmNjNmFkNDUyMGZjYmZiMDNjMGE=","device_whitelist_state":"DEVICE_NOT_WHITELISTED","message_type":"LICENSE","platform":"windows","device_state":"RELEASED","pssh_data":{"key_id":["Hy2srhjVTfCkn/B/t0SUnw=="],"content_id":"ZXlKaGMzTmxkRWxrSWpvaU1XWXlaRFpqWVdVeE9HUTFOR1JtTUdFME9XWm1NRGRtWWpkaE5EazBPV1lpZlE9PQ=="},"client_max_hdcp_version":"HDCP_V1","client_info":[{"name":"architecture_name","value":"x86-64"},{"name":"company_name","value":"Google"},{"name":"model_name","value":"ChromeCDM"},{"name":"platform_name","value":"Windows"},{"name":"widevine_cdm_version","value":"4.10.2391.0"}],"platform_verification_status":"PLATFORM_SECURE_STORAGE_SOFTWARE_VERIFIED","content_owner":"castlabs","content_provider":"castlabs","system_id":21889,"oem_crypto_api_version":16,"resource_rating_tier":0,"service_version_info":{"license_sdk_version":"16.5.0 Built on Nov 3 2021 21:41:01 (1636000836)","license_service_version":"widevine_license_wls_20211103_212427-RC00"},"soc":"x64","client_capabilities":{"session_token":true,"video_resolution_constraints":true,"supported_key_type":[]}}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.