Closed simonbcn closed 9 months ago
Hi Juan,
Thanks for providing such detailed output. I tried duplicating your issue and found out that the key returned correctly, thanks to your dt-custom-data not expiring yet.
So I would request you that please try again.
And it's also noteworthy that I wrote this script to simplify the key-getting process on my Windows laptop. However, I saw some paths like Linux ("/home/user/..."), as well as those "Arch Linux" characters. I'm not sure if it works on Unix operating systems, but please run it on Windows platform if possible. Thanks for your attention.
Yes, I'm running this on Linux. I don't have Windows. So it must be a problem with enconding, do you know which scripts I should check?
First, based on your OS, I would prefer this below on your virtual env:
print(f'Status code: {widevine_license.status_code}, \nLicense Response: {widevine_license.content}')
to see what license server returned under an HTTP 406 error like you said.
Next, the error printed on your screen indicated that the response didn't look right. If so, I have no idea yet, sorry.
I can email you the content key you are requesting if you like.
This is the server response:
HTTP Status 406 \xe2\x80\x93 Not Acceptable
Then I may suggest that you turn to others who you trust, and provide the cURL of the license request and then let them try editing this script. I can't imagine what could lead to this error (Linux does support Widevine L3.)
I have installed Windows 11 in VirtualBox but same error: 😮
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\requests\models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.496.0_x64__qbz5n2kfra8p0\Lib\json\__init__.py", line 346, in loads
return _default_decoder.decode(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.496.0_x64__qbz5n2kfra8p0\Lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.496.0_x64__qbz5n2kfra8p0\Lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\User\Downloads\WKS-KEYS\l3mubi.py", line 82, in <module>
correct, keys = WV_Function(pssh, lic_url)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\Downloads\WKS-KEYS\l3mubi.py", line 77, in WV_Function
license_b64 = widevine_license.json()["license"]
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\requests\models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
What version of Python do you use? What version of libraries do you use?
I'm using (in Windows) python 3.12 and this libraries:
Package Version
------------------ ----------
certifi 2023.11.17
charset-normalizer 3.3.2
idna 3.6
pip 23.3.2
protobuf 3.19.5
pycryptodome 3.19.1
pycryptodomex 3.19.1
pyperclip 1.8.2
requests 2.31.0
urllib3 2.1.0
xmltodict 0.13.0
Script executed in Python Virtual environment with this libraries:
This is the debug output:
I think the problem is the response from licence server:
urllib3.connectionpool:https://lic.drmtoday.com:443 "POST /license-proxy-widevine/cenc/ HTTP/1.1" 406 441
HTTP 406 error code: Not Acceptable. It indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
Proactive content negotiation headers include:
Accept Accept-Encoding Accept-Language In practice, this error is very rarely used. Instead of responding using this error code, which would be cryptic for the end user and difficult to fix, servers ignore the relevant header and serve an actual page to the user. It is assumed that even if the user won't be completely happy, they will prefer this to an error code.
If a server returns such an error status, the body of the message should contain the list of the available representations of the resources, allowing the user to choose among them.