Widevine drm issue on LG webos

Product

Player

Question

Hi,
I am trying to play Widevine content using Bitmovin Player in my LG webOS application, but the content is not playing. I have followed the Bitmovin Player documentation and all steps, but it’s not working. My LG TV version is 6.0.0. How can I play Widevine DRM content using Bitmovin Player on my LG Smart TV?

@pijush.rana Thanks for reaching out to us.

What error are you seeing? As a first step, I recommend testing the same setup in Chrome to ensure the settings and configuration are correct.

Here is our tutorial page with samples for different DRM providers: Streaming DRM protected content with Bitmovin Player Web SDK

Additionally, you can use our player-playground or DRM test page to quickly test different configurations.

Hi,

My requirement is to play Widevine DRM content using Bitmovin Player and pass a token through the prepareMessage function. I have a setup where I’m using Bitmovin Player in a web application, and in that scenario, everything works fine—I can play any content without issues. However, when it comes to LG webOS, I’m encountering problems.

I’ve identified two issues:

  1. The prepareMessage function is not being called in the LG webOS case.
  2. My LG screen displays an error message: “Unable to instantiate a key system supporting the required combinations (DRM_NO_KEY_SYSTEM).”

I’m unable to determine whether the issue lies in my code or with the Bitmovin Player key I’m using, specifically regarding permissions for LG webOS.

Could you please help me resolve this?

@pijush.rana DRM_NO_KEY_SYSTEM is shown when the platform doesn’t support the combination of source and DRM, or the specific DRM is not supported. You can find more details here - ErrorCode | Bitmovin Player API 8.170.0

To validate this, I recommend playing our DRM demo stream to ensure the stream/configuration is not an issue. Additionally, at the bottom of the demo page, you can check the list of DRMs supported by the device. Please ensure you are testing on a real device, as DRM streams will not work on simulators.

DRM demo page to test - DRM Secure Stream Test using HTML5 Video Player | Bitmovin

I have reviewed the documentation indicating that LG TVs support the HLS Widevine combination that I am using in my application. In fact, the demo using the same combination works fine on my LG TV. Here is my current configuration:

plaintext

hls: “https://bitmovin-a.akamaihd.net/content/art-of-motion_drm/m3u8s/11331.m3u8”,
type: widevine
LA_URL: “https://widevine-proxy.appspot.com/proxy”,

This setup functions correctly on my LG TV. However, when I attempt to use my client’s URL, the setup fails to work.

It seems to be a stream-specific issue. Could you share the stream with the current configuration that works on the web so we can investigate? If it is confidential, you can send a message using the messaging option.

Here is my DRM file:

https://mena-jit-avod-cdn-lb.starzplayarabia.com/JIT/SPA/ingest-teleproginternational-avod/AVODPAINTEDVEILY2006M/f7aa0d1d0dcbd41a1be7584d5b923a61/AVODPAINTEDVEILY2006M.ism/AVODPAINTEDVEILY2006M.mpd”,

and this is the web setup where I am passing the token:

drm: {
widevine: {
LA_URL: “https://widevine-proxy.drm.technology/proxy”,
prepareMessage: function (keyMessage) {
return JSON.stringify({
token: “token”,
drm_info: Array.apply(null, new Uint8Array(keyMessage.message)),
kid: Key_id,
});
},
},
},

This setup is functioning correctly on the web platform.

The code looks good to me. I have a couple of questions:

  1. Do you see any errors in the console with player debug enabled?
  2. Have you tested on any other LG TVs to rule out device specific limitations?

Also, would it be possible to share the token and Key_id so that I can test it from my side?

  1. I am not finding any errors in the console.
  2. I have tested on two different LG TVs, and both of them exhibit the same issue.
  3. I am sending null for key_id.
    4.token: starzplayarabia|2024-06-28T14:12:48Z|p8lvlUa61MAdgtI0fsUvGEA+OC5M+S2NNPwlhtN0kmLTDvxaEkbEcwGyz5p7kSgDGSsB09R1mYOltay3OYPSO15RxLkGpLVDLYEXl/1CBGCalBet70g0/EtiVnLGH7Q4abD9ShVsfmj1LbLoXPh6jV0WniwcXWeYtpU5bHem0QI=|cd918dded70bde73e8c3e02de15ff86dc0cf3a28
  • Please note that the token will expire, so if you want to test, please do so quickly.

@pijush.rana I’m able to play the stream on an LG TV without any issues. Here is the player-playground page with the source configuration I used for playback. I’m also attaching a screenshot for your reference.

Player-playground page configured to play your stream : Link

Create a separate application specifically for LG and run the following code on a real LG device. It seems you are suggesting to open Chrome on the LG device and test this code there.

@pijush.rana I used the default web browser on webOS to play the stream. Since the app uses the same webview, the playback capability should be the same. If it works in the browser but not in the app, the issue may be related to app permissions.

Could you please confirm if you are able to play the URL I shared earlier with the latest tokens? Additionally, can you confirm if the source configuration in your setup is the same as the one I used?

{
    dash: "https://mena-jit-avod-cdn-lb.starzplayarabia.com/JIT/SPA/ingest-teleproginternational-avod/AVODPAINTEDVEILY2006M/f7aa0d1d0dcbd41a1be7584d5b923a61/AVODPAINTEDVEILY2006M.ism/AVODPAINTEDVEILY2006M.mpd",
    drm: {
        widevine: {
            LA_URL: "https://widevine-proxy.drm.technology/proxy",
                prepareMessage: function (keyMessage) {
                return JSON.stringify({
                    token: "starzplayarabia|2024-06-28T14:12:48Z|p8lvlUa61MAdgtI0fsUvGEA+OC5M+S2NNPwlhtN0kmLTDvxaEkbEcwGyz5p7kSgDGSsB09R1mYOltay3OYPSO15RxLkGpLVDLYEXl/1CBGCalBet70g0/EtiVnLGH7Q4abD9ShVsfmj1LbLoXPh6jV0WniwcXWeYtpU5bHem0QI=|cd918dded70bde73e8c3e02de15ff86dc0cf3a28",
                    drm_info: Array.apply(null, new Uint8Array(keyMessage.message)),
                    kid: null,
                });
            },
        },
    },
}