2023-11-17 00:35:49 -05:00
2023-11-17 00:35:49 -05:00
2023-11-17 00:35:49 -05:00
2023-11-17 00:35:49 -05:00
2023-11-17 00:35:49 -05:00
2023-11-17 00:35:49 -05:00
2023-11-17 00:35:49 -05:00
2023-11-17 00:35:49 -05:00

Obtaining PSSH

Getting started

4 methods to find PSSH:

  1. The simplest one: PSSH is clearly indicated in MPD file. Download MPD file (browser add-on "MPD Detector" will give you MPD link or filtering for mpd in the network tab of devoloper tools (ctrl + shift + c)), open it with Notepad, search for pssh value.

  2. If there is KID, but no PSSH in MPD, calculate PSSH by using KID:

Using this website you can get the PSSH by entering in the urn:uuid: into the System ID field and entering the cenc:default_KID= into the KEY IDs field without the quotes ""

Eample: One:

  1. EME Logger Script (installed on Tampermonkey add-on) will give you init data. That's your PSSH. This can be found on Developer Tools (ctrl + shift + c) > Console, in the filter bar search for MediaKeySession::generateRequest you will find Init Data.

Optional, may be rquired:

If that Init Data is very very long, convert it to HEX: https://base64.guru/converter/decode/hex

Here's what mine looked like before conversion. Two:

After Base64 > HEX conversion, you will find a Widevine-PSSH box, this can be found easily by searching with ctrl + f and searching for 70737368

PSSH header is always in a 000000xx70737368 where the xx is varied and can be from 1-9 in both x spots. You always want to copy the 6 0's before the xx as well.

Example: Three:

The end of the header is always then followed by 8 more 0s, if you see this, you are in the right place.

Once you find the header start at the beginning 0 from the header and copy until the end of the converted hex, it should look like this

Example: Four:

In this case the full value was 000000577073736800000000edef8ba979d64acea3c827dcd51d21ed0000003708011210162f7d326cf24f6dbd1319bc572bbc151a0b62757964726d6b65796f732210162f7d326cf24f6dbd1319bc572bbc152a024844

convert the hex back into base64 using https://base64.guru/converter/encode/hex

Example: Five:

In this case we got the PSSH value of AAAAV3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADcIARIQFi99MmzyT229Exm8Vyu8FRoLYnV5ZHJta2V5b3MiEBYvfTJs8k9tvRMZvFcrvBUqAkhE

Congrats, you have the PSSH!

  1. Using init files

You can use this tool to obtain the PSSH from an init file

Description
No description provided
Readme 248 KiB
Languages
Python 100%