콘텐츠 인증
    • PDF

    콘텐츠 인증

    • PDF

    Article Summary

    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 방식으로 암호화합니다.
      • 지원 현황
        브라우저WidevinePlayReadyFairPlay
        인터넷 익스플로러(11+ on Windows 8.1+)XO
        (MPEG-DASH)
        X
        마이크로소프트 엣지(Windows 10+)XO
        (MPEG-DASH)
        X
        크롬(35+ on Windows 7.0+, 57+ on Android 4.4+)O
        (MPEG-DASH)
        XX
        파이어폭스(47+ on Windows 7.0+)O
        MPEG=DASH
        XX
        사파리(8+ on Mac OS 10.10+, 11.2+ on iOS 11.2+)XXO
        (HLS)
    • 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_CODEO이용 중인 서비스 리전 코드
      • 한국: KR
      • 싱가포르: SGN
      • 미국: USWN
      • 일본: JPN
      • 홍콩: HK
      • 독일: DEN
      X-NCP-IAM-ACCESS-KEYO포털 또는 Sub Account에서 발급받은 Access Key ID
      X-NCP-APIGW-TIMESTAMPO1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 나타내며, API Gateway 서버와 시간 차가 5분 이상 나는 경우에는 유효하지 않은 요청으로 간주
      X-NCP-APIGW-SIGNATURE-V2OAccess Key ID 값과 Secret Key로 암호화한 서명으로, HMAC 암호화 알고리즘은 HmacSHA256 사용

    라이선스 발급 요청(FairPlay, Widevine, PlayReady 공용)

    라이선스 발급을 요청하기 위한 엔드포인트 및 요청 헤더는 다음과 같습니다.

    • Endpoint
      POST https://multi-drm.apigw.ntruss.com/api/v1/license
      
    • 요청 헤더
      항목필수 여부설명
      X-DRM-TOKENOOne Click Multi DRM 라이선스 발급에 필수 데이터가 포함된 암호화된 토큰값
      X-NCP-REGION_CODEO이용 중인 서비스 리전 코드
      • 한국: KR
      • 싱가포르: SGN
      • 미국: USWN
      • 일본: JPN
      • 홍콩: HK
      • 독일: DEN
      X-NCP-IAM-ACCESS-KEYO포털 또는 Sub Account에서 발급받은 Access Key ID
      X-NCP-APIGW-TIMESTAMPO1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 나타내며, API Gateway 서버와 시간 차가 5분 이상 나는 경우에는 유효하지 않은 요청으로 간주
      X-NCP-APIGW-SIGNATURE-V2OAccess 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',
                }
            ],
        });
    });
    

    이 문서가 도움이 되었습니까?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.