--- title: "Content certification" slug: "vpe-umd-content-protection" updated: 2026-09-17T09:22:36Z published: 2026-09-17T09:22:36Z canonical: "guide.ncloud-docs.com/vpe-umd-content-protection" stale: true --- > ## Documentation Index > Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Content certification Available in Classic and VPC It explains how to apply Secure Token to the playback source and configure One Click Multi DRM. ## Secure Token Using the `token` option, apply Secure Token to the playback source. HLS/DASH also applies to the underlying TS files. During playback, you can replace the token using the `tokenChange()` method. ``` const player = new ncplayer("player", { autostart: true, playlist: [ { file: "https://example.com/video/master.m3u8", }, ], token: "token=st=...~exp=...~acl=...", // Secure Token }); // Token replacement during playback player.tokenChange("token=st=...~exp=...~acl=..."); ``` Note Secure Token is issued by the CDN and has an expiration time, so for long playback it must be periodically replaced using `tokenChange()`. ## One Click Multi DRM Use this `playlist.drm` object to configure Multi DRM. When using DRM, use the `ncplayerDRM()` function. Note For DRM playback, use the `ncplayerDRM()` function instead of the regular `ncplayer()`. This function operates asynchronously (async). ### DRM key type DRM key types are as follows: | DRM key | Browser | Required property | | --- | --- | --- | | com.widevine.alpha | Chrome, Android | src, licenseUri, licenseRequestHeader | | com.microsoft.playready | Edge, Windows | src, licenseUri, licenseRequestHeader | | com.apple.fps | Safari, iOS | src, licenseUri, licenseRequestHeader, certificateUrl | ### DRM configuration example The DRM configuration example is as follows: ``` document.addEventListener("DOMContentLoaded", async () => { await ncplayerDRM("player", { playlist: [ { drm: { "com.apple.fps": { certificateUrl: "{Certificate URL}", licenseUri: "https://license-global.pallycon.com/ri/licenseManager.do", licenseRequestHeader: { "Content-type": "application/x-www-form-urlencoded", "pallycon-customdata-v2": "{FairPlay Token}", }, src: "{hls url}", }, "com.widevine.alpha": { licenseUri: "https://license-global.pallycon.com/ri/licenseManager.do", licenseRequestHeader: { "pallycon-customdata-v2": "{Widevine Token}", }, src: "{dash url}", }, "com.microsoft.playready": { licenseUri: "https://license-global.pallycon.com/ri/licenseManager.do", licenseRequestHeader: { "pallycon-customdata-v2": "{PlayReady Token}", }, src: "{dash url}", }, }, poster: "https://example.com/poster.png", }, ], autostart: false, }); }); ``` Note 2-channel configuration with HLS/DASH, HTTPS environment, support for Widevine/PlayReady/FairPlay, and a contract with an external DRM provider are required. ### API endpoint You can apply DRM by integrating the Video Player Enhancement service with the One Click Multi DRM service. FairPlay requires generating both an FPS certificate and a license signature separately. ``` # FPS Certificate Endpoint GET https://multi-drm.apigw.ntruss.com/api/v1/license/fairplay # License Endpoint (FairPlay/Widevine/PlayReady) POST https://multi-drm.apigw.ntruss.com/api/v1/license ``` ### Full HTML example ``` VPE DRM Player
```