Edit policy

Prev Next

An API that edits the settings of the policy required to issue the One Click Multi DRM license.

Note

The following are the precautions for editing policies:

  • If you edit the policy during its use with the site activated, the license issuance playback may be affected.
  • If possible, we recommend you edit the policy after turning the site off.

Requests

PUT https://multi-drm.apigw.ntruss.com/api/v1/{policyId}

Request headers

Header name Requirement status Description
x-ncp-apigw-timestamp YES This is the number of milliseconds that have elapsed since January 1, 1970 00:00:00 (UTC)
If the time difference compared to the API Gateway server is 5 minutes or longer, then the request is considered invalid
x-ncp-apigw-timestamp:{Timestamp}
x-ncp-iam-access-key YES Value of access key ID issued in the NAVER Cloud Platform portal
x-ncp-iam-access-key:{Sub Account Access Key}
x-ncp-apigw-signature-v2 YES Signature encrypted with the access key ID value and secret key
x-ncp-apigw-signature-v2:{API Gateway Signature}
Content-Type YES Specifies the request body content type as application/json
Content-Type: application/json
x-ncp-region_code YES Region code (KR)

Request body

Field name Type Requirement status Restriction Description
policyName String Y
persistent Boolean Y Default: false Offline license storage status
true: maintain license, false: remove license after playback (streaming)
rentalDuration Integer Y Default: 0
0-2,147,483,647
Settings for using offline rental scenario
("persistent: true" must be set when using the option)
Valid period of the license from the download to the first playback time (unit: second(s))
playbackDuration Integer Y Default value: 0
0-2,147,483,647
Valid period of the license after the first playback (unit: second(s))
drmPolicyConfig Object[Array] Y Detailed policy setting by drm type
drmPolicyConfig{}.wideVine Object N Widevine's policy
drmPolicyConfig{}.wideVine{}.useYn Boolean N Whether to apply Widevine's policy settings
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 setting for the track
1:SW_SECURE_CRYPTO
2:SW_SECURE_DECODE
3:HW_SECURE_CRYPTO
4:HW_SECURE_DECODE
If set to 5:HW_SECURE_ALL - 5, playback is only available on Widevine L1 device
drmPolicyConfig{}.wideVine{}.hdcp String N HDCP_NONE
HDCP_V1
HDCP_V2
HDCP_V2_1
HDCP_V2_2
HDCP_NO_DIGITAL_OUTPUT
Digital output security (HDCP) level setting input value: 1 of "HDCP_NONE," "HDCP_V1," "HDCP_V2," "HDCP_V2_1," "HDCP_V2_2," and "HDCP_NO_DIGITAL_OUTPUT"
drmPolicyConfig{}.wideVine{}.cgms String N CGMS_NONE
COPY_FREE
COPY_ONCE
COPY_NEVER
Analog output security (CGMS-A) level setting - input value: 1 of "CGMS_NONE," "COPY_FREE," "COPY_ONCE," and "COPY_NEVER,"
drmPolicyConfig{}.wideVine{}.disableAnalogOutputYn Boolean N Whether analog output is allowed (false: analog output allowed)
drmPolicyConfig{}.wideVine{}.hdcpSrmRule String N HDCP_SRM_RULE_NONE
CURRENT_SRM
If the HDCP device cannot process the system renewability message (SRM), sets the track's playback status.
CURRENT_SRM: Playback of the track not available on devices where the latest SRM cannot be applied. Input value: 1 of "HDCP_SRM_RULE_NONE" and "CURRENT_SRM"
drmPolicyConfig{}.wideVine{}.deviceRevocation Boolean N Whether license issuance is allowed for revoked Android devices (withdrawn from Widevine's support targets) (default value: issuance not allowed)
drmConfig{}.playReady Object N PlayReady's policy
drmConfig{}.playReady{}.useYn Boolean N Whether to apply PlayReady's policy settings
drmConfig{}.playReady{}.securityLevel Integer N 150
2000
3000
PlayReady security level for the track (150, 2000, 3000). When hardware DRM is applied, set to 3000.
drmConfig{}.playReady{}.digitalVideoProtectionLevel Integer N 100
250
270
300
301
Security level setting for digital video output (100, 250, 270, 300, 301)
drmConfig{}.playReady{}.analogVideoProtectionLevel Integer N 100
150
200
201
Security level setting for analog video output (100, 150, 200, 201)
drmConfig{}.playReady{}.digitalAudioProtectionLevel Integer N 100
250
300
301
Security level setting for digital audio output (100, 250, 300, 301)
drmConfig{}.playReady{}.hdcpUseYn Boolean N Sets whether type 1 (HDCP V2.2 and above) is required when HDCP is applied according to OPL settings. (when set to "true," HDCP 2.2 or above is required)
drmConfig{}.fairPlay Object N FairPlay Streaming's policy
drmConfig{}.fairPlay{}.useYn Boolean Y Whether to apply FairPlay Streaming's policy settings
drmConfig{}.fairPlay{}.hdcpEnforcement String N -1 (HDCP not applied)
0 (HDCP Type 0 (regardless of version))
1 (HDCP Type 1 (2.2 or above required))
HDCP application status and HDCP version for the track
-1: HDCP not applied
0: HDCP Type 0 (regardless of version)
1: HDCP Type 1 (2.2 or above required)
drmConfig{}.fairPlay{}.allowAirPlay Boolean N Whether to allow AirPlay
drmConfig{}.fairPlay{}.allowAvAdaptor Boolean N Whether to allow output through digital AV adapter

Response

Field name Type Requirement status Restriction Description
policyName String Y
policyStatus String Y CREATING
READY
DELETED
UPDATING
Policy status
policyId Integer Y default Policy : 0 Created PolicyId
policyCreatedTime Timestamp N Policy created time
policyUpdateTime Timestamp N Policy setting change time
persistent Boolean Y Default: false Offline license storage status
true: maintain license, false: remove license after playback (streaming)
rentalDuration Integer Y Default: 0
0-2,147,483,647
Settings for using offline rental scenario
("persistent: true" must be set when using the option)
Valid period of the license from the download to the first playback time (unit: second(s))
playbackDuration Integer Y Default value: 0
0-2,147,483,647
Valid period of the license after the first playback (unit: second(s))
drmPolicyConfig Object[Array] Y Detailed policy setting by drm type
drmPolicyConfig{}.wideVine Object N Widevine's policy
drmPolicyConfig{}.wideVine{}.useYn Boolean N Whether to apply Widevine's policy settings
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 setting for the track
1:SW_SECURE_CRYPTO
2:SW_SECURE_DECODE
3:HW_SECURE_CRYPTO
4:HW_SECURE_DECODE
If set to 5:HW_SECURE_ALL - 5, playback is only available on Widevine L1 device
drmPolicyConfig{}.wideVine{}.hdcp String N HDCP_NONE
HDCP_V1
HDCP_V2
HDCP_V2_1
HDCP_V2_2
HDCP_NO_DIGITAL_OUTPUT
Digital output security (HDCP) level setting input value: 1 of "HDCP_NONE," "HDCP_V1," "HDCP_V2," "HDCP_V2_1," "HDCP_V2_2," and "HDCP_NO_DIGITAL_OUTPUT"
drmPolicyConfig{}.wideVine{}.cgms String N CGMS_NONE
COPY_FREE
COPY_ONCE
COPY_NEVER
Analog output security (CGMS-A) level setting - input value: 1 of "CGMS_NONE," "COPY_FREE," "COPY_ONCE," and "COPY_NEVER,"
drmPolicyConfig{}.wideVine{}.disableAnalogOutputYn Boolean N Whether analog output is allowed (false: analog output allowed)
drmPolicyConfig{}.wideVine{}.hdcpSrmRule String N HDCP_SRM_RULE_NONE
CURRENT_SRM
If the HDCP device cannot process the system renewability message (SRM), sets the track's playback status.
CURRENT_SRM: Playback of the track not available on devices where the latest SRM cannot be applied. Input value: 1 of "HDCP_SRM_RULE_NONE" and "CURRENT_SRM"
drmPolicyConfig{}.wideVine{}.deviceRevocation Boolean N Whether license issuance is allowed for revoked Android devices (withdrawn from Widevine's support targets) (default value: issuance not allowed)
drmConfig{}.playReady Object N PlayReady's policy
drmConfig{}.playReady{}.useYn Boolean N Whether to apply PlayReady's policy settings
drmConfig{}.playReady{}.securityLevel Integer N 150
2000
3000
PlayReady security level for the track
150, 2000, 3000
When hardware DRM is applied, set to 3000.
drmConfig{}.playReady{}.digitalVideoProtectionLevel Integer N 100
250
270
300
301
Security level setting for digital video output (100, 250, 270, 300, 301)
drmConfig{}.playReady{}.analogVideoProtectionLevel Integer N 100
150
200
201
Security level setting for analog video output (100, 150, 200, 201)
drmConfig{}.playReady{}.digitalAudioProtectionLevel Integer N 100
250
300
301
Security level setting for digital audio output (100, 250, 300, 301)
drmConfig{}.playReady{}.hdcpUseYn Boolean N Sets whether type 1 (HDCP V2.2 and above) is required when HDCP is applied according to OPL settings
(when set to "true," HDCP 2.2 or above is required)
drmConfig{}.fairPlay Object N FairPlay Streaming's policy
drmConfig{}.fairPlay{}.useYn Boolean Y Whether to apply FairPlay Streaming's policy settings
drmConfig{}.fairPlay{}.hdcpEnforcement String N -1 (HDCP not applied)
0 (HDCP Type 0 (regardless of version))
1 (HDCP Type 1 (2.2 or above required))
HDCP application status and HDCP version for the track
-1: HDCP not applied
0: HDCP Type 0 (regardless of version)
1: HDCP Type 1 (2.2 or above required)
drmConfig{}.fairPlay{}.allowAirPlay Boolean N Whether to allow AirPlay
drmConfig{}.fairPlay{}.allowAvAdaptor Boolean N Whether to allow output through digital AV adapter

Examples

Request example

PUT /api/v1/policy/1
HOST: multi-drm.apigw.ntruss.com
Content-Type: application/json
x-ncp-apigw-timestamp:1521787414578
x-ncp-iam-access-key:6uxz1nKkcYwUjWRG5Q1V7NsW0i5jErlu2NjBXXgy
x-ncp-apigw-signature-v2:iJFK773KH0WwQ79PasqJ+ZGixtpDQ/abS57WGQdld2M=
x-ncp-region_code:KR

{
  "drmPolicyConfig": {
    "fairplay": {
      "useYn": false
    },
    "playready": {
      "analogVideoProtectionLevel": "100",
      "digitalAudioProtectionLevel": "100",
      "digitalVideoProtectionLevel": "100",
      "hdcpUseYn": true,
      "securityLevel": "150",
      "useYn": true
    },
    "widevine": {
      "cgms": "CGMS_NONE",
      "deviceRevocation": true,
      "disableAnalogOutputYn": true,
      "hdcp": "HDCP_NONE",
      "hdcpSrmRule": "HDCP_SRM_RULE_NONE",
      "securityLevel": "1",
      "useYn": true
    }
  },
  "persistent": true,
  "playbackDuration": 0,
  "policyName": "mySamplePolicy",
  "rentalDuration": 0
}

Response example

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": "UPDATING",
    "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
      }
    }
  }
}