Edit policy
- Print
- PDF
Edit policy
- Print
- PDF
Article summary
Did you find this summary helpful?
Thank you for your feedback
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 portalx-ncp-iam-access-key:{Sub Account Access Key} |
x-ncp-apigw-signature-v2 | YES | Signature encrypted with the access key ID value and secret keyx-ncp-apigw-signature-v2:{API Gateway Signature} |
Content-Type | YES | Specifies the request body content type as application/jsonContent-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
}
}
}
}
Was this article helpful?