Customizing Playback via Parameters

Customize playback by adding the desired customization parameters directly after core identification parameters in the playback URL's query string.

Key information:

General Parameters

This section describes all customization parameters that are not specific to ad decision servers or Studio DRM.

Parameter Description

ak

Identifies the name of the application key that will be used to decrypt the digital signature.

Upon including this parameter, the signed playback URL will only work with an application key.

Use the following syntax when defining an application key name:

1.ApplicationKeyName

Example (Current Implementation):

ak=1.mykey

Example (Legacy Implementation):

ak=mykey

allowts

Live Streaming Only

Allows a ts parameter to be appended to a signed playback URL. Use this parameter to allow scrubbingRefers to the process of jumping to a specific point in a video. This is typically performed through the player's timeline to either jump forwards or backwards through a video. though a video.

Key information:

  • Appending a ts parameter to a signed playback URL has the following effect:

    • HLS: If a playback session is passed in the playback URL via the pbs parameter, then the existing playback session will be reset.
    • DASH: If a playback session is passed in the playback URL via the pbs parameter, then the player will be unable to playback the video. Therefore, it is important to remove the pbs parameter when scrubbing through video.

      Learn more.

Example:

allowts=1

dash_subtitles_merge

Set this parameter to 0 to only display the language tracks that have been embedded within the asset.

Learn more.

Example:

If your asset contains an English track and an ad contains a Spanish track, then a viewer may only select English when viewing either your main content or that ad.

ddp

Set to 1 to include Dolby Digital Plus (DD+) tracks in the manifest file generated for this playback request. If this playback parameter is missing, then only AAC tracks will be served.

DD+ setup also requires encoding audio as DD+ via the audio_dolby_# parameter (Live Slicer) or the dolby switch (Slicer).

Example:

ddp=1

delay

Determines the length of time, in seconds, that the system will wait after initial video ingest before constructing the playback window. This time period is known as artificial latency.

Use this parameter to adjust for time zones by introducing an artificial delay (e.g., delay=7200) or to reduce total latency (e.g., delay=20).

Default value: -1

By default, latencyIndicates the delay between the capture of the source video and when it is displayed to the viewer. is approximately 60 to 66 seconds.

Learn more (Live Linear).

Learn more (Live Events).

Example:

Shift playback by two hours:

delay=7200

dmm.schemas.break

Set to break_info to add ad break information Dynamic Manifest Markers when playing a virtual linear playlist.

Learn more.

Example:

dmm.schemas.break=break_info

dmm.schemas.top

Adds a Dynamic Manifest Marker (DMM) to the top of a manifest file.

first_segment_url

Set it to first_segment_url to add a first segment URL DMM to the top of a manifest file. This DMM indicates the URL for the first segment in the manifest file.

Use a first segment URL DMM to find out playback details. For example, you can use it find out the CDN responsible for delivering this segment. This information is useful when working with native players (e.g., Safari) that do not provide easy access to this data.

Example:

dmm.schemas.top=first_segment_url

timeline

Set it to timeline to add a timeline DMM to the top of a manifest file for Smartstart-enabled assets.

Learn more.

Add timeline metadata for any virtual linear playlist by combining this parameter with the pltl query string parameter.

Example:

dmm.schemas.top=timeline

euid

Identifies the current user using a custom ID (i.e., external user ID). This ID is passed to ad decision systems and included in many logging messages.

This string value should consist of:

  • 100 characters or less.
  • Alphanumeric characters, underscores, or dashes.

Our system does not interpret or modify this value.

Example:

euid=145XnM_0bHt2hZIGw8twtl3ccpjVF5rRVj6VJ_ZgqvtY2KmH

expand

Identifies a comma-separated list of expansion parameters.

Sign the playback URL using the expand parameter name / value pair instead of the set of parameters that it represents.

An expansion parameter shortens the length of the playback URL, hides parameters from viewers, and facilitates the adjustment of parameters across multiple live channels, live events, or assets.

This capability does not support the following parameters:

  • linearv
  • jsonp
  • pbs
  • skip_drm
  • oid
  • ‘start’ and ‘stop’ for channel schedules
  • stageplayer

forcecic

DASH Live Streams Only

Set this parameter to 1 to always prepend a codec initialization clip to the manifest file.

Learn more.

Example:

