라이선스 클라이언트 연동

Prev Next

Classic/VPC 환경에서 이용 가능합니다.

DRM 라이선스를 클라이언트(플레이어)에 연동하는 예시를 설명합니다.

참고
  • DRM 타입에 따라 라이선스 발급 요청 정보가 달라집니다. DRM 타입별 라이선스 발급 가이드를 참조해 주십시오.
  • 모든 라이선스 요청은 DRM 콘텐츠를 재생할 단말 기기 정보와 플레이어 구현을 통해 요청해야 합니다.
  • One Click Multi DRM 서비스는 네이버클라우드의 Video Player Enhancement 서비스와 손쉬운 연동을 지원합니다. 자세한 내용은 VPE 콘텐츠 인증을 참조해 주십시오.

요청

요청 형식을 설명합니다.

요청 헤더

One Click Multi DRM API에서 공통으로 사용하는 헤더에 대한 정보는 One Click Multi DRM 요청 헤더를 참조해 주십시오.

X-DRM-TOKEN 헤더 생성

One Click Multi DRM 서비스에서 API로 라이선스를 발급하려면 X-DRM-TOKEN 헤더가 필요합니다. 이 헤더는 요청 사용자의 권한을 검증하고, 선택한 사이트의 보안 정책을 기반으로 DRM 라이선스를 발급하는 데 사용됩니다. 헤더 값이 유효하지 않으면 라이선스가 발급되지 않습니다. X-DRM-TOKEN 헤더를 생성하는 방법은 다음과 같습니다.

  1. siteId, contentId, drmType, responseFormat, userId에 대한 JSON 데이터를 입력해 주십시오.
    필드 타입 필수 여부 설명
    siteId String Required 라이선스 발행을 위한 사이트 아이디
    contentId String Required 재생하려는 콘텐츠의 고유 식별자
    • 영문자, 숫자, 특수 문자 '-', '_'를 허용하며, 3~100자 이내로 입력
    • Live/VOD Station 서비스에서 채널에 설정한 Multi DRM Content ID 값 입력
    drmType String Required 라이선스를 요청하는 DRM 타입
    • WIDEVINE | PLAYREADY | FAIRPLAY
    responseFormat String Required 응답 데이터의 형식
    • ORIGINAL (기본값) | JSON
      • ORIGINAL: 요청한 바이너리 데이터로 응답. 일반적인 멀티 DRM 연동 클라이언트(HTML5, Video.js, Shaka)의 지원 형식
      • JSON: 라이선스 데이터와 추가 정보(클라이언트 기기 아이디 등)를 포함한 JSON으로 응답. 토큰 프록시 또는 클라이언트 SDK를 사용하는 경우에만 적용 가능
    userId String Required 콘텐츠를 재생하려는 사용자의 고유 아이디
    • 서비스 사이트에서 관리하는 사용자 아이디 또는 DRM 콘텐츠를 재생할 사용자 계정
    • 입력 예시
      {"siteId":"{사이트 아이디}","contentId":"{콘텐츠 아이디}","drmType":"{DRM 타입}","responseFormat":"{응답 형식}","userId":"{사용자 고유 ID}"}
      
  2. JSON 데이터를 Base64 문자열로 변환해 주십시오.
    • 변환 예시
      eyJzaXRlSWQiOiJkcm0tMjAyMzExMTUxNDIzMjYtbkh5TnciLCJjb250ZW50SW...dXNlcklkIjoiZDQxZDhjZDk4ZjAwYjIwNGU5ODAwOTk4ZWNmODQyN2UifQ==
      
참고

JSON 데이터 입력 시 불필요한 공백이나 개행이 포함되지 않도록 주의해 주십시오.

요청 예시

요청 예시는 다음과 같습니다.

