question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Can/should we have an API for re-provisioning DRM certificates?

See original GitHub issue

[REQUIRED] Searched documentation and issues

Indeed, I did.

[REQUIRED] Question

tl;dr what, if any, are the ill effects of “over-provisioning” DRM certificates? As an extreme example, if we were to provision each time the player started up, would we have any problems besides unnecessary resource usage and added latency?

We see a relatively constant low-level trickle of MediaDrmStateException, and we’ve always chalked them up to hw vendor issues on odd devices, but recently somebody on our dev team ended up in a state where they were consistently getting MediaDrmStateException caused by Failed to get key request: General DRM error on their Pixel 4 after the Android 11 upgrade. It was consistently reproducible so we dove in.

We tried everything imaginable short of a factory reset, but the device was stuck, it just wouldn’t give us the key request. Other apps successfully played DRMed content, just not ours. Then we forced a re-provision in our own code (outside of Exo). Things got unstuck and magically started working.

Now we’re trying to figure out if this could help the handful of users who are getting this error on a regular basis, and if it might help the multiple handfuls of users who get other various DRM errors on a regular basis.

Our working plan is to trigger a re-provision based on an allow-list of DRM exceptions, and potentially give users a control “recalibrate their player” that they can use when support tells them to.

If this is something that might help other people and isn’t a “bad idea” for some opaque DRM-related reason it might be nice to have an API to perform the reprovision from inside of Exo, perhaps by allowing us to inject an overriden ProvisioningManagerImpl.

Issue Analytics

  • State:open
  • Created 3 years ago
  • Comments:44 (11 by maintainers)

github_iconTop GitHub Comments

2reactions
PawKanarekcommented, Jul 29, 2021

Any update on this issue? We discovered 3 devices that are completely unable to play any DRM content on Android 11.

1reaction
malbanesecommented, Oct 5, 2022

We also faced problems with users not being able to playback widevine / drm protected content on our app. We’ve only been able to observe it happening via issues raised through our customer care team, and haven’t seen it on any dev devices.

The symptoms were the same - not being able to playback protected content in our app, other apps work fine, and all of the usual steps like reinstalling didn’t work for the users. Plenty of other users had identical devices with no playback issues as well.

Anyways, as a test, we built in the ability for us to remotely allow users with the problem to initiate DRM reprovisioning and it’s worked to resolve the issue for multiple users at this point.

It does feel like something that should be automatic though.

Read more comments on GitHub >

github_iconTop Results From Across the Web

How to handle Widevine provisioning request use the Drm API?
In starboard DRM API (src/starboard/drm.h), there seems no flow to handle Widevine device certificate request with provisioning server? ... But we still have...
Read more >
Certificate Provisioning System API - Akamai TechDocs
The Certificate Provisioning System (CPS) provides full life cycle management of SSL/TLS certificates for your Akamai Secure Delivery Network applications.
Read more >
US20050273844A1 - Token handler API - Google Patents
A token handler API which can be instantiated to allow for custom token types. The token handler API can interact with a web...
Read more >
DRM Certificates - Documentation - Bunny.net
Your API calls will appear here. Make a request to get started! Query Params. page. int32. perPage. int32. Responses. 200. The list of...
Read more >
Tree - rpms/kernel - CentOS Git server
We have to override the new %%install behavior because, ... man pages for the kernel API. mkdir -p $man9dir find Documentation/DocBook/man -name '*.9.gz' ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found