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.