forcecic=1

fpuseki

Apple FairPlay Streaming Only

Set this parameter to 1 to minimize content key requests.

Content key request minimization also requires changes to your encoding profile and an update to your player.

Learn more.

Example:

fpuseki=1

geo.country.allow

Requires Geoblocking

Restricts access to requests that originate from one or more specified countries. Requests that originate from all other countries will be denied access.

Syntax:

?geo.country.allow=Country Code[,Country Code 2,Country Code n]

Learn more.

geo.country.deny

Requires Geoblocking

Denies access to requests that originate from one or more specified countries. Access is restricted to requests that originate from other countries.

Syntax:

?geo.country.deny=Country Code[,Country Code 2,Country Code n]

Learn more.

hlsver

Determines the minimum HLS version that your player must support to playback content.

The maximum supported value for this parameter is 7. Do not set this parameter to a value higher than 7.

You should only set this parameter when your player requires a feature that is unavailable in a lower version. Promote backward compatibility by setting this parameter to the lowest HLS version that supports the desired feature.

Learn more about HLS versions.

ifo

Set to 1 to include a playlist that only contains I-framesIntra-frame. This type of frame is a full picture snapshot and it does not rely on other frames (i.e., P-frames and B-frames)..

Key information:

Example:

ifo=1

maxfps

Limits the maximum frames per second (FPS) to the specified value. RaysA stream with a specific quality configuration based on set bit rate and resolution targets. Each ray is divided into slices. with a higher frame rate will be removed from the manifest.

Use this parameter to remove rays from a playback session for a player that cannot support higher frame rates.

Example:

Prevent rays with a frame rate of 60 FPS or higher from being included in the manifest served for this playback session:

maxfps=59

needscors

Determines whether the manifest response leverages cross-origin resource sharing (CORS). Valid values are:

  • 0: Allows requests from any site by excluding the access-control-allow-credentials response header and setting the following response header:

    access-control-allow-origin: *

  • 1: Leverages CORS via the following response headers:

    access-control-allow-credentials: true

    access-control-allow-origin: ReferrerIdentifies the referrer for the manifest request.

Default values: 

  • HLS: 0
  • DASH: 1

opaqueid

Uniquely identifies a viewer. Use this parameter along with the up.max_concurrent_sessions parameter to limit the number of concurrent sessions that may be launched by the current playback URL.

It is your responsibility to uniquely identify each viewer. Legitimate viewers may be prevented from playing your content when the same identifier is shared between multiple viewers.

Example:

Assign a unique identifier (i.e., joe-smith-001) to the playback URL:

opaqueid=joe-smith-001

pltl

Set the Playlist Timeline parameter to 1 to add a timeline Dynamic Manifest Marker for the assets defined within your virtual linear playlist.

Learn more.

This could lead to a large timeline when your playlist contains multiple assets or when there are many ad breaks between assets.

This parameter requires the dmm.schemas.top query string parameter.

Example:

dmm.schemas.top=timeline&pltl=1

plts

Set the Playlist Timestamp parameter to the desired seek position within your virtual linear playlist. This position is measured from the start of the playlist in seconds.

Learn more.

Only content counts towards seek times. Specifically, ad breaks are excluded from this calculation.

This parameter is exempt from digital signatures.

Example:

Seek 5 minutes into the playlist:

plts=300

ptid

Tracks the playback of linear and/or on-demand content by tagging it with an organizational group or a category (e.g., MyChannel). This case-sensitive value may consist of up to 32 alphanumeric characters, dashes, and underscores.

Although tracking data is logged, it is currently inaccessible. However, it will eventually be exposed via log data.

If this parameter has not been defined in the playback URL, then content playback will be tracked under the unknown category.

rates

Restricts playback to the raysA stream with a specific quality configuration based on set bit rate and resolution targets. Each ray is divided into slices. that correspond to the given range of bitrates. Specify this range from low to high in Kbps.

Syntax:

rates=Low-High

Key information:

  • Omit either the starting or ending value to extend the range to 0 or infinity, respectively.

    Example:

    Use the following range to restrict playback to rays that correspond to 600 Kbps or higher:

    rates=600-
  • This parameter is ignored when the rays parameter has been defined in the playback URL.
  • You may use one or more of the following parameters:

    rates | resolution

    Playback will be restricted to the set of rays that satisfy all of the parameters defined in the playback URL.

    Restricting rays may adversely impact adaptive streaming capabilities. Additionally, you may inadvertently break playback when rays are unavailable due to the parameters defined in the playback URL.

