Created Provisioning (markdown)

Sp5rky
2025-07-17 18:56:01 -06:00
parent 127542c739
commit 3fb600884a

36
Provisioning.md Normal file

@@ -0,0 +1,36 @@
## Widevine Provisions
A Widevine Provision is needed for acquiring licenses containing decryption keys for DRM-protected content.
They are not needed if you will be using unshackle on DRM-free services. Please do not ask for any widevine Device Files,
Keys, or Provisions as they cannot be provided.
unshackle only supports `.WVD` files (widevine Device Files). However, if you have the Provision RSA Private Key and
Device Client Identification Blob as blob files (e.g., `device_private_key` and `device_client_id_blob`), then you can
convert them to a `.WVD` file by running `pywidevine create-device --help`.
Once you have `.WVD` files, place them in the WVDs directory which can be found by calling `uv run unshackle env info`.
You can then set in your config which WVD (by filename only) to use by default with `uv run unshackle cfg cdm.default wvd_name`.
From here you can then set which WVD to use for each specific service. It's best to use the lowest security-level
provision where possible.
An alternative would be using a pywidevine Serve-compliant CDM API. Of course, you would need to know someone who is
serving one, and they would need to give you access. Take a look at the [remote_cdm](CONFIG.md#remotecdm-listdict)
config option for setup information. For further information on it see the pywidevine repository.
## PlayReady Device (PRD) Provisions
Similarly, a PlayReady Device file (.PRD) is needed for acquiring licenses and decryption keys for PlayReady DRM-protected content.
PRD files are not required for DRM-free services. unshackle only supports `.PRD` files (PlayReady Device Files).
To create or manage PRD files, use the built-in CLI commands:
- `uv run unshackle prd new` — Create a new PRD file from device keys and certificates
- `uv run unshackle prd reprovision` — Reprovision an existing PRD file with new keys
- `uv run unshackle prd test` — Test a PRD file against the Microsoft PlayReady demo server
Once you have `.PRD` files, place them in the `PRDs/` directory (see `uv run unshackle env info` for the path).
You can set the default PRD file in your config with `uv run unshackle cfg cdm.default prd_name`.
Service-specific PRD files can also be set in the config, just like Widevine.
For best compatibility, use the lowest security-level PRD file available.
Do not ask for PRD device files, keys, or provisions as they cannot be provided. Only use PRD files for services you have the legal right to access.