01e7f3bd19
This adopts release-please to manage releases and changelogs, similar to other shaka-project repos. All release workflows can be run by forks by configuring repo secrets. See docs in .github/workflows/ for details. - Use release-please for releases, changelogs - Convert publication jobs (docs, docker, npm) into reusable workflows - Update workflow documentation - Modernize docker commands - Fix doc permissions for publication - Update artifact handling in build workflow - Fix paths in Dockerfile - Fix paths and arm64 support in NPM package - Fix install paths for PSSH tools - Fix warnings in NPM & Docker actions - Delete custom changelog tooling |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
README.md | ||
pssh-box.py |
README.md
pssh-box - Utility to parse and generate PSSH boxes
Prerequisite
- Python 3.
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:
$ ninja -C build/ pssh-box.py
Then you can use the built utility in build/pssh-box.py
.
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:
$ 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.
$ 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:
$ 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).
$ 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.
$ pssh-box.py --from-hex \
000000247073736800000000EDEF8BA979D64ACEA3C827DCD51D21ED0000000422021234
$ pssh-box.py --from-base64 AAAAJHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAAQiAhI0
More options
Run the utility with no arguments to see the full list of options.
$ pssh-box.py