pssh-box - Utility to parse and generate PSSH boxes =================================================== ## Prerequisite - Python 2.6 or newer. ## Build the utility using Shaka Packager build setup The utility needs to be built before being used, i.e. do not use the script in `packager/tools/pssh/pssh_box.py` directly. If you have not set up the build environment for Shaka Packager, see https://github.com/shaka-project/shaka-packager/blob/master/docs/source/build_instructions.md. With the build environment set up, use `ninja` to build the utility: ```bash $ ninja -C out/Release pssh_box_py ``` Then you can use the built utility in `out/Release/pssh_box.py`. You can add `out/Release` to your `PATH` so you can run it from anywhere. ## Usage All examples below assume that that `pssh-box.py` is in the `PATH` variable of the executing shell. ### PSSH box generation The utility can be used to generate one or more PSSH boxes. An example to generate a Widevine PSSH with content-id 1234: ```bash $ pssh-box.py --widevine-system-id --content-id 1234 ``` It can be also be used to generate PSSH box from PSSH data (base64), e.g. ```bash $ pssh-box.py --widevine-system-id --pssh-data AAAABCICEjQ= ``` The output can be in base64 form (`--base64`), in hex form (`--hex`) or in human readable form (`--human`). Human readable form is the default. An example to generate a Widevine PSSH with content-id 1234 in hex: ```bash $ pssh-box.py --widevine-system-id --content-id 1234 --hex ``` Multiple boxes can be generated by separating boxes with `--`. An example to generate concatenated PSSHs with a Widevine PSSH with content-id 1234 and a common PSSH with key-id 31323334353637383930313233343536 (hex form). ```bash $ pssh-box.py \ --widevine-system-id --content-id 1234 -- \ --common-system-id --key-id 31323334353637383930313233343536 ``` ### PSSH box parsing The utility can be used to parse a single PSSH box or multiple concatenated PSSH boxes. The input can be in hex or in base64. ```bash $ pssh-box.py --from-hex \ 000000247073736800000000EDEF8BA979D64ACEA3C827DCD51D21ED0000000422021234 ``` ```bash $ pssh-box.py --from-base64 AAAAJHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAAQiAhI0 ``` ### More options Run the utility with no arguments to see the full list of options. ```bash $ pssh-box.py ```