Default behavior: All rays are allowed. By default, our system suggests that clients play the d or e ray.

Example:

Cap playback to 1 Mbps:

rates=0-1024

rays

Restricts playback to the specified raysA stream with a specific quality configuration based on set bit rate and resolution targets. Each ray is divided into slices.. Specify the letter corresponding to each desired ray.

Key information:

  • Restricting rays may adversely impact adaptive streaming capabilities.
  • The letter a represents the lowest quality ray.
  • The order in which rays are listed provides a hint to the player as to which ray it should try when initiating playback. Listing a lower ray first will force playback to start at a low quality, while listing a higher ray first will suggest that playback start at a higher ray. A player may still opt to use a lower ray when network conditions are poor.
  • Our system ignores a character when a corresponding ray doesn't exist.

Default behavior: All rays are allowed. By default, our system suggests that clients play the d or e ray.

The a ray is usually excluded on non-iOS platforms, since this ray is extremely low quality and only exists because the Apple AppStore requires it.

Example:

Prevent access to rays higher than d:

rays=dcba

repl

Identifies the replacement plugin that will be loaded.

resolutions

Restricts playback to the raysA stream with a specific quality configuration based on set bit rate and resolution targets. Each ray is divided into slices. that correspond to the given range of resolutions. Specify this range from low to high using shorthand numbers (e.g., 480, 720, and 1080).

Syntax:

resolutions=Low-High

Key information:

  • Omit either the starting or ending value to extend the range to 0 or infinity, respectively.

    Example:

    Use the following range to restrict playback to rays that correspond to 720p or higher:

    resolutions=720-
  • This parameter is ignored when the rays parameter has been defined in the playback URL.
  • You may use one or more of the following parameters:

    rates | resolution

    Playback will be restricted to the set of rays that satisfy all of the parameters defined in the playback URL.

    Restricting rays may adversely impact adaptive streaming capabilities. Additionally, you may inadvertently break playback when rays are unavailable due to the parameters defined in the playback URL.

Default behavior: All rays are allowed. By default, our system suggests that clients play the d or e ray.

Example:

Cap playback to 720p:

resolutions=0-720

show_dash_subtitles

DASH Only

Set to imsc to enable fragmented TTML (IMSC1) for DASH streams.

Learn more.

Example:

show_dash_subtitles=imsc

show_vtt

HLS Live Streams Only

Set to 1 to enable WebVTT for HLS live streams.

Example:

show_vtt=1

smartcic

DASH Live Streams Only

Set this parameter to 1 to only prepend a codec initialization clip to the manifest file when the main content contains WebVTT subtitles.

Learn more.

Example:

smartcic=1

srs

DASH Only

Determines how the start times and duration for media segments (aka media files) are represented within a DASH manifest. Valid values are:

  • template: Inserts media segment start times and duration within SegmentTemplate tags.
  • templatetimeline: Inserts media segment start times and duration within SegmentTimeline tags. Each SegmentTimeline tag is contained within a SegmentTemplate tag.
  • Tizen Only

    tizentemplate: Inserts media segment start times and duration within Tizen AVPlay-compatible SegmentTemplate tags.

    Consult with our technical customer support prior to implementing this configuration if you are leveraging our multi-CDN solution to deliver your content.

  • VOD Only

    list: Inserts media segment start times and duration within SegmentList tags.

    Verify that your player supports SegmentList tags prior to using this mode. For example, Roku players do not support SegmentList tags.

Default value (DASH Live Streams): 

srs=templatetimeline

Default value (DASH VOD Streams): 

srs=template

sstart

Sets the starting point, in slice numbers (0-based), for playback.

Content prior to the starting slice will be excluded from playback.

This parameter is incompatible with live channel playback.

Example:

Start playback at the 16th slice:

sstart=15

sstop

Sets the stopping point, in slice numbers (0-based), for playback.

Content after the specified slice will be excluded from playback.

This parameter is incompatible with live channel playback.

Example:

Stop playback after the 21st slice:

sstop=20

start

Sets the playback start offset in seconds.

