Skip to main content

Shaka Player

Shaka Player is an open-source JavaScript library for adaptive media. It plays adaptive media formats, such as DASH and HLS, in a browser without using any plugins or Flash. Instead, the player uses the open web standards Media Source Extensions (MSE) and Encrypted Media Extensions (EME).

Integrating Shaka player​

You can easily integrate Shaka Player with Axinom DRM. Use the sample code and instructions below.

  1. Create a video element on your HTML page by adding the following line:

        <video id="videoPlayer" controls></video>
  2. Add the shaka-player.compiled.debug.js script to the end of the HTML body.

        <body>
    ...
    <script src="yourPathToDash/shaka-player.compiled.debug.js"></script>
    </body>
    note

    You can also refer to 'https://ajax.googleapis.com/ajax/libs/shaka-player/&lt;version>/shaka-player.compiled.debug.js'. If you want to change the version, add the path to the correct version.The below mentioned configurations are done with the Shaka player version 4.2.1.

  3. Initialize the Player by adding the following line inside your loader method which is executed when you load the player.

        videoElement = document.getElementById('videoPlayer');
    player = new shaka.Player(videoElement);
  4. Install built-in polyfills to patch browser incompatibilities.

        shaka.polyfill.installAll();
  5. Set the protection data related to the video with the license service details as shown in below example.

        protection = {
    drm: {
    servers: {
    'com.widevine.alpha': 'https://drm-widevine-licensing.axprod.net/AcquireLicense',
    },
    },
    }

    player.configure(protection);
  6. Pass the token as a ’X-AxDRM-Message'` to the player.

        player.getNetworkingEngine().registerRequestFilter(function (type, request) {
    if (type === shaka.net.NetworkingEngine.RequestType.LICENSE) {
    request.headers['X-AxDRM-Message'] = token;
    }
    });
  7. Now, you can load the player and play the video which is integrated with DRM.

        player.load(
    'source url',
    )

    $('#shaka-player').show()
  8. Example code

    <!DOCTYPE html>
    <html>
    <head>
    <title>Shaka Player with Axinom DRM</title>
    </head>
    <body>
    <script src="https://cdn.jsdelivr.net/npm/shaka-player@4.3.5/dist/shaka-player.compiled.min.js"></script>
    <link
    rel="stylesheet"
    href="https://cdn.jsdelivr.net/npm/shaka-player@4.3.5/dist/controls.min.css"
    />

    <video id="videoPlayer" controls></video>

    <script>
    videoElement = document.getElementById('videoPlayer')
    player = new shaka.Player(videoElement)
    shaka.polyfill.installAll()

    protection = {
    drm: {
    servers: {
    'com.widevine.alpha': 'https://drm-widevine-licensing.axprod.net/AcquireLicense',
    },
    },
    }

    player.configure(protection)

    player.getNetworkingEngine().registerRequestFilter(function (type, request) {
    if (type === shaka.net.NetworkingEngine.RequestType.LICENSE) {
    request.headers['X-AxDRM-Message'] =
    'X-AxDRM-Message token'
    }
    })
    player.load(
    'source url',
    )

    $('#shaka-player').show()
    </script>
    </body>
    </html>


Integrating Axinom DRM with Shaka Player​

In the protection section, specify the license service URL as below.

Widevine​

    {
drm :{
servers: {
'com.widevine.alpha': 'https://drm-widevine-licensing.axprod.net/AcquireLicense'
}
}
}

Playready​

    {
drm :{
servers: {
'com.microsoft.playready': 'https://drm-playready-licensing.axprod.net/AcquireLicense'
}
}
}

Fairplay​

For fairplay you need to specify the server certificate URL as well.

    {
drm :{
servers: {
'com.apple.fps': 'https://drm-fairplay-licensing.axprod.net/AcquireLicense'
}
},
advanced: {
'com.apple.fps': {
'serverCertificateUri': <fairPlay_Certificate_Url>
}
}
}
tip

You can try out the Shaka Player with the HTML5 VideoTestBench online tool.

Video Playback Tool in Portal​

Note that under My DRM >> Tools >> DRM Video Playback, you can actually try out the Shaka player and check whether your video plays with it. This tool allows you to play the DRM-protected video as well as generate and adjust the Entitlement Message. Copy the video URL, the JWT, and the license acquisition URL and choose Shaka player from the drop-down menu at the bottom. Click to get the player link and then copy-paste the link to see whether your video plays with Shaka.