Make a Widevine DRM license request to obtain decryption keys for a specified PSSH. This tool is implemented in WebAssembly and runs fully inside your web browser, meaning:
-
from a software hygiene perspective, the code is running safely sandboxed by your web browser
-
it doesn’t require any software installation on your computer
-
the license request is sent from your browser, so should be using any cookies that have been set for the license URL. It will respect any proxy settings and browser-based VPNs that you have set up.
Note: This tool is pretty bleeding edge, and error reporting is not very robust. Check your browser’s Javascript console if things don’t work; you may see some extra diagnostics information.
Pywidevine logs
Why did my request fail?
Your request for decryption keys may fail with a NetworkError or an HTTP Error (click on the
Pywidevine logs button for details), and check your browser’s Javascript console for further
information. The most likely reason for this is that the license server is checking for specific
authorization information in the headers of the request (for instance, X-AxDRM-Message
headers for
servers using the standard Axinom license software). Play the content in your web browser, check
the details of the request made to the license server in your browser’s Web Developer tools, and
make sure the same information is included in the Headers field above, formatted as a Python
dict.
Limitations
Some DRM license servers require specific information as a “payload” (body) of the POST
request made to
the license server, in addition to or instead of specific HTTP headers. This tool doesn’t currently
support sending a POST
payload body.
About
How does this tool work? It uses the Pywidevine library which provides a Python implementation of the Widevine Content Decryption Module (CDM). This module (normally implemented in obfuscated software that runs in your web browser, or on specially protected hardware on your CPU or GPU) is responsible for making requests to the server that provides the licenses (the decryption keys) for playing media “protected” by DRM. The pywidevine library is compiled to WASM using the excellent Pyodide tool so that it can run fully inside your web browser (there is no server backend for this software).
Privacy: this software is running fully inside your web browser. All the content is kindly hosted by GitHub pages (please note their privacy policy). We don’t log visits (no web analytics, no cookies), but GitHub pages provides anonymized web traffic graphs.