//Widevine 라이선스 요청 예시
'com.widevine.alpha': {
    src: 'https://uz1urqjj2471.beta-edge.naverncp.com/live/video/ls-20231031105925-*****/live.mpd', //DRM 암호화가 적용된 콘텐츠 재생 경로
    licenseUri: 'https://multi-drm.apigw.ntruss.com/api/v1/license', //DRM 라이선스 발급 요청 경로
    licenseRequestHeader: {
        'X-NCP-REGION_CODE': 'KR',
        'X-ncp-apigw-timestamp': 1698832564997,
        'X-ncp-iam-access-key': 'ft1GKEpjSc**********',
        'x-ncp-apigw-signature-v2': 'Z0LjTbqFjWtxlRskM8vDj**********************=',
        'X-DRM-TOKEN': 'eyJyZXNwb25zZUZvcm1hdCI6Im9yaWdpbmFsIiwic2l0ZUlkIjoiZHJtLTIwMjMxMTAxMDgyMzE2LWRKREdhIiwiY29udGVudElkIj**************************************************'
    }   //One Click Multi DRM 서비스 활용을 위한 apigw 필수 인증 및 X-DRM-TOKEN 헤더 값
},

//PlayReady 라이선스 요청 예시
'com.microsoft.playready': {
    src: 'https://uz1urqjj2471.beta-edge.naverncp.com/live/video/ls-20231031105925-*****/live.mpd',  //DRM 암호화가 적용된 콘텐츠 재생 경로
    licenseUri: 'https://multi-drm.apigw.ntruss.com/api/v1/license',   //DRM 라이선스 발급 요청 경로
    licenseRequestHeader: {
        'X-NCP-REGION_CODE': 'KR',
        'X-ncp-apigw-timestamp': 1698832564997,
        'X-ncp-iam-access-key': 'ft1GKEpjSc**********',
        'x-ncp-apigw-signature-v2': 'Z0LjTbqFjWtxlRskM8vDj**********************=',
        'X-DRM-TOKEN': 'eyJyZXNwb25zZUZvcm1hdCI6Im9yaWdpbmFsIiwic2l0ZUlkIjoiZHJtLTIwMjMxMTAxMDgyMzE2LWRKREdhIiwiY29udGVudElkIj**************************************************'
    }   //One Click Multi DRM 서비스 활용을 위한 apigw 필수 인증 및 X-DRM-TOKEN 헤더 값
},

//FairPlay Streaming 라이선스 요청 예시
'com.apple.fps': {
    src: 'https://uz1urqjj2471.beta-edge.naverncp.com/live/video/ls-20231031105925-*****/playlist.m3u8', //DRM 암호화가 적용된 콘텐츠 재생 경로
    certificateUri: 'https://multi-drm.apigw.ntruss.com/api/v1/license/fairPlay',  //DRM 라이선스 발급을 위해 필요한 FPS 인증서 요청 경로
    certificateRequestHeader: {
        'X-NCP-REGION_CODE': 'KR',
        'X-ncp-apigw-timestamp': 1698832564997,
        'X-ncp-iam-access-key': 'ft1GKEpjSc**********',
        'x-ncp-apigw-signature-v2': 'Z0LjTbqFjWtxlRskM8vDj**********************=',
        'X-DRM-TOKEN': 'eyJyZXNwb25zZUZvcm1hdCI6Im9yaWdpbmFsIiwic2l0ZUlkIjoiZHJtLTIwMjMxMTAxMDgyMzE2LWRKREdhIiwiY29udGVudElkIj**************************************************' 
    }, //One Click Multi DRM 서비스 활용을 위한 apigw 필수 인증 및 X-DRM-TOKEN 헤더 값
    licenseUri: 'https://multi-drm.apigw.ntruss.com/api/v1/license', //DRM 라이선스 발급 요청 경로
    licenseRequestHeader: {
        'X-NCP-REGION_CODE': 'KR',
        'X-ncp-apigw-timestamp': 1698832564997,
        'X-ncp-iam-access-key': 'ft1GKEpjSc**********',
        'x-ncp-apigw-signature-v2': 'Z0LjTbqFjWtxlRskM8vDj**********************=',
        'X-DRM-TOKEN': 'eyJyZXNwb25zZUZvcm1hdCI6Im9yaWdpbmFsIiwic2l0ZUlkIjoiZHJtLTIwMjMxMTAxMDgyMzE2LWRKREdhIiwiY29udGVudElkIj**************************************************'  
    } //One Click Multi DRM 서비스 활용을 위한 apigw 필수 인증 및 X-DRM-TOKEN 헤더 값
}

응답

응답 형식을 설명합니다.

응답 상태 코드

One Click Multi DRM API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 One Click Multi DRM 응답 상태 코드를 참조해 주십시오.

응답 예시

응답 성공 시 200 OK와 함께 DRM 라이선스가 클라이언트(플레이어)에 연동됩니다.