The specified offset will be rounded down to the nearest slice boundary. Content prior to this offset will be excluded from playback.

This parameter is incompatible with live channel playback.

Example:

Start playback at the slice containing the 95.3 second:

start=95.3

staticomsdk

Set this parameter to 1 to insert a static JSON payload into the manifest. Use this JSON payload to test your ad verification workflow.

Example:

staticomsdk=1

stop

Sets the playback stop time in seconds.

The specified offset will be rounded up to the nearest slice boundary. Content after this offset will be excluded from playback.

This parameter is incompatible with live channel playback.

Example:

Stop playback after the slice containing the 110.9 second:

stop=110.9

subtitle_placeholders_off

Set this parameter to 1 to only display the available language tracks.

This parameter overrides the dash_subtitles_merge parameter.

Learn more.

Example:

If your asset contains an English track and an ad contains a Spanish track, then a viewer may only select English when viewing your main content and Spanish when viewing that ad.

thumbsray

Set this parameter to 1 to include trick play thumbnailsA player may use these thumbnails to provide visual feedback when a viewer fast forwards or rewinds the stream. in the manifest file.

Example:

thumbsray=1

timedmeta.events.ads

Inserts information about one or more tracking events from the ad response into the manifest file. Use a comma to delimit each tracking event. Valid values are:

videoview | slotimpression | defaultimpression | start | firstquartile | midpoint | thirdquartile | complete

Example:

The following parameter adds complete and midpoint tracking event data to the JSON payload included in the manifest file:

timedmeta.events=complete,midpoint

Learn more.

timedmeta.extensions.ads

Inserts information about one or more custom VAST extensions from the ad response into the manifest file. Use a comma to delimit each extension.

Example:

The following parameter adds waterfall and geo data to the JSON payload included in the manifest file:

timedmeta.extensions=waterfall,geo

Learn more.

timedmeta.schemas.ads

Set this parameter to omsdk to insert ad viewability data into the manifest file. Update your player to send this data to an ad verification system via the Open Measurement Interface Definition (OMID).

Example:

timedmeta.schemas.ads=omsdk

Learn more.

ts

Sets the start time, in Unix time, for playback.

Cannot be used any farther back in time than the schedule and assets for the linear stream exist.

Example:

Start playback at 2013-05-14 10:58:49 UTC:

ts=1368529129

up.max_concurrent_sessions

Limits the number of concurrent sessions to the specified value. Specify the opaqueid parameter to limit the number of concurrent sessions by viewer.

Example:

Limit the number of concurrent sessions for the viewer identified by the opaqueid parameter to 2:

up.max_concurrent_sessions=2

Ad Parameters

Ad-specific customization parameters are organized according to the following categories:

General Ad Parameters

Ad parameters that apply to all ad decision servers are described below.

Parameter Description

ad

Identifies the ad configuration that determines the ad decision server from which ads will be obtained during playback.

Specifying an ad configuration that does not exist will prevent playback.

Omitting this parameter allows playback without ads.

Example:

ad=fw2

ad._debug

Tags a playback session for the purpose of tracking ad insertion data. Set this parameter to the desired tag.

Example:

ad._debug=campaign2

ad.breakend

Prevents ads from exceeding an ad break's duration. Valid values are:

chop | drop

Passing this parameter also affects how ad break duration is calculated. Specifically, it reduces the duration of the ad break by the number of seconds that the current playback session is behind playback delay.

Learn more about ad break duration adjustments.

chop

Switches over to content upon reaching an ad break's adjusted duration.

Once the ad break's adjusted duration is reached, the stream will cut back over to content regardless of whether that causes the ad to only be partially played.

An ad may extend slightly beyond an ad break.
Learn more.

Syntax:

ad.breakend=chop

drop

Drops ads that exceed the adjusted ad break duration. If the ad break's requested duration has been exceeded, then the stream will cut back over to content. Otherwise, slate will be played until the end of the ad break.

Slate may extend slightly beyond an ad break.
Learn more.

Syntax:

ad.breakend=drop

ad.caid

Multiple asset playback URLs only

Defines the asset ID that will be sent to an ad decision server.

Default behavior: Our system sends the ID of the first asset listed in the playback URL to the ad decision server. Use this parameter to send a different asset ID to the ad decision server.

ad.cping

