PlayReady client security levels and dash.js

PlayReady security level is a property of a PlayReady client, and every license delivered to a client has a property indicating the minimum security level required from a client to allow binding to this license. More information on PlayReady security levels can be found here.

HbbTV service implementers should be aware that dash.js PlayReady implementations won’t use security level SL3000 if KID and encryption keys are not distinct on all tracks. The issue is discussed here: https://github.com/Dash-Industry-Forum/dash.js/discussions/3869#discussioncomment-3528752

Note the comment from Microsoft:

One last thing to keep in mind: You will not actually get SL3000 security unless the actual AES content keys used to encrypt the content are different between streams (not just the KID). It’s technically possible for a license server to issue licenses with different KIDs with the same content key.

So, HbbTV service implementers always need to use different distinct KID and encryption key for video track and audio tracks, if encryption key is identical then implementations will drop to security level SL2000 and not use the SL3000.

Help us improve the HbbTV Developer Portal. If you spot an issue, have a question, or would like to suggest an improvement to the API Reference or Developer Guide, please let us know by raising an issue on GitHub.