DevLARLEY / WidevineFetch

Parses 'Copy as fetch' of a license request, locates the challenge if license wrapping is being used, extracts the pssh data and re-sends the request.
GNU General Public License v3.0
70 stars 17 forks source link

What means to "Place your CDM (as a Widevine Device) inside of the cdm folder."? #7

Closed slrslr closed 1 month ago

slrslr commented 1 month ago

Hello,

can You please explain the steps understandable by a layman on how to get a CDM (likely "Content Decryption Module")? I am on a Linux Debian and found other issue, where you suggest running:

pywidevine create-device -k device_private_key -c device_client_id_blob -t "ANDROID" -l 3

pywidevine i assume https://github.com/devine-dl/pywidevine

But please how to exactly obtain data needed by that command, I am not on Android? It may be handy to mention in the README these steps so even person with just a GUI experience can get it.

DevLARLEY commented 1 month ago

A cdm is needed for decryption. It basically just a private key needed for the creation of a widevine device (you also need a client id, which is always included with the private key). Run the command with the files named accordingly (like shown in the command). Drop the created file into the 'cdm' directory of WidevineFetch.

Public CDMs can be found here: https://forum.videohelp.com/threads/413719-Ready-to-use-CDMs-available-here%21

slrslr commented 1 month ago

That is a bit confusing. So for each of the 28 items on that linked page, I have to one by one: extract run mine mentioned pywidevine command copy resulting file to WidevineFetch/cdm/ and here is stop, because https://github.com/DevLARLEY/WidevineFetch#usage does not mention how to use WidevineFetch. When I run: $ python3 ./widevine-fetch.py

Traceback (most recent call last):
  File "/dev/shm/WidevineFetch/./widevine-fetch.py", line 126, in <module>
    class AsyncProcessor(QRunnable):
  File "/dev/shm/WidevineFetch/./widevine-fetch.py", line 132, in AsyncProcessor
    pssh: str | None,
TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'

(output is the same also without ./)

$ python3 --version Python 3.9.2

On README, I see that You require: Python 3.12

I guess I will not install v.3.12 now https://www.fosslinux.com/122774/your-complete-guide-to-installing-python-on-debian.htm , maybe later. Maybe what I have written can be used to improve the README a bit.

DevLARLEY commented 1 month ago

You only need one of the CDMs listed.

And yes, python 3.12 is a requirement for widevinefetch