-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support HLS identity key format #2146
Comments
It looks like we don't support the clear-key format that Shaka Packager uses. It probably won't be too hard to add support for it. It has a tag format like this:
|
Shall I add that tag to the manifest?, When I do I get 4016 |
That tag is already in your manifest, we don't support it currently. We only support Widevine encryption in HLS. |
@ksuhiyp |
@ismena thank you, I hope this feature added soon |
@joeyparrish @kqyang @TheModMaker Ok, I knew it that I had to build a DRM server from the beginning, can I just generate a self license without using widevine or any other 3rdparty license authority? If yes where I can read more on the technichal design specs of such service, general instructions are appreciated |
@ksuhiyp, I don't understand your question about building a DRM server. For us to support the identity key format in HLS, that is not at all necessary. If you want to decrypt content with Widevine, that requires a Widevine license server under some agreement with Widevine. https://www.widevine.com/contact |
@joeyparrish I mean key server other than clear keys but not widevine licensed, something like a custom made key server to decrypt content |
Decryption happens in the client, not the server. Your limiting factor will be the DRM clients available in various browsers. Chrome and Firefox have Widevine & ClearKey clients. Edge and IE have PlayReady clients. Safari has a FairPlay client. The license protocol understood by each client is different. The ClearKey system is public and documented in the EME spec: https://www.w3.org/TR/encrypted-media/#clear-key-request-format But that won't help you with HLS identity key format support, for what it's worth. |
@sbbullet, this is the original issue for the "identity" key format. If anyone on this issue is interested to contribute, we would be happy to review a PR for this feature! Thanks for your help! |
Thank you @joeyparrish. I think only Apple's interest in supporting ClearKey would provide synergy to anyone who can contribute. Anyway, thank you for your response. |
Dear @joeyparrish, can you highlight on how to start contributing for this feature like places to read in the docs and whether upstream support from apple is required |
I would have to double-check what Safari supports, but ClearKey support would be required in the browser. This content should be playable in both Chrome and Firefox, though, which both have ClearKey CDMs. I haven't checked, but I expect new Chromium-based Edge would support it, as well. You can check this page in any browser to see what it supports: https://shaka-player-demo.appspot.com/support.html At the bottom, you would see something like this is ClearKey is supported: "org.w3.clearkey": {
"persistentState": false
}, And this if it's not: "org.w3.clearkey": null, As for contributing, I would guess that the relevant source files are:
The HLS parser needs to be able to parse the identity key format, which would be registered in DrmEngine already has a private method for creating a ClearKey DrmInfo based on a config. You could make it public and generalize it to take input from the HLS parser, too. It works by turning key IDs and keys into a Use Thanks so much! |
Dear @joeyparrish, on macbook safari |
can you please give more explanation, what do you mean by generalizing it to take input from HLS ?. till the moment I am imposing that I have to create a method in |
The "identity" key format is implicitly supported on AES-128 full-segment encryption, but support is still missing for SAMPLE-AES. |
Looking into adding support for It is possible that we will only be able to parse the tag and allow it through, but won't be able to automatically fetch the key and configure ClearKey for you. In this case, you would have to use |
This feature is not entirely automatic. The ClearKey CDM requires a key-id to key mapping. HLS doesn't provide a key ID anywhere. So although we could use the 'URI' attribute to fetch the actual 16-byte key, without a key ID, we can't provide this automatically to the ClearKey CDM. Instead, the application will have to use `player.configure('drm.clearKeys', { ... })` to provide the key IDs and keys or `player.configure('drm.servers.org\.w3\.clearkey', ...)` to provide a ClearKey license server URI. Closes shaka-project#2146
This feature is not entirely automatic. The ClearKey CDM requires a key-id to key mapping. HLS doesn't provide a key ID anywhere. So although we could use the 'URI' attribute to fetch the actual 16-byte key, without a key ID, we can't provide this automatically to the ClearKey CDM. Instead, the application will have to use `player.configure('drm.clearKeys', { ... })` to provide the key IDs and keys or `player.configure('drm.servers.org\.w3\.clearkey', ...)` to provide a ClearKey license server URI. Closes #2146
…t#4451) This feature is not entirely automatic. The ClearKey CDM requires a key-id to key mapping. HLS doesn't provide a key ID anywhere. So although we could use the 'URI' attribute to fetch the actual 16-byte key, without a key ID, we can't provide this automatically to the ClearKey CDM. Instead, the application will have to use `player.configure('drm.clearKeys', { ... })` to provide the key IDs and keys or `player.configure('drm.servers.org\.w3\.clearkey', ...)` to provide a ClearKey license server URI. Closes shaka-project#2146
I am getting 4026 err code for mp4 cenc encrypted
packager args
Player DRM config:
The text was updated successfully, but these errors were encountered: