Updated Provisioning (markdown)

Sp5rky
2025-07-17 19:00:31 -06:00
parent 3fb600884a
commit 86f45b7007

@@ -6,7 +6,15 @@ 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 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 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`. convert them to a `.WVD` file by running `uv run unshackle wvd new --help`.
To create or manage WVD files, use the built-in CLI commands:
- `uv run unshackle wvd new` — Create a new WVD file from device keys and certificates
- `uv run unshackle wvd add` — Add one or more WVD files to the WVDs Directory
- `uv run unshackle wvd delete` — Delete one or more WVD files from the WVDs Directory
- `uv run unshackle wvd parse` — Parse a WVD file to check information
- `uv run unshackle wvd dump` — Extract data from a WVD file to a folder structure
Once you have `.WVD` files, place them in the WVDs directory which can be found by calling `uv run unshackle env info`. 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`. 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`.
@@ -14,23 +22,23 @@ From here you can then set which WVD to use for each specific service. It's best
provision where possible. provision where possible.
An alternative would be using a pywidevine Serve-compliant CDM API. Of course, you would need to know someone who is 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) serving one, and they would need to give you access. Take a look at the [remote_cdm](https://github.com/unshackle-dl/unshackle/blob/main/CONFIG.md#remote_cdm-listdict)
config option for setup information. For further information on it see the pywidevine repository. config option for setup information. For further information on it see the pywidevine repository.
## PlayReady Device (PRD) Provisions ## PlayReady Provisions
Similarly, a PlayReady Device file (.PRD) is needed for acquiring licenses and decryption keys for PlayReady DRM-protected content. 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). 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: 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 new` — Create a new PRD PlayReady Device file from group keys and certificates
- `uv run unshackle prd reprovision` — Reprovision an existing PRD file with new keys - `uv run unshackle prd reprovision` — Reprovision a PlayReady Device (.prd) file
- `uv run unshackle prd test` — Test a PRD file against the Microsoft PlayReady demo server - `uv run unshackle prd test` — Test a PlayReady Device on the Microsoft demo server
Once you have `.PRD` files, place them in the `PRDs/` directory (see `uv run unshackle env info` for the path). 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`. 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. 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. 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. 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.