This tool decodes a PSSH box or sequence of PSSH boxes that are used to initialize DRM systems for streaming media. You will typically find a PSSH box:
- inside a
<cenc:pssh>
element in a DASH MPD manifest; - within a
pssh
box in the initialization segment of a media stream (an fMP4 fragment); - in DRM initialization data passed to the Encrypted Media Extension of a web browser;
- in an
EXT-X-SESSION-KEY
field of an m3u8 playlist.
This tool is implemented in WebAssembly (WASM) and runs fully inside your web browser. There is no server backend; the tool will work fully offline. It supports the following DRM systems:
- Widevine, owned by Google, widely used for DASH streaming
- PlayReady, owned by Microsoft, widely used for DASH streaming
- Irdeto
- Marlin
- WisePlay, owned by Huawei
- The unofficial variant of Apple FairPlay that is used for DASH-like streaming by Netflix
- Common Encryption (CENC)
For Widevine initialization data, you can cross-check the output from this tool by comparing it with
the output from the pssh-box.py
script included with
shaka-packager. If you have Podman or Docker
installed, run the commandline script safely sandboxed in a container as follows:
podman run --rm docker.io/google/shaka-packager:latest pssh-box.py --from-base64 <the-pssh>