--- title: "DRM and content authentication" slug: "vpe-drm-content" updated: 2026-09-17T09:22:39Z published: 2026-09-17T09:22:39Z canonical: "guide.ncloud-docs.com/vpe-drm-content" 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. # DRM and content authentication Available in Classic and VPC This section describes how to apply a Secure Token to the playback source by modifying script code and how to configure MultiDRM. Caution This feature only works on physical devices. It does not work on simulators. Note This applies to both Android and iOS. ## Secure Token You can support OneTimeUrl by applying a Secure Token to the playback source using the token property. You can replace the Secure Token without interrupting video playback using the player.tokenChange property. For more information about Secure Token, see the Global Edge user guide. [Controlling Global Edge content authentication](/docs/en/globaledge-signedurl) ``` const playerRef = useRef(null); return ( ) //Token update playerRef.current.tokenChange('token=st=1675320871~exp=1675320901~acl=....') // Replace with a new token during playback ``` ## MultiDRM You can configure MultiDRM with the playlist.drm property. The example is as follows: Caution This example uses Doverunner (PallyCon) DRM. ## FairPlay ``` const playerRef = useRef(null); return ( { const res = await fetch('https://license-global.pallycon.com/ri/licenseManager.do', { method: 'POST', headers: { 'pallycon-customdata-v2':'{Token for FairPlay}' }, body: spc, }); const ckcBase64 = await res.text(); return ckcBase64; }, }, ] }} ... /> ) ``` ## Widevine ``` const playerRef = useRef(null); return ( { const res = await fetch('https://license-global.pallycon.com/ri/licenseManager.do', { method: 'POST', headers: { 'Content-type': 'application/x-www-form-urlencoded', 'pallycon-customdata-v2':'{Token for Widevine}' }, body: spc, }); const ckcBase64 = await res.text(); return ckcBase64; }, }, ] }} ... /> ) ``` ## One Click Multi DRM You can apply DRM by integrating the Video Player Enhancement service with the One Click Multi DRM service. Please check the Endpoint and Request headers to request FPS Certificate and licensing. [FPS certificate request (Apple FairPlay only)](/docs/en/vpe-example-auth#FPSCertificate%EC%9A%94%EC%B2%ADAppleFairPlay%EC%A0%84%EC%9A%A9) [Licensing request (common to FairPlay, Widevine, and PlayReady)](/docs/en/vpe-example-auth#%EB%9D%BC%EC%9D%B4%EC%84%A0%EC%8A%A4%EB%B0%9C%EA%B8%89%EC%9A%94%EC%B2%ADFairPlayWidevinePlayReady%EA%B3%B5%EC%9A%A9) ## FairPlay ``` const playerRef = useRef(null); return ( { const res = await fetch('{License URL}', { method: 'POST', headers: { "x-ncp-region_code": "KR", "x-ncp-iam-access-key": accessKey, "x-ncp-apigw-timestamp": timestamp, "x-ncp-apigw-signature-v2": signature, "x-drm-token": "{One Click Multi DRM FPS TOKEN}" }, body: spc, }); const ckcBase64 = await res.text(); return ckcBase64; }, }, ] }} ... /> ) ``` ## Widevine ``` const playerRef = useRef(null); return ( { const res = await fetch('{License URL}', { method: 'POST', headers: { "x-ncp-region_code": "KR", "x-ncp-iam-access-key": accessKey, "x-ncp-apigw-timestamp": timestamp, "x-ncp-apigw-signature-v2": signature, "x-drm-token": "{One Click Multi DRM FPS TOKEN}" }, body: spc, }); const ckcBase64 = await res.text(); return ckcBase64; }, }, ] }} ... /> ) ```