Overview
If you are not sure what DRM is, you want have an overview and get started, please have a look at our DRM Setup Guide.
Nearly every license provider, such as Verimatrix or Irdeto, requires a few special information being sent to the DRM license server, or responds with a proprietary format. Instead of integrating a few license providers into the core of our player, we decided to provide necessary configuration options via the player configuration.
Widevine
1var conf = {2 key: 'YOUR-PLAYER-LICENSE-KEY-HERE',3 source: {4 dash: 'DASH_MANIFEST_URL',5 drm: {6 widevine: {7 LA_URL: 'WIDEVINE_LA_URL',8 headers: {9 privateData: 'cookie=PRIVATE_DRM_DATA'10 },11 }12 }13 }14};
Please replace the following placeholders in the code:
- DASH_MANIFEST_URL: The MPEG-DASH manifest (MPD) URL.
- WIDEVINE_LA_URL: The Widevine license server URL.
- PRIVATE_DRM_DATA: The private data to send to the DRM server to authenticate
PlayReady
1var conf = {2 key: 'YOUR-PLAYER-LICENSE-KEY-HERE',3 source: {4 dash: 'DASH_MANIFEST_URL',5 drm: {6 playready: {7 LA_URL: 'PLAYREADY_LA_URL'8 }9 }10 }11};
Please replace the following placeholders in the code:
- DASH_MANIFEST_URL: The MPEG-DASH manifest (MPD) URL.
- PLAYREADY_LA_URL: The PlayReady license server URL.
FairPlay
1var conf = {2 key: 'YOUR-PLAYER-LICENSE-KEY-HERE',3 source: {4 hls: 'HLS_MANIFEST_URL',5 drm: {6 fairplay: {7 certificateURL: 'CERTIFICATE_URL',8 LA_URL: 'FPS_LA_URL',9 prepareContentId: function (contentId) {10 return contentId.match(/ContentId=([^&]+)/)[1];11 },12 prepareMessage: function (event, session) {13 return new Uint8Array(event.message);14 },15 prepareLicense: function (license) {16 return new Uint8Array(license);17 },18 licenseResponseType: 'arraybuffer'19 }20 }21 }22};
Please replace the following placeholders in the code:
- HLS_MANIFEST_URL: The URL to the HLS manifest (M3U8) file.
- FPS_LA_URL: The FairPlay license server URL.
- CERTIFICATE_URL: The URL to the Fairplay certificate. This needs to be accessible for the player.
Complete Player Configuration Example for Multi-DRM
1var conf = {2 key: 'YOUR-PLAYER-LICENSE-KEY-HERE',3 source: {4 dash: 'DASH_MANIFEST_URL',5 hls: 'HLS_MANIFEST_URL',6 drm: {7 widevine: {8 LA_URL: 'WIDEVINE_LA_URL'9 },10 playready: {11 LA_URL: 'PLAYREADY_LA_URL'12 },13 fairplay: {14 certificateURL: 'FPS_CERTIFICATE_URL',15 LA_URL: 'FPS_LA_URL',16 prepareContentId: function (contentId) {17 return contentId.match(/ContentId=([^&]+)/)[1];18 },19 prepareMessage: function (event, session) {20 return new Uint8Array(event.message);21 },22 prepareLicense: function (license) {23 return new Uint8Array(license);24 },25 licenseResponseType: 'arraybuffer'26 }27 }28 }29};
Please replace the following placeholders in the code:
- DASH_MANIFEST_URL: The MPEG-DASH manifest (MPD) URL.
- HLS_MANIFEST_URL: The URL to the HLS manifest (M3U8) file.
- WV_LA_URL: The Widevine license server URL.
- PR_LA_URL: The PlayReady license server URL.
- FPS_LA_URL: The FairPlay license server URL.
- FPS_CERTIFICATE_URL: The URL to the Fairplay certificate. This needs to be accessible for the player.