One Click Multi DRM 라이선스 발급에 필요한 Policy 목록을 조회하는 API입니다.
요청
GET https://multi-drm.apigw.gov-ntruss.com/api/v1/policy?pageNo={pageNo}&pageSizeNo={pageSizeNo}
요청 파라미터
| 파라미터명 | 필수 여부 | 타입 | 제약 사항 | 설명 | 
|---|---|---|---|---|
| pageNo | No | Integer | 제약 없음 | 조회 할 페이지 인덱스 | 
| pageSizeNo | No | Integer | 1~100 | 목록 조회 시 포함될 Policy 수  예시) 생성된 Policy 가 60개일 때, pageSizeNo 30 이라면 페이지당 30개씩 Policy 목록 조회  | 
요청 헤더
| 헤더명 | 필수 여부 | 설명 | 
|---|---|---|
| x-ncp-apigw-timestamp | YES | 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 나타냄 API Gateway 서버와 시간 차가 5분 이상 나는 경우 유효하지 않은 요청으로 간주 x-ncp-apigw-timestamp:{Timestamp} | 
| x-ncp-iam-access-key | YES | 네이버 클라우드 플랫폼 포털에서 발급받은 Access Key ID 값x-ncp-iam-access-key:{Sub Account Access Key} | 
| x-ncp-apigw-signature-v2 | YES | Access Key ID 값과 Secret Key로 암호화한 서명x-ncp-apigw-signature-v2:{API Gateway Signature} | 
| Content-Type | YES | Request body content type을 application/json으로 지정Content-Type: application/json | 
| x-ncp-region_code | YES | 리전 코드 (KR) | 
응답
| 필드명 | 타입 | 필수 여부 | 제약 | 설명 | 
|---|---|---|---|---|
| policyName | String | Y | ||
| policyStatus | String | Y | CREATING  READY DELETED UPDATING  | 
Policy 상태 | 
| policyId | Integer | Y | default Policy : 0 | 생성된 PolicyId | 
| policyCreatedTime | Timestamp | N | Policy 생성 시각 | |
| policyUpdateTime | Timestamp | N | Policy 설정 변경 시각 | |
| persistent | Boolean | Y | 기본값 : false | 오프라인용 라이선스 저장 여부 true : 라이선스 유지, false : 재생 후 라이선스 제거(스트리밍)  | 
| rentalDuration | Integer | Y | 기본값 : 0  0-2,147,483,647  | 
오프라인 렌탈 시나리오 사용 시 설정 (해당 옵션 사용시 persistent : true 설정 필요) 다운로드 후 최초 재생 시작 시점까지 라이선스 유효 기간 (단위: 초)  | 
| playbackDuration | Integer | Y | 기본값: 0  0-2,147,483,647  | 
최초 재생 시작 시점 이후부터의 라이선스 유효 기간 (단위: 초) | 
| drmPolicyConfig | Object[Array] | Y | drm type 별 policy 상세 설정 | |
| drmPolicyConfig{}.wideVine | Object | N | Widevine 의 policy | |
| drmPolicyConfig{}.wideVine{}.useYn | Boolean | N | Widevine 의 policy 설정 적용 유무 | |
| drmPolicyConfig{}.wideVine{}.securityLevel | Integer | N | 1:SW_SECURE_CRYPTO  2:SW_SECURE_DECODE 3:HW_SECURE_CRYPTO 4:HW_SECURE_DECODE 5:HW_SECURE_ALL  | 
해당 트랙에 대한 Widevine security level 설정  1:SW_SECURE_CRYPTO 2:SW_SECURE_DECODE 3:HW_SECURE_CRYPTO 4:HW_SECURE_DECODE 5:HW_SECURE_ALL - 5로 설정하면 Widevine L1 기기에서만 재생 가능  | 
| drmPolicyConfig{}.wideVine{}.hdcp | String | N | HDCP_NONE HDCP_V1 HDCP_V2 HDCP_V2_1 HDCP_V2_2 HDCP_NO_DIGITAL_OUTPUT  | 
디지털 출력에 대한 보안(HDCP) 레벨 설정 입력값: “HDCP_NONE”, “HDCP_V1”, “HDCP_V2”, “HDCP_V2_1”, “HDCP_V2_2”, “HDCP_NO_DIGITAL_OUTPUT” 중 하나 | 
| drmPolicyConfig{}.wideVine{}.cgms | String | N | CGMS_NONE COPY_FREE COPY_ONCE COPY_NEVER  | 
아날로그 출력에 대한 보안(CGMS-A) 레벨 설정- 입력값: “CGMS_NONE”, “COPY_FREE”, “COPY_ONCE”, “COPY_NEVER” 중 하나 | 
| drmPolicyConfig{}.wideVine{}.disableAnalogOutputYn | Boolean | N | 아날로그 출력 허용 여부 (false: 아날로그 출력 허용) | |
| drmPolicyConfig{}.wideVine{}.hdcpSrmRule | String | N | HDCP_SRM_RULE_NONE CURRENT_SRM  | 
HDCP 기기가 SRM(System Renewability Message)을 처리하지 못하는 경우에 해당 트랙의 재생 여부 설정.  CURRENT_SRM: 최신 SRM 적용 안되는 기기에서는 해당 트랙 재생 안됨입력값: “HDCP_SRM_RULE_NONE”, “CURRENT_SRM” 중 하나  | 
| drmPolicyConfig{}.wideVine{}.deviceRevocation | Boolean | N | Revoke(Widevine 지원 대상에서 철회)된 안드로이드 기기에 대한 라이선스 발급 허용 여부 (기본값: 발급 허용하지 않음) | |
| drmConfig{}.playReady | Object | N | PlayReady 의 policy | |
| drmConfig{}.playReady{}.useYn | Boolean | N | PlayReady 의 policy 설정 적용 유무 | |
| drmConfig{}.playReady{}.securityLevel | Integer | N | 150 2000 3000  | 
해당 트랙에 대한 PlayReady security level  150, 2000, 3000 하드웨어 DRM 적용 시 3000으로 설정.  | 
| drmConfig{}.playReady{}.digitalVideoProtectionLevel | Integer | N | 100 250 270 300 301  | 
디지털 비디오 출력에 대한 보안 레벨 설정 (100, 250, 270, 300, 301) | 
| drmConfig{}.playReady{}.analogVideoProtectionLevel | Integer | N | 100 150 200 201  | 
아날로그 비디오 출력에 대한 보안 레벨 설정 (100, 150, 200, 201) | 
| drmConfig{}.playReady{}.digitalAudioProtectionLevel | Integer | N | 100 250 300 301  | 
디지털 오디오 출력에 대한 보안 레벨 설정 (100, 250, 300, 301) | 
| drmConfig{}.playReady{}.hdcpUseYn | Boolean | N | OPL 설정에 따라 HDCP가 적용될 때, Type 1(HDCP V2.2 이상)이 요구되는지 여부를 설정  (true 설정 시 HDCP 2.2 이상 필요)  | 
|
| drmConfig{}.fairPlay | Object | N | FairPlay Streaming 의 policy | |
| drmConfig{}.fairPlay{}.useYn | Boolean | Y | FairPlay Streaming 의 policy 설정 적용 유무 | |
| drmConfig{}.fairPlay{}.hdcpEnforcement | String | N | -1 (HDCP 미적용)  0 (HDCP Type 0(버전 무관)) 1 (HDCP Type 1(2.2 이상 필요))  | 
해당 트랙에 대한 HDCP 적용 여부 및 HDCP 버전  -1: HDCP 미적용 0: HDCP Type 0(버전 무관) 1: HDCP Type 1(2.2 이상 필요)  | 
| drmConfig{}.fairPlay{}.allowAirPlay | Boolean | N | AirPlay 허용 여부 | |
| drmConfig{}.fairPlay{}.allowAvAdaptor | Boolean | N | 디지털 AV 어댑터를 통한 출력 허용 여부 | 
예시
응답 예시
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 20 Nov 2023 19:53:32 GMT
Content-Type: application/json;charset=utf-8
Connection: keep-alive
Access-Control-Allow-Origin: *
x-ncp-trace-id: 36c9k60om4p3238cpmc9gm4cj4
{
  "success": true,
  "content": {
    "policyId": 123,
    "policyName": "mySamplePolicy",
    "policyStatus": "READY",
    "policyCreatedTime": 1700480181622,
    "policyUpdateTime": 1700480181634,
    "persistent": true,
    "rentalDuration": 0,
    "playbackDuration": 0,
    "drmPolicyConfig": {
      "wideVine": {
        "useYn": true,
        "securityLevel": 1,
        "hdcp": "HDCP_NONE",
        "cgms": "CGMS_NONE",
        "disableAnalogOutputYn": true,
        "hdcpSrmRule": "HDCP_SRM_RULE_NONE",
        "deviceRevocation": true
      },
      "playReady": {
        "useYn": true,
        "securityLevel": 150,
        "digitalVideoProtectionLevel": 100,
        "analogVideoProtectionLevel": 100,
        "digitalAudioProtectionLevel": 100,
        "hdcpUseYn": true
      },
      "fairPlay": {
        "useYn": false
      }
    }
  },
    {
      "policyId": 30,
      "policyName": "policy_1",
      "policyStatus": "CREATED",
      "policyCreatedTime": 1698908460802,
      "policyUpdateTime": 1700481601001,
      "persistent": false,
      "rentalDuration": 0,
      "playbackDuration": 0,
      "drmPolicyConfig": {
        "wideVine": {
          "useYn": true,
          "securityLevel": 2,
          "hdcp": "HDCP_V1",
          "cgms": "COPY_FREE",
          "disableAnalogOutputYn": false,
          "hdcpSrmRule": "CURRENT_SRM",
          "deviceRevocation": false
        },
        "playReady": {
          "useYn": true,
          "securityLevel": 2000,
          "digitalVideoProtectionLevel": 250,
          "analogVideoProtectionLevel": 150,
          "digitalAudioProtectionLevel": 250,
          "hdcpUseYn": false
        },
        "fairPlay": {
          "useYn": true,
          "hdcpEnforcement": 0,
          "allowAirPlay": false,
          "allowAvAdaptor": false
        }
      }
    }
    .....
}