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 properties give a unique ID and name to the DRM policy:

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

Within the DRM policy, specific policies can be included for one or more DRM technologies (PlayReady, Widevine, etc.). The following tables show the properties for each type of DRM technology.

PlayReady Properties

The following properties can be associated with a Microsoft PlayReady policy definition:

Property Description Required?
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

Flash Access Properties

The following properties can be associated with an Adobe Flash Access policy definition:

Property Description Required?
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 Properties

The following properties can be associated with a Google Widevine Modular policy definition:

Property Description Required?
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, 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, 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, false

Default: false

Parent: widevine_modular_policy

No
cgms

Indicates whether all the Widevine Modular assets have CGMS protection. Levels of CGMS protection include Copy Freely, Copy Once, or Copy Never.

Type: String

Example: free

Valid Values: free, once, never

Default: none

Parent: widevine_modular_policy

No
hdcp

Specifies which version of HDCP protection is used for all the Widevine Modular assets.

Type: String

Example: V2

Valid Values: V1, V2

Default: none

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, 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 Properties

The following properties can be associated with an Apple FairPlay policy definition:

Property Description Required?
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, 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, false

Default: true

Parent: fairplay_policy

No
hdcp

Specifies whether HDCP protection is used for all FairPlay assets.

Type: Boolean

Example: true

Valid Values: true, 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

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: fairplay_policy

No

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?