DRM Policies

You can view specific DRM policies or all policies associated with your account.

Note: For more information about Backlot REST API commands, see the Backlot API Reference.

List DRM Policies

[GET]/v2/drm_policies

View a DRM Policy

[GET]/v2/drm_policies/drm_policy_id

Properties

The following table describes all properties that can be associated with a label.

Property Description Required?
id

The ID of the policy.

Type: String

Example: "86ff97ae7c81495eacbd9a01feff0f22"

Yes
name

Name of a DRM policy. Non-Latin characters must be UTF-8 and URI-encoded.

Type: String

Example: "HD Policy"

Yes
playready_policy

Specifies properties for the PlayReady policy.

Type: Container

Default: none

Yes
analog_video

Specifies the minimum bit rate at which analog video is protected.

Type: Integer

Example: 150

Default: none

Parent: playready_policy

No
analog_video_extension_guid

Specifies an extended technology that is allowed to play protected analog content, such as Macrovision. The GUID specifying the extended technology and configuration data value are comma separated.

Type: String

Example: C3FD11C6-F8B7-4d20-B008-1DB17D61F2DA,3

Default: none

Parent: playready_policy

No
compressed_digital_video

Specifies the minimum bit rate at which compressed digital video is protected.

Type: Integer

Example: 500

Default: none

Parent: playready_policy

No
expiration_date

The license duration, in seconds.

Type: Integer

Example: 120

Default: 60

Parent: playready_policy

No
first_play_expiration

The number of seconds until the license expires after the client first plays the content.

Type: Integer

Example: 120

Default: none

Parent: playready_policy

No
uncompressed_digital_video

Specifies the minimum bit rate at which uncompressed digital video is protected.

Type: Integer

Example: 300

Default: none

Parent: playready_policy

No
flashaccess_policy

Specifies properties for the Flash Access policy.

Type: Container

Default: none

Yes
analog_output_protection

Specifies the type of analog output protection to use.

Type: String

Valid Values: no_playback | no_protection | required_acp | required_all | required_cgmsa | use_if_available_acp | use_if_available_all | use_if_available_cgmsa

Example: no_playback

Default: none

Parent: flashaccess_policy

No
caching_duration

Specifies how long a license will be cached on the client's device, in seconds. If the client has a cached license that hasn't expired, it will be used instead of obtaining a new license from Flash Access.

Type: Integer

Example: 3600

Default: licenses are cached indefinitely

Parent: flashaccess_policy

No
digital_output_protection

Specifies the type of digital output protection to use.

Type: String

Valid Values: no_playback | no_protection | required | use_if_available

Example: no_protection

Default: none

Parent: flashaccess_policy

No
minimum_security_level
Specifies the security level required to access content. (Usually security level in DRM systems specifying the difference between development and production environments.)
Note: This property should always either be set to 10000 or be left blank.

Type: Integer

Example: 10000

Default: none

Parent: flashaccess_policy

No
widevine_modular_policy

Specifies properties for the Widevine Modular policy.

Type: Container

Default: none

No
can_persist

Indicates that the license may be persisted to non-volatile storage for offline use.

Type: Boolean

Example: true

Valid Values: true or false

Default: false

Parent: widevine_modular_policy

No
can_play

Indicates that playback of the content is allowed.

Type: Boolean

Example: true

Valid Values: true or false

Default: false

Parent: widevine_modular_policy

No
can_renew

Indicates that renewal of the license is allowed. If true, the duration of the elicense can be extended by heartbeat.

Type: Boolean

Example: true

Valid Values: true or false

Default: false

Parent: widevine_modular_policy

No
cgms

Indicates whether all the Widevine Modular assets have CGMS protection.

Type: Boolean

Example: true

Valid Values: true or false

Default: false

Parent: widevine_modular_policy

No
hdcp

Indicates whether all the Widevine Modular assets have HDCP protection.

Type: Boolean

Example: true

Valid Values: true or false

Default: true

Parents: widevine_modular_policy

No
license_duration_seconds

Indicates the time window for this specific license. A value of 0 indicates that there is no limit to the duration.

Type: Integer

Example: 0

Valid Values: number of seconds

Default: 0

Parent: widevine_modular_policy

