youtube / js_mse_eme

js_mse_eme is an externally-published tool that is aimed to test the validity of a browser's HTML5 Media Source Extension and Encrypted Media Extension implementations

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Receiving 500 error from `https://proxy.staging.widevine.com/proxy` in deferred license request.

charlie-ht opened this issue · comments

I am investigating a failure in the YouTube 2018 EME tests, specifically the test 6. WidevineH264MultiMediaKeySessions. I have inherited some code that has several issues, but the other widevine tests in the 2018 suite I have managed to get working. The problem in this test is receiving HTTP 500 errors from the license server. 6. WidevineH264MultiMediaKeySessions specifies a different license server (https://proxy.staging.widevine.com/proxy) than the other widevine tests (https://dash-mse-test.appspot.com/api/drm/widevine<parameters>), and the HTTP 500 error is specific to 6. WidevineH264MultiMediaKeySessions.

The application flow in our code for the generateRequest API is to first always generate a server certificate request. The hexdump of this message looks like this,

Offset    00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000  08 04                                            ..

Our application then receives a message back from the server containing 716 bytes (I can provide the hexdump if it's useful), at this point no surprises... The next step our application takes is to generate a deferred license. When this message is sent to the license server, we receive back status 500 and no further information.

Hexdumps can be provided for these payloads, but I'll omit them for brevity initially.

The questions I have from this are,

  • Is there any public documentation about the APIs for these servers, the format of the messages they accept or anything like that? Is there documentation about it I should have with my licensed widevine CDM?
  • Why are there two different license servers (https://proxy.staging.widevine.com/proxy and https://dash-mse-test.appspot.com/api/drm/widevine<parameters>) in the tests, are there known differences in the types of messages you can send them?
  • The generation of the server certificate and then deferred license is determined by the Widevine CDM, I ran the test through Chrome and Firefox and didn't see the server certificate request generated (I understand they use different CDMs), so I expect this difference in behaviour can partly explain the 500 error, but the semantics of these request types isn't clear to me.

TIA.

500 response code implies an invalid license request. I might be able to look into some of these questions but this really isn't the best venue to discuss certification issues and CDM implementation details. I recommend reaching out to the YouTube Technical Solutions team.

Do you have a device going through YouTube certification? If so, there should be partner contacts that you can reach out through. What company are you working with?

What company are you working with?

I am probably not allow to say this -- I asked if they have any contacts and they don't think they do. I'll update them that this is the only way to progress. Thanks for your help.