diff --git a/Provisioning.md b/Provisioning.md new file mode 100644 index 0000000..8ccb52a --- /dev/null +++ b/Provisioning.md @@ -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. \ No newline at end of file