Customize 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
-
Test your customizations by setting a test player URL's query string to the desired customization parameters.
-
Please verify that all query string parameters are set to URL-safe values.
-
Customization parameters are shown in blue font in the following sample query string:
?tc=1&exp=1358341863&rn=4114845747&ct=a&cid=ea...&rays=dcba&pk=myapp&...&sig=dm13... -
It is strongly recommended to sign playback URL to ensure its integrity. Please include customization parameters when signing your playback URL.
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 used to decrypt the digital signature. Upon including this parameter, the signed playback URL will only work with an application key. |
allowts |
|
dash_subtitles_merge | Set to |
ddp | Set to |
delay | Determines artificial latency in seconds. Adjust for time zones or reduce 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). |
dmm.schemas.break | Set to |
dmm.schemas.top | Adds a Dynamic Manifest Marker (DMM) to the top of a manifest file. |
euid | Identifies the current user with a custom ID (i.e., external user ID). This ID is passed to ad decision systems and included in many logging messages. Should be 100 characters or fewer, using alphanumeric characters, underscores, or dashes. |
expand | Identifies a comma-separated list of expansion parameters to shorten the playback URL and facilitate parameter adjustments. 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.
expand=ad_01,playback_01 |
forcecic |
|
fpuseki |
|
geo.country.allow |
|
geo.country.deny |
|
hlsver | Determines the minimum HLS version required by the player. Maximum value is 7. <Tip>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.</Tip>Learn more about HLS versions. |
ifo | Set to
ifo=1 |
maxfps | Limits the maximum frames per second (FPS) in the manifest. |
needscors | Determines CORS support for the manifest response. |
opaqueid | Uniquely identifies a viewer. Use this parameter along with the |
pltl | Set the Playlist Timeline parameter to |
plts | Set the Playlist Timestamp parameter to specify a seek position in seconds from the start of the playlist. Only content counts towards seek times. Specifically, ad breaks are excluded from this calculation. This parameter is exempt from digital signatures. |
ptid | Tags playback with an organizational group or category. 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 rays within a specified range of bitrates. |
rays | Restricts playback to specified rays. Specify the letter corresponding to each desired ray.
rays=dcba to prevent access to rays higher than d. |
repl | Identifies the replacement plugin to be loaded. |
resolutions | Restricts playback to rays within a specified range of resolutions.
resolutions={Low}-{High} Example: resolutions=720- to restrict to rays 720p or higher. |
show_dash_subtitles |
|
show_vtt |
|
smartcic |
|
srs |
|
sstart | Sets the starting point for playback in slice numbers (0-based). Content prior to the starting slice will be excluded from playback. This parameter is incompatible with live channel playback. |
sstop | Sets the stopping point for playback in slice numbers (0-based). |
start | Sets the playback start offset in seconds, rounded down to the nearest slice boundary. |
staticomsdk | Set to |
stop | Sets the playback stop time in seconds, rounded up to the nearest slice boundary. 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. |
subtitle_placeholders_off | Set to |
thumbsray | Set to
thumbsray=1 |
timedmeta.events.ads | Inserts tracking events from the ad response into the manifest file. Use a comma to delimit each event. Learn more. |
timedmeta.extensions.ads | Inserts custom VAST extensions from the ad response into the manifest file. Use a comma to delimit each extension. Learn more. |
timedmeta.schemas.ads | Set to |
ts | Sets the start time for playback in Unix time. This feature cannot be used any farther back in time than the schedule and assets for the linear stream exist. |
up.max_concurrent_sessions | Limits the number of concurrent sessions to the specified value. Specify the |
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.
ad=fw2 |
ad._debug | Tags a playback session for the purpose of tracking ad insertion data. Set this parameter to the desired tag. |
ad.breakend | Prevents ads from exceeding an ad break's duration. Valid values are:
Syntax: ad.breakend=chopdrop 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 |
|
ad.cping | Set this parameter to 1 to enable the Ping API. |
ad.flex | Set this parameter to the number of seconds that an ad break may extend beyond an ad break's duration. |
ad.kv | Defines the key-value pairs that will be sent to the ad decision server. Use commas to separate keys and values. |
ad.Parameter | Pass ad decision server-specific parameters to the ad decision server. |
ad.prbd | Set this parameter to the name of the Prebid configuration that identifies your Prebid server and provides bidding instructions. |
is_ad | Manually forces an asset to be reported as an ad in the asset_play_started event (push logs). |
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:
-
DRM Policy Configuration
Apply a set of predefined policies to a playback session by setting thedrm_policy_nameparameter to the name of the desired Studio DRM policy configuration.<Info>Specifying a Studio DRM policy configuration that does not exist will prevent playback.</Info>
Example:
...&drm_policy_name=widevine1 -
Individual Policy Settings
Apply individual policy settings to a playback session by specifying each desired FPS or DASH (Widevine and PlayReady) policy setting.<Info>All specified Studio DRM policies will be applied to the playback session. However, explicitly defined policy settings (e.g., &ck=1) take precedence over a Studio DRM policy configuration (drm_policy_name).</Info>
Example:
...&ck=1&drm_optional=1<Tip>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).</Tip>
Apply DRM Policy to Playback Session
Apply a DRM policy using one of the following methods (ordered from most to least amount of precedence):
-
Explicit Policy Settings
- Specify individual policy settings to tailor a playback session to meet a specific need.
- Explicitly defined settings take precedence over a Studio DRM policy configuration and the default DRM policy.
-
Studio DRM Policy Configuration
- Take advantage of a Studio DRM policy configuration to quickly apply a predefined set of DRM policies to a playback session.
- A Studio DRM policy configuration takes precedence over the default DRM policy.
-
Default Policy Settings
- All DRM policy settings have a default value.
- This default DRM policy is only applicable when a Studio DRM policy configuration or a conflicting policy setting has not been defined.
Disable Studio DRM
Use the following parameters to disable Studio DRM.
Query String Parameter | Name | Description |
|---|---|---|
drm_optional | Disable Studio DRM | Disables Studio DRM protection.
Syntax: &ck=1&drm_optional=1Sample Usage: Include the following query string parameters to restrict playback on a device that doesn't support DRM to the two lowest quality rays: ...&ck=1&drm_optional=1&rays=baAll 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:
-
All Tracks: Apply a policy setting to all tracks by excluding the track type from the query string parameter.
Example:...&fp.hdcp=0 -
Track-Specific: Apply a policy setting to a specific tracks by indicating the track type within the query string parameter.
Syntax:fp.{TrackType}.{Policy}
Valid values for{TrackType}are:- sd: Applies the policy setting to standard definition (576p or less) tracks.
- hd: Applies the policy setting to high-definition (720p and 1080p) tracks.
- uhd1: Applies the policy setting to 4K ultra-high-definition video tracks.
- uhd2: Applies the policy setting to 8K ultra-high-definition video tracks.
Example: ...&fp.hd.hdcp=0
<Info>Track-specific policy settings take precedence over policy settings that apply to all tracks.</Info>
Use the following query string parameters to define a FPS policy.
Query String Parameter | Description |
|---|---|
| Determines whether playback will be allowed over AirPlay.
|
| Determines whether playback may be mirrored via an Apple Lightning AV Adapter.
|
| Determines whether High-bandwidth Digital Content Protection (HDCP) enforcement is required.
|
| Determines the length of time, in seconds, during which playback will be allowed. Playback will stop upon the expiration of the lease.
|
| Determines whether offline playback is allowed.
|
| Determines the length of time, in seconds, for which playback will be valid.
|
| 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.
|
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: |
noadredir | Disable Ad Redirects |
|
nielsen | Nielsen | Advertises to the DASH player that the manifest may contain Nielsen data encoded within the emsg box. |
Google Widevine
Define a Widevine DRM policy by including parameters that define:
- Content Key Specs: Define what content keys will be returned.
- Policy Overrides: Define the conditions under which playback will be allowed.
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.
-
Track Type: Identifies the type of track (i.e., SD, HD, AUDIO, UHD1, UHD2, ALL_VIDEO, and ALL) to which this policy will be applied.
Learn more.<Info>If you would like to specify all video tracks, please use
ALL_VIDEOinstead ofALL VIDEO.</Info> -
Restriction and Value: Defines the policy that will be applied to the track identified above.
<Info>Both the name of the restriction and its value are case-sensitive.</Info>
Each restriction is described below.
Restriction | Description |
|---|---|
required_output_protection.cgms_flags | Determines whether Copy Generation Management System (CGMS) is required. |
required_output_protection.disable_analog_output | Determines whether analog output is allowed. |
required_output_protection.hdcp | Determines whether HDCP is required. |
required_output_protection.hdcp_srm_rule | Determines whether the device will be required to support a specific version of a System Renewability Message (SRM). |
security_level | Determines the minimum security requirements for performing cryptography, content decoding, and media operations. |
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. |
can_play | Determines whether playback is allowed. |
license_duration_seconds | Determines the length of time, in seconds, during which content playback is allowed. |
playback_duration_seconds | Determines the length of time, in seconds, for which a license will be valid after its initial use. |
rental_duration_seconds | Determines the length of the window, in seconds, during which a license will be valid prior to its initial use. |
Microsoft PlayReady
Define one of the following scopes when specifying PlayReady policy settings:
-
All Tracks: Apply a policy setting to all tracks by excluding the track type from the query string parameter.
Example:
...&pr.can_persist=true -
Track-Specific: Apply a policy setting to a specific tracks by indicating the track type within the query string parameter.
Syntax:
pr.{TrackType}.{Policy}Valid values for TrackType are:
-
audio: Applies the policy to audio tracks.
-
sd: Applies the policy setting to standard definition (576p or less) tracks.
-
hd: Applies the policy setting to high-definition (720p and 1080p) tracks.
-
uhd1: Applies the policy setting to 4K ultra-high-definition video tracks.
-
uhd2: Applies the policy setting to 8K ultra-high-definition video tracks.
Example:
...&pr.hd.can_persist=true
-
<Info>Track-specific policy settings take precedence over policy settings that apply to all tracks.</Info>
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.
|
pr.can_persist | Determines whether offline playback is allowed. |
pr.compressed_digital_audio_protection_level | Determines the minimum security requirements for passing compressed digital audio to the client's digital audio outputs.
This security level is solely provided for testing purposes. Default value: 100 |
pr.digital_video_protection_level | Determines the level of digital video protection that will be required.
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. |
pr.license_duration_seconds | Determines the length of time, in seconds, during which content playback is allowed. |
pr.playback_duration_seconds | Determines the length of time, in seconds, for which playback will be valid. This countdown starts after initial playback. |
pr.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. |
pr.realtime_expiration | Determines whether the current playback session will be stopped upon license expiration. |
pr.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. |
pr.securitylevel | Determines the minimum security requirements for the client device. |
pr.uncompressed_digital_audio_protection_level | Determines the minimum security requirements for passing uncompressed digital audio to the client's digital audio outputs. |
pr.version | Determines the version of the PlayReady license that will be requested. |
Updated 28 days ago
