- 인쇄
- PDF
콘텐츠 인증
- 인쇄
- PDF
Classic/VPC 환경에서 이용 가능합니다.
콘텐츠 인증에서는 스크립트 코드를 수정하여 재생 소스에 Secure Token을 적용하는 방법과 MultiDRM을 설정하는 방법을 설명합니다.
Secure Token
token
속성으로 재생 소스에 Secure Token을 적용하여 OneTimeUrl을 지원할 수 있습니다. 또한, player.tokenChange
속성으로 동영상 재생 중 중단 없이 Secure Token을 교체할 수 있습니다.
Secure Token에 관한 자세한 내용은 CDN+ 사용 가이드를 참고해 주십시오.
예제는 다음과 같습니다.
// 동영상(MP4)
new ncplayer('video1', {
autostart: true,
playlist: [
{
file: 'https://CDN도메인/example_video_01.mp4',
},
],
token: 'token=st=1675320871~exp=1675320901~acl=....', // Secure Token
});
// 토큰 교체
player.tokenChange('token=st=1675320871~exp=1675320901~acl=....') // 재생 중 신규 토큰으로 교체
MultiDRM
playlist.drm
속성으로 MultiDRM을 설정할 수 있습니다. 예제는 다음과 같습니다.
let player;
document.addEventListener('DOMContentLoaded', async ()=> {
await ncplayerDRM('video1',{
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://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202207/ae73f3a32b49205fafdc3303c7f0c0b8.png',
description: {
title: "네이버클라우드",
create_at: "2022-12-31",
profile_name: "Naver Cloud Platform",
profile_image: "https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202207/ae73f3a32b49205fafdc3303c7f0c0b8.png
},
}
],
controlBtn: {
play: true,
fullscreen: true,
volume: true,
times: true,
pictureInPicture: true,
setting: true,
subtitle: true
},
autostart: false
});
});
- MultiDRM을 사용하려면 HLS, DASH 두 가지를 모두 지원하도록 VOD Station 서비스에서 두 개의 채널로 구성해야 합니다.
- MultiDRM은 SSL/TSL이 적용된 https 환경에서만 작동합니다.
- MultiDRM은 Widevine, PlayReady, FairPlay(FPS)를 지원합니다.
- Video Player Enhancement 서비스는 Pallycon MultiDRM을 공식 지원합니다.
- DRM 기능을 사용하려면 사전에 외부 DRM 공급사와 계약해야 합니다.
- DRM 유형
- Widevine: Google에서 제공하는 DRM 기술 규격으로, Common Encryption 규격에 따라 AES-128 방식으로 암호화합니다.
- PlayReady: Microsoft에서 제공하는 DRM 기술 규격으로, Common Encryption 규격에 따라 AES-128 방식으로 암호화합니다.
- FairPlay: Apple에서 제공하는 DRM 기술 규격으로, 각각의 HLS 세그먼트를 Sample-AES 방식으로 암호화합니다.
- 지원 현황
브라우저 Widevine PlayReady FairPlay Internet Explorer 11+ on Windows 8.1+) X O
(MPEG-DASH)X Microsoft Edge (Windows 10+) X O
(MPEG-DASH)X Chrome (35+ on Windows 7.0+, 57+ on Android 4.4+) O
(MPEG-DASH)X X Firefox (47+ on Windows 7.0+) O
MPEG=DASHX X Safari (8+ on Mac OS 10.10+, 11.2+ on iOS 11.2+) X X O
(HLS)
- DRM 유형
- Video Player Enhancement 서비스는 사용 중인 브라우저가 지원하는 DRM에 따라 상황에 맞는 재생 소스(HLS 또는 DASH)를 자동으로 선택합니다.
One Click Multi DRM
Video Player Enhancement 서비스와 One Click Multi DRM 서비스를 연동하여 DRM을 적용할 수 있습니다.
FPS Certificate 및 라이선스 발급을 요청하기 위한 Endpoint(엔드포인트) 및 요청 헤더를 확인해 주십시오.
- One Click Multi DRM 서비스와의 연동은 Video Player Enhancement 버전 1.1.1 이상부터 가능합니다.
- Apple FairPlay의 경우 FPS Certificate와 라이선스의 시그니처(X-NCP-APIGW-SIGNATURE-V2)를 각각 생성해야 합니다. 시그니처 생성에 관한 자세한 내용은 시그니처 생성 가이드를 참고해 주십시오.
FPS Certificate 요청(Apple FairPlay 전용)
FPS Certificate를 요청하기 위한 엔드포인트 및 요청 헤더는 다음과 같습니다.
- Endpoint
GET https://multi-drm.apigw.ntruss.com/api/v1/license/fairplay
- 요청 헤더
항목 필수 여부 설명 X-NCP-REGION_CODE O 이용 중인 서비스 리전 코드 - 한국: KR
- 싱가포르: SGN
- 미국: USWN
- 일본: JPN
- 홍콩: HK
- 독일: DEN
X-NCP-IAM-ACCESS-KEY O 포털 또는 Sub Account에서 발급받은 Access Key ID X-NCP-APIGW-TIMESTAMP O 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 나타내며, API Gateway 서버와 시간 차가 5분 이상 나는 경우에는 유효하지 않은 요청으로 간주 X-NCP-APIGW-SIGNATURE-V2 O Access Key ID 값과 Secret Key로 암호화한 서명으로, HMAC 암호화 알고리즘은 HmacSHA256 사용
라이선스 발급 요청(FairPlay, Widevine, PlayReady 공용)
라이선스 발급을 요청하기 위한 엔드포인트 및 요청 헤더는 다음과 같습니다.
- Endpoint
POST https://multi-drm.apigw.ntruss.com/api/v1/license
- 요청 헤더
항목 필수 여부 설명 X-DRM-TOKEN O One Click Multi DRM 라이선스 발급에 필수 데이터가 포함된 암호화된 토큰값 X-NCP-REGION_CODE O 이용 중인 서비스 리전 코드 - 한국: KR
- 싱가포르: SGN
- 미국: USWN
- 일본: JPN
- 홍콩: HK
- 독일: DEN
X-NCP-IAM-ACCESS-KEY O 포털 또는 Sub Account에서 발급받은 Access Key ID X-NCP-APIGW-TIMESTAMP O 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 나타내며, API Gateway 서버와 시간 차가 5분 이상 나는 경우에는 유효하지 않은 요청으로 간주 X-NCP-APIGW-SIGNATURE-V2 O Access Key ID 값과 Secret Key로 암호화한 서명으로, HMAC 암호화 알고리즘은 HmacSHA256 사용
예제
One Click Multi DRM 적용을 위한 Apple FairPlay 및 Widevine/PlayReady 예제는 다음과 같습니다.
- Apple FairPlay
document.addEventListener('DOMContentLoaded', async ()=> { await ncplayerDRM('myElement',{ playlist: [ { drm:{ 'com.apple.fps':{ certificateUri: '{FPS Certificate Endpoint}', certificateRequestHeader:{ 'X-NCP-REGION_CODE': 'KR', 'X-NCP-IAM-ACCESS-KEY': accessKey, 'X-NCP-APIGW-TIMESTAMP': timestamp, 'X-NCP-APIGW-SIGNATURE-V2': signature, }, licenseUri : '{License Endpoint}', licenseRequestHeader:{ 'X-DRM-TOKEN': '{One Click Multi DRM FPS TOKEN}', 'X-NCP-REGION_CODE': 'KR', 'X-NCP-IAM-ACCESS-KEY': accessKey, 'X-NCP-APIGW-TIMESTAMP': timestamp2, 'X-NCP-APIGW-SIGNATURE-V2': signature2, }, src : 'http://example.com/index.m3u8' } }, poster: 'http://example.com/myVideoThumb.png', } ], autostart: true }); });
- Widevine/PlayReady
document.addEventListener('DOMContentLoaded', async ()=> { await ncplayerDRM('myElement',{ playlist: [ { drm:{ 'com.widevine.alpha':{ licenseUri : '{License Endpoint}', licenseRequestHeader:{ 'X-DRM-TOKEN': '{One Click Multi DRM WIDEVINE TOKEN}', 'X-NCP-REGION_CODE': 'KR', 'X-NCP-IAM-ACCESS-KEY': accessKey, 'X-NCP-APIGW-TIMESTAMP': timestamp2, 'X-NCP-APIGW-SIGNATURE-V2': signature2, }, src : 'http://example.com/index.mpd' }, 'com.microsoft.playready':{ licenseUri : '{License Endpoint}', licenseRequestHeader:{ 'X-DRM-TOKEN': '{One Click Multi DRM PLAYREADY TOKEN}', 'X-NCP-REGION_CODE': 'KR', 'X-NCP-IAM-ACCESS-KEY': accessKey, 'X-NCP-APIGW-TIMESTAMP': timestamp2, 'X-NCP-APIGW-SIGNATURE-V2': signature2, }, src : 'http://example.com/index.mpd' }, poster: 'http://example.com/myVideoThumb.png', } } ], autostart: true }); });
DRM 테스트
스크립트 코드를 작성하여 DRM 테스트를 진행할 수 있습니다.
DRM 테스트를 진행하려면 기본 플레이어 실행 스크립트(ncplayer()
)가 아닌 별도의 실행 스크립트(ncplayerDRM()
)를 이용해야 합니다.
// DRM 전용 스크립트 코드를 이용합니다.
// DOM이 완전히 로드되고 실행해야 DRM이 에러 없이 실행됩니다.
document.addEventListener('DOMContentLoaded', async ()=> {
await ncplayerDRM('video1',{});
})
Widevine/PlayReady
Widevine 또는 PlayReady 유형의 DRM을 테스트하는 스크립트는 다음과 같습니다.
- Widevine 또는 PlayReady DRM 테스트를 위해 다음 정보가 필요합니다.
- DASH 재생 소스의 URL
- DRM 토큰 값
- Widevine은 Chrome 브라우저, PlayReady는 Windows OS Edge 브라우저에서 테스트할 수 있습니다.
document.addEventListener('DOMContentLoaded', async ()=> {
await ncplayerDRM('video1',{
playlist: [
{
drm:{
'com.widevine.alpha':{
licenseUri : 'https://license-global.pallycon.com/ri/licenseManager.do',
licenseRequestHeader:{
'pallycon-customdata-v2':'{Token}'
},
src : '{dash url}'
},
'com.microsoft.playready':{
licenseUri : 'https://license-global.pallycon.com/ri/licenseManager.do',
licenseRequestHeader:{
'pallycon-customdata-v2':'{Token}'
},
src : '{dash url}'
},
},
poster: 'https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202207/ae73f3a32b49205fafdc3303c7f0c0b8.png',
}
],
});
});
FairPlay(FPS)
FairPlay 유형의 DRM을 테스트하는 스크립트는 다음과 같습니다.
- FairPlay DRM 테스트를 위해 다음 정보가 필요합니다.
- HLS 재생 소스의 URL
- Certificate URL(인증 URL)
- DRM 토큰 값
- Mac OS Safari 브라우저에서 테스트할 수 있습니다.
document.addEventListener('DOMContentLoaded', async ()=> {
await ncplayerDRM('video1',{
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':'{Token}'
},
src : '{hls url}'
},
},
poster: 'https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202207/ae73f3a32b49205fafdc3303c7f0c0b8.png',
}
],
});
});