Azot (Russian word for "nitrogen", pronounced /azо́t/
) is a set of tools (JavaScript library, command-line utility and browser extension) for diagnosing, researching, and pentesting DRM systems like Widevine.
Azot is still in the early stages of development, so until version 1.0 is released, performance may be unstable and major changes may be made
- Minimal dependencies
- Runtime agnostic core: works in Node.js, Bun, Deno, browsers and more
- Logging details from EME events in Developer Tools console of current page
- Encrypted Media Extensions API compatibility via
requestMediaKeySystemAccess()
method - Converting clients between formats via CLI
- Manifest V3 compliant browser extension
- Custom client support: WVD v2, device_client_id_blob + device_private_key, client_id.bin + private_key.pem
- Network-independent interception, so it doesn't matter if the request has one-time tokens or a custom request/response body format.
- Remote instance to control sessions via REST API
JavaScript library and command-line tool installation requires pre-installed JavaScript runtime (e.g. Node.js).
npm install azot
npm install -g azot
Developer Mode needs to be enabled in chrome://extensions/
page
- Download archive from latest release
- Go to
chrome://extensions/
page - Ensure Developer Mode enabled and then drag and drop downloaded zip file to this page
- Download archive from latest release
- Go to
about:debugging#/runtime/this-firefox
page - Click
Load Temporary Add-on
button and choose downloaded zip file
Temporary add-on is not persistent and will be removed after browser restart
See examples.
See help: azot --help