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,19 +22,19 @@ 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`.