No
playback_duration_seconds

Indicates the viewing window of time once playback starts within the license duration. A value of 0 indicates that there is no limit to the duration.

Type: Integer

Example: 0

Valid Values: number of seconds

Default: 0

Parent: widevine_modular_policy

No
renewal_delay_seconds

Indicates how many seconds after license_start_time before renewal is first attempted. This field can only be used if can_renew is true.

Type: Integer

Example: 0

Valid Values: number of seconds

Default: 0

Parent: widevine_modular_policy

No
renewal_recovery_duration_seconds

Indicates the window of time in which playback is allowed to continue while renewal is attempted but unsuccessful due to backend problems with the license server. A value of 0 indicates that there is no limit to the duration. This field can only be used if can_renew is true.

Type: Integer

Example: 0

Valid Values: number of seconds

Default: 0

Parent: widevine_modular_policy

No
renewal_retry_interval_seconds

Indicates the delay, in seconds, between subsequent license renewal requests. This field can only be used if can_renew is true.

Type: Integer

Example: 0

Valid Values: number of seconds

Default: 0

Parent: widevine_modular_policy

No
renewal_server_url

Indicates the URL to which all heartbeat (renewal) requests for this license will be sent. This field can only be used if can_renew is true.

Type: String

Example: ""

Valid Values: valid URL

Default: none

Parent: widevine_modular_policy

No
renew_with_usage

Indicates that the license is sent for renewal when usage starts. This field can only be used if can_renew is true.

Type: Boolean

Example: true

Valid Values: true or false

Default: true

Parent: widevine_modular_policy

No
rental_duration_seconds

Indicates the time window while playback is permitted. A value of 0 indicates that there is no limit to the duration.

Type: Integer

Example: 0

Valid Values: number of seconds

Default: 0

Parent: widevine_modular_policy

No
fairplay_policy

Specifies properties for the FairPlay policy.

Type: Container

Default: none

No
adapter

Indicates if playback is allowed when using a digital adapter to project content on an external screen.

Type: Boolean

Example: true

Valid Values: true or false

Default: true

Parent: fairplay_policy

No
airplay

Indicates if playback is allowed when using AirPlay with Apple devices.

Type: Boolean

Example: true

Valid Values: true or false

Default: true

Parent: fairplay_policy

No
hdcp

Indicates whether all the Fairplay assets have HDCP protection.

Type: Boolean

Example: true

Valid Values: true or false

Default: true

Parents: fairplay_policy

No
lease_duration_seconds

Indicates the time window while playback is permitted for streaming. A value of 0 indicates that there is no limit to the duration.

Type: Integer

Example: 600

Valid Values: number of seconds

Default: 0

Parents: fairplay_policy

 

Example

This example returns settings for the 86ff97ae7c81495eacbd9a01feff0e10 policy:

[GET]/v2/drm_policies/drm_policy_#

Backlot returns a response similar to the following:

{  
   "id":"86ff97ae7c81495eacbd9a01feff0e10",
   "name":"HD Policy",
   "playready_policy":{  
      "analog_video_extension_guid":"C3FD11C6-F8B7-4d20-B008-1DB17D61F2DA,3",
      "expiration_date":"60",
      "compressed_digital_video":"500",
      "analog_video":"150",
      "uncompressed_digital_video":"300"
   },
   "flashaccess_policy":{  
      "analog_output_protection":"use_if_available_all",
      "digital_output_protection":"required",
      "minimum_security_level":10000
   },
   "widevine_modular_policy":{
      "can_play":true,
      "can persist":true,
      "can_renew":true,
      "rental_duration_seconds":0,
      "playback_duration_seconds":0,
      "license_duration_seconds":0,
      "renewal_recovery_duration_seconds":0,
      "renewal_server_url":"",
      "renewal_delay_seconds":0,
      "renewal_retry_interval_seconds":0,
      "renew_with_usage":true
    },
    "fairplay_policy":{ 
       "airplay":true, 
       "adapter":true
      }
   }        
}
Note:

Try out the code samples using your account credentials in the Ooyala Scratchpad. For information about using the Scratchpad, see Practice Making Requests with the Scratchpad. To launch the scratchpad, go to Ooyala API Scratchpad.

Was this article helpful?