devine-dl/pywidevine

Add /service_certificate endpoint for loading Service Certificates

Closed this issue · 1 comments

Is your feature request related to a problem? Please describe.
When using /challenge, specifying a service certificate (if you intend to use one) is required on every /challenge call which is simply unnecessary. We shouldn't need to set a service certificate explicitly on each /challenge call. Instead, set it only when you want to set the initial service certificate or change it to another.

Describe the solution you'd like
Have a /service_certificate (or similar) endpoint to call the underlying cdm.set_service_certificate() method instead of doing this within /challenge. This reduces the amount of data that passes through /challenge, reduces the complexity of /challenge, and allows users to only change service certificates when needed.

Describe alternatives you've considered
There's not really any alternative I can think of. This would be something the API schema would need to change.

Additional context
When implementing client code for the API schema, it's quite strange to see that the original set_service_certificate method can be used as-is, considering the service certificate is more so set with /challenge (during get_license_challenge()). It's just not correct.

Added in v1.3.0 5788dde