Set this parameter to 1 to enable the Ping API.

Example:

ad.cping=1

ad.flex

Set this parameter to the number of seconds that an ad break may extend beyond an ad break's duration.

Use this parameter to introduce flexibility for the enforcement of ad.breakend's chop and drop modes.

Syntax:

ad.flex=Seconds

Default value: 4 seconds

Learn more.

ad.kv

Defines the key-value pairs that will be sent to the ad decision server. Use commas to separate keys and values.

Example:

ad.kv=key1,value1,key2,value2

ad.Parameter

Pass ad decision server-specific parameters to the ad decision server.

This parameter requires the ad parameter.

The ad. prefix is removed from the name that is passed to the ad decision server when acquiring ads for playback. In the following example, our system will pass the account and ctxid parameters to the ad decision server.

Example:

ad.account=vz1234&ad.ctxid=MA_99_174

ad.prbd

Set this parameter to the name of the Prebid configuration that identifies your Prebid server and provides bidding instructions.

Learn more.

Syntax:

ad.prbd=Prebid Config Name

Example:

ad.prbd=myPrebidServer

is_ad

Manually forces an asset to be reported as an ad in the asset_play_started event (push logs).

This parameter is unnecessary when the system automatically inserts ads.

This parameter is useful when ads are managed and inserted by an external system, since it allows our push logs to reflect that the asset was played back as an ad.

Example:

Report playback as an ad in the push logs:

is_ad=1

Verizon Media Ad Platform Video SSP

View Verizon Media Ad Platform Video SSP-specific parameters.

Google Ad Manager

View Google Ad Manager-specific parameters.

FreeWheel

View FreeWheel-specific parameters.

Studio DRM Parameters

Apply a Studio DRM policy to a playback session by including one or more of the following customization parameters in the playback URL:

Apply a general Studio DRM policy via the drm_policy_name parameter and then define more granular policies for specific scenarios (e.g., allow a device that doesn't support DRM to play low resolution streams).

Disabling Studio DRM

Use the following parameter to disable Studio DRM.

Query String Parameter

Name

Description

drm_optional

Disable Studio DRM

Disables Studio DRM protection.

Key information:

  • DASH Streaming Only

    If you are streaming content via DASH, then you must also pass the ck parameter:

    &ck=1
  • A player should request a cleartext key from the following URL when playing content that is not protected by Studio DRM:

    https://content.uplynk.com/ck
  • This parameter is the equivalent of clearing the Require studio approved DRM for playback option for this playback session.
  • This parameter is typically used to allow playback of specific rays or configurations of protected content without requiring DRM.

Syntax:

&ck=1&drm_optional=1

Sample Usage:

Include the following query string parameters to restrict playback on a device that doesn't support DRM to the two lowest quality raysA stream with a specific quality configuration based on set bit rate and resolution targets. Each ray is divided into slices.:

...&ck=1&drm_optional=1&rays=ba

All playback URLs for Studio DRM-protected content should require a digital signature to prevent URL tampering.

Apple FairPlay Streaming (FPS)

In addition to FPS policy settings, you may also reuse content keys via the fpuseki parameter.

Define one of the following scopes when specifying FPS policy settings:

Track-specific policy settings take precedence over policy settings that apply to all tracks.

Use the following query string parameters to define a FPS policy.

Query String Parameter Description

fp.airplay

fp.TrackTypeReplace this variable with the track to which the policy will be applied. Valid values are: sd | hd | uhd1 | uhd2..airplay

Determines whether playback will be allowed over AirPlay.

Valid values are:

  • 1: Allow AirPlay.
  • 0: Disallow AirPlay.

Default value:

1

fp.avadapter

fp.TrackTypeReplace this variable with the track to which the policy will be applied. Valid values are: sd | hd | uhd1 | uhd2..avadapter

Determines whether playback may be mirrored via an Apple Lightning AV Adapter.

Valid values are:

  • 1: Allow mirroring.
  • 0: Disallow mirroring.

Default value:

1

fp.hdcp

fp.TrackTypeReplace this variable with the track to which the policy will be applied. Valid values are: sd | hd | uhd1 | uhd2..hdcp

Determines whether High-bandwidth Digital Content Protection (HDCP) enforcement is required.

Valid values are:

  • -1: HDCP is not enforced.
  • 0: HDCP type 0 content streams is enforced. This allows the stream to be transmitted by the HDCP repeater to all HDCP devices.
  • 1: HDCP content type 1 (HDCP version 2.2 or later) is enforced. Streams may not be transmitted by the HDCP repeater to HDCP 1.x-compliant devices or HDCP2.0-compliant repeaters.

Default value:

-1

fp.lease_duration

fp.TrackTypeReplace this variable with the track to which the policy will be applied. Valid values are: sd | hd | uhd1 | uhd2..lease_duration

Determines the length of time, in seconds, during which playback will be allowed. Playback will stop upon the expiration of the lease.

Key information:

  • This countdown starts upon the acquisition of the Content Key.
  • This parameter requires offline playback. Set fp.persistence to 1.

    &fp.persistence=1
  • This parameter may be combined with fp.rental_duration.

Default value:

0

fp.persistence

fp.TrackTypeReplace this variable with the track to which the policy will be applied. Valid values are: sd | hd | uhd1 | uhd2..persistence

Determines whether offline playback is allowed.

Valid values are:

  • 1: Allow offline playback.
  • 0: Disallow offline playback.

Default value:

0

fp.playback_duration

fp.TrackTypeReplace this variable with the track to which the policy will be applied. Valid values are: sd | hd | uhd1 | uhd2..playback_duration

Determines the length of time, in seconds, for which playback will be valid.

Key information:

  • This parameter requires:

    1. Offline playback. Set fp.persistence to 1.

      &fp.persistence=1
    2. iOS 11 or later

      Your application's user agent should identify the OS as iOS 11 or later.

  • This countdown starts upon initial playback.
  • Use this parameter for offline playback or lease renewals only.
  • A license will not expire when this parameter is not specified or if it is set to 0.
  • Once playback is successfully initiated, it will be allowed even if playback extends beyond the rental duration.

Default value:

0

fp.rental_duration

fp.TrackTypeReplace this variable with the track to which the policy will be applied. Valid values are: sd | hd | uhd1 | uhd2..rental_duration

Determines the length of time, in seconds, during which the Content Key is valid prior to initial playback. Playback may only be initiated with a valid Content Key.

Key information:

  • This countdown starts upon the acquisition of the Content Key.
  • This parameter may be combined with fp.lease_duration and fp.persistence.
  • A Content Key will not expire if this parameter is not specified.
  • Once playback is successfully initiated, it will be allowed even if playback extends beyond the rental duration. However, the client will not be allowed to restart playback with an expired Content Key.

Default value:

0

DASH

DASH policy settings are organized into the following categories:

All DASH DRM Solutions

The following query string parameters are applicable to all DASH Studio DRM solutions.

Query String Parameter

Name

Description

ck

Cleartext Key

Disables DRM by passing the Content Key in cleartext. Decryption will take place outside of a Content Decryption Module (CDM). Valid values are:

  • 1: All players. Our system will check the User-Agent request header to identify the requesting player and then use this information to determine how the Content Key will be presented to the player.

    Exoplayer expects a cleartext Content Key in a different format than other players.

  • 4: Exoplayer only. Our system will present the Content Key in a format recognizable by Exoplayer.

Key information:

  • A prerequisite for this parameter is that Studio DRM must be disabled on the desired content. Please also include the drm_optional parameter in the query string.
  • Request cleartext Content Keys from the following URL:

    https://content.uplynk.com/ck
  • Once DRM is disabled on a playback session, the player must request a cleartext Content Key instead of a license. This means that you must use the above URL instead of a license acquisition URL.

Syntax:

&ck=1&drm_optional=1

noadredir

Disable Ad Redirects

VOD Only

By default, ads within VOD content will be represented as a list of segments. This allows ad impressions to be injected via redirects on every other segment. Disable this functionality through this parameter.

Key information:

  • Audio and video slices for VOD ad content are represented within the manifest file through a list of segments (SegmentList). If your player does not support this type of manifest, then you must disable ad redirects. This will generate a manifest file that contains a set of templates (SegmentTemplate) for VOD ad content.
  • Disable ad redirects by performing either one of the following actions:

    • Pass this parameter.
    • Leverage our Ping and Preplay APIs to track ad impressions.

Syntax:

&noadredir=1

nielsen

Nielsen

Advertises to the DASH player that the manifest may contain Nielsen data encoded within the emsg box.

This parameter is required when the manifest contains Nielsen data.

Please also set the nielsen parameter within the Live Slicer configuration file.

Syntax:

&nielsen=1

Google Widevine

Define a Widevide DRM policy by including parameters that define:

Content Key Specs

Use content key specs to define the set of Content Keys that will be returned to the player.

Syntax:

rmp.content_key_specs.Track Type.Restriction=Value

Each of the above variables are described below.

Policy Overrides

Use the following parameters to determine the conditions under which playback will be allowed.

Syntax:

rmp.policy_overrides.Override=Value

Each policy override is described below.

Override Description

can_persist

Determines whether offline playback is allowed.

Valid values are:

  • True: Offline playback is allowed.
  • False: Offline playback is disallowed.

Default value:

True

can_play

Determine whether playback is allowed.

This parameter is required when defining policy overrides.

Default value:

True

license_duration_seconds

Determines the length of time, in seconds, during which content playback is allowed.

Key information:

  • This window starts from the time at which the license was issued.
  • This parameter must be specified in order to limit playback by license.
  • No further decryption is allowed upon license expiration.

Default value:

86400

playback_duration_seconds

Determines the length of time, in seconds, for which a license will be valid after its initial use.

This parameter should only be specified for offline or license renewal scenarios.

Default value:

0

rental_duration_seconds

Determines the length of the window, in seconds, during which a license will be valid prior to its initial use.

Key information:

  • This window starts from the time at which the license was issued.
  • Once a license is used, rental duration is not used or enforced.

    Please use either playback or license duration to further limit playback.

  • This parameter should only be specified for offline scenarios.

Default value:

0

Microsoft PlayReady

Define one of the following scopes when specifying PlayReady policy settings:

Track-specific policy settings take precedence over policy settings that apply to all tracks.

Use the following query string parameters to define a PlayReady policy.

Query String Parameter Description

pr.analog_video_protection_level

Determines the minimum security requirements for the client's analog video outputs.

Valid values are:

  • 100: No security. This level allows the client to pass content to analog video outputs without restrictions.

    This security level is solely provided for testing purposes.

  • 150: A client must attempt to engage Copy Generation Management System - Analog (CGMS-A) CopyNever for analog video outputs. Regardless of CGMS-A, the client may pass content to analog video outputs.
  • 200: CGMS-A is required when a client passes content to analog video outputs.
  • 201: Prevents a client from passing content to analog video outputs.

Default value:

100

pr.can_persist

pr.TrackTypeReplace this variable with the track to which the policy will be applied. Valid values are: audio | sd | hd | uhd1 | uhd2..can_persist

Determines whether offline playback is allowed.

Valid values are: True | False

Default value:

False

pr.compressed_digital_audio_protection_level

Determines the minimum security requirements for passing compressed digital audio to the client's digital audio outputs.

Valid values are:

  • 100: No security. This level allows the client to pass compressed digital audio to digital audio outputs without restrictions.

    This security level is solely provided for testing purposes.

  • 301: Prevents a client from passing compressed digital audio to digital audio outputs.

Default value:

100

pr.digital_video_protection_level

pr.TrackTypeReplace this variable with the track to which the policy will be applied. Valid values are: audio | sd | hd | uhd1 | uhd2..digital_video_protection_level

Determines the level of digital video protection that will be required.

Valid values are:

  • 100: Allows the client to pass content to digital video outputs.
  • 250: A client must attempt to engage HDCP for digital video outputs. Regardless of HDCP, the client may pass content to digital video outputs.
  • 270: A client must attempt to engage HDCP for digital video outputs. If HDCP cannot be engaged, the client may pass content to digital video outputs when the effective resolution is less than or equal to 520,000 pixels per frame.
  • 300: HDCP is required when a client passes content to digital video outputs.
  • 301: Prevents a client from passing content to digital video outputs.

The pr.require_hdcp_type_1 parameter determines which version of HDCP will be enforced.

Default value:

100

pr.license_begin_seconds

Determines the number of seconds prior to the current playback request for which the license will be valid. A license cannot be used prior to the specified time.

Set this parameter to 0 to make the license valid any time prior to the playback request.

The purpose of this parameter is to account for time differences between our servers and the client. For example, a playback request will be denied if this parameter is set to 60 seconds and the client's time is 4 minutes behind our server's time.

Default value:

3600

By default, playback will be allowed when a client's time is up to an hour behind our server's time.

pr.license_duration_seconds

pr.TrackTypeReplace this variable with the track to which the policy will be applied. Valid values are: audio | sd | hd | uhd1 | uhd2..license_duration_seconds

Determines the length of time, in seconds, during which content playback is allowed.

This countdown starts upon license creation.

No further decryption is allowed upon license expiration.

Default value:

86400

pr.playback_duration_seconds

pr.TrackTypeReplace this variable with the track to which the policy will be applied. Valid values are: audio | sd | hd | uhd1 | uhd2..playback_duration_seconds

Determines the length of time, in seconds, for which playback will be valid. This countdown starts after initial playback.

Use this parameter when setting up a policy for offline playback or license renewal.

Playback is unlimited when playback duration has not been specified.

Default value:

0

pr.playenabler

pr.TrackTypeReplace this variable with the track to which the policy will be applied. Valid values are: audio | sd | hd | uhd1 | uhd2..playenabler

Allows license delivery where it would normally be disallowed. Set this parameter to the Play Enabler GUID that defines the additional condition under which license delivery will be allowed.

The purpose of this parameter is to facilitate testing. For example, by default, playback on a virtual machine is restricted. Pass B621D91F-EDCC-4035-8D4B-DC71760D43E9 to allow playback of constrained resolution on an unknown output (e.g., VM).

Syntax:

pr.playenabler={Play Enabler GUID}

View Microsoft's Compliance Rules to learn more about Play Enablers.

pr.realtime_expiration

Determines whether the current playback session will be stopped upon license expiration.

Valid values are:

  • True: Upon license expiration, the current playback session will be stopped.
  • False: The current playback session will continue if it was started prior to license expiration.

Default value:

True

pr.require_hdcp_type_1

pr.TrackTypeReplace this variable with the track to which the policy will be applied. Valid values are: audio | sd | hd | uhd1 | uhd2..require_hdcp_type_1

Determines the version of HDCP that will be enforced on digital video outputs when pr.digital_video_protection_level is set to 250 or higher.

Valid values are:

  • True: HDCP content type 1 (HDCP version 2.2 or later) is enforced. Streams may not be transmitted by the HDCP repeater to HDCP 1.x-compliant devices or HDCP2.0-compliant repeaters.
  • False: Allows any version of HDCP.

Default value:

False

pr.securitylevel

pr.TrackTypeReplace this variable with the track to which the policy will be applied. Valid values are: audio | sd | hd | uhd1 | uhd2..securitylevel

Determines the minimum security requirements for the client device.

Valid values are:

  • 150: No security.

    This security level is solely provided for testing purposes.

  • 2000: Use this security level for hardened devices and applications consuming commercial content. Requires the protection of Assets, Client Secrets, or Content Secrets via software or hardware.
  • 3000: Use this security level for hardened devices with the highest security consuming the highest quality of commercial content.

    Devices Only: 

    Requires the protection of Assets, Client Secrets, and Content Secrets via hardware using a Trusted Execution Environment (TEE) for the processor.

Default value:

150

pr.uncompressed_digital_audio_protection_level

Determines the minimum security requirements for passing uncompressed digital audio to the client's digital audio outputs.

Valid values are:

  • 100: No security. This level allows the client to pass uncompressed digital audio to digital audio outputs without restrictions.

    This security level is solely provided for testing purposes.

  • 250: A client may pass uncompressed digital audio to digital audio outputs when either of the following conditions are true:

    • HDCP is engaged on HDMI, DisplayPort, or MHL.
    • SCMS is engaged and set to CopyNever.
  • 300: A client may only pass uncompressed digital audio to digital audio outputs when HDCP is engaged on HDMI, DisplayPort, or MHL.
  • 301: Prevents a client from passing uncompressed digital audio to digital audio outputs.

Default value:

100

pr.version

Determines the version of the PlayReady license that will be requested.

Valid values are:

  • 2: Generates a manifest file that contains an Adaption Set for each requested key.
  • 3: Supports grouping requests for multiple keys into a single license request. Generates a manifest file where all Representations reside within a single Adaption Set.

Default value:

3