DRM_NO_KEY_SYSTEM 2006

The current platform doesn't support any of the key systems specified in the SourceConfig that are required to play back the content.

Different platforms support different DRM key systems, and when multiple key system configurations are provided in the drm, the first supported one is chosen. If, however, the current platform doesn't support any of the key systems provided in the source config, this error will be thrown.

A feature matrix, describing what DRM key systems are supported where by the Bitmovin Player, can be found at https://bitmovin.com/docs/player/articles/browser-drm-support.

In order to support DRM protected content playback on most platforms it is recommended to supply at least a PlayReadyDRMConfig and a WidevineModularDRMConfig for DRM protected sources.

@example
// Single Widevine
var widevineLicenseUrl = 'yourWidevineUrlHere';
var playreadyLicenseUrl = 'yourPlayreadyUrlHere';

var widevineDrmConfig = {
drm: {
widevine: {
LA_URL: widevineLicenseUrl,
},
},
};

// Single PlayReady
var playreadyDrmConfig = {
drm: {
playready: {
LA_URL: playreadyLicenseUrl,
},
},
};

// Both Widevine and PlayReady
var mixedDrmConfig = {
drm: {
widevine: { // Will be picked first if Widevine is supported
LA_URL: widevineLicenseUrl,
},
playready: { // Will be picked second if Widevine is not supported
LA_URL: playreadyLicenseUrl,
},
},
};

It is possible that the error to be thrown if you have specified a audioRobustness or videoRobustness with a security level which is higher than the system is able to support. If that is the case if you set level to DEBUG, there will be a debug console message as seen below in the example.

@example
Could not create DRM key system with specified combinations DomException {}	

Troubleshooting steps for DRM support on a platform

  • Verify that you are serving your content via https and that the license URLs are also hosted via https. Playback via not secure content will get blocked in certain browsers due to security reasons. This can be seen by inspecting the network tab in your browser. Some browsers also log a message in the console informing that a specific request was blocked due to mixed content. You can serve your content via https and make sure your license provider URL is accessed via https.

  • Make sure the platform supports the DRM configuration by checking the response from getSupportedDRM

    @example
    // Supports Widevine playback, therefore needs a Widevine drm configuration
    player.getSupportedDRM().then(console.log)
    ['com.widevine.alpha'] // Response will vary between device capabilities

    // Supported Fairplay, therefore needs a Fairplay dmr configuration
    player.getSupportedDRM().then(console.log)
    ['com.apple.fairplay', 'com.apple.fps.1_0', 'com.apple.fps.2_0']