Overriding stream parameters is optional.
It's available if you want the player or application to override:
- A default value of a stream creation parameter
- The selection or default order of variants when the HLS or DASH playlist is requested.
You can pass these parameters from the player or app for IMA SDK, Server-Side Beaconing (SSB), and DAI API implementations.
Override variant selection and order
The default playlist order is determined by the publisher. If no ordering parameters are specified, the playlists are returned in the original order, as returned by the publisher.
You can override the variant selection and order parameters specified during stream creation. This allows you to specify the subset of variants included in the response to a master playlist request and determine the order of those variants. This may be useful if you would like a specific variant to take precedence over another based on the user consuming the content.
The subset and order of variants remain the same for the life of the stream. The parameters are accepted either as part of the adTagParameters structure when using the IMA SDK, DAI API parameters, or as additional HTTP GET
parameters when using SSB.
Parameter | Streaming protocol | Description | Examples |
---|---|---|---|
dai-aor |
HLS, DASH |
The range of bandwidths for audio variants to be returned.
|
|
dai-dlid |
HLS, DASH |
When you create a CDN configuration for your video asset, define a default CDN configuration, and additional CDN delivery settings. This allows you to set up more than one CDN and dynamically choose which you'd like to serve at the start of a session using a key-value. Once you set up and save your CDN configurations, Ad Manager assigns a name to each. This name should be passed into the stream create request as a value of the If no name is passed into the request, Ad Manager uses the default CDN. Note: |
( |
dai-excl |
HLS, DASH | Renditions to be excluded from the playlist. Supports subtitles , codec , audio-lang , subtitle-lang , iframe , and resolution . You can exclude resolution, audio codecs, video codecs, and audio and/or subtitle languages using a single value or a comma-separated list of multiple values. Codec prefix is also supported with suffix "*", which excludes all renditions with codec with the provided prefix. |
Single codec Multiple codecs Prefix codec Single language audio Single language subtitle Multiple selections Resolution |
dai-os |
HLS | The video variant bandwidth to be placed at the top of the master playlist. The variant closest in value to startBandwidth is selected. If two values are equidistant, the lowest value is selected. When this param is provided, and dai-aor is not, all audio-only variants are excluded. |
dai-os=1700000 |
dai-ot |
HLS |
The order type information describing the type of values specified by If the |
dai-ot=bw dai-ot=bw_res |
dai-ov |
HLS |
Comma-separated values specifying order of media playlists to be returned. Must be used together with If multiple variants with the same order value are present (for example, two variants of the same bandwidth but different resolutions), the original order is maintained among those variants. |
|
dai-sr |
HLS, DASH |
The range of bandwidths for video variants to be returned. To select all higher bandwidths, only specify the The bandwidth enforcement is for video content only.
|
dai-sr=1300000:2500000 |
Other override parameters
Parameter | Streaming protocol | Description | Examples |
---|---|---|---|
dai-ah |
HLS, DASH | Specifies whether a live stream should have ad holiday applied or not. An ad holiday duration must be specified in the live stream configuration. | Enable ad holiday:dai-ah=1 |
dai-apto (Beta) |
HLS, DASH |
The ad pod decisioning timeout for VOD and live stream creates, in milliseconds. This value is used for all blocking ad decisioning at stream create time – mid-break and past break decisions for linear, and VMAP decisions for VOD. For past ad breaks, it's only available when using EVENT type playlists or the dai-dpb parameter. This can be set to any value greater than 0, and less than or equal to 10000.
Setting a very low or high value could impact ad fill or user experience. |
dai-apto=4000 |
dai-dpb |
HLS, DASH |
Specifies whether to enable past break decisioning for non-SSB linear streams (the parameter is ignored for SSB streams). If enabled, past breaks are decided with mid break decisions. This might impact startup latency, which you can control with the Past breaks will go unviewed unless the user rewinds and this might increase code served counts. |
Enable past break decisioning:dai-dpb=true Disable past break decisioning for HLS EVENT type playlists: dai-dpb=false |
dai-dvr |
HLS, DASH | The DVR duration (in seconds) of live content and ads that the user can scroll back and maintain seamless playback.
The current default for this value is 100 seconds, or the value that is specified during live stream setup. However, a new maximum can be specified for each live stream, up to 100 seconds for SSB, or 1800 seconds when using the SDK or API. If you want a larger DVR duration, contact your account manager. Guidance and usageThe actual DVR duration of the playlist being returned may be slightly more or less depending on the duration of the underlying segments. It may also be slightly different across variants. The maximum value of the actual window should not be greater than the DVR window value specified in the event. If it is, the value will be capped automatically. DVR windows for SSB streams are also capped to a lower value compared to SDK or Public API streams. While we do our best to return a compatible manifest, specifying a very small or large value can cause issues in playback. Playback should be thoroughly tested with the desired DVR window duration to ensure everything is working properly. Avoid using differing windows across devices. Specifying a window size of 30 seconds for one device versus 31 seconds, or 35 seconds for other devices is not suitable for performance. Instead, use buckets of windows (for example, 35 seconds for one set of devices, 10 minutes for another set, and so on). This allows for more efficient resource allocation and performance. |
dai-dvr=60 |
dai-emsgv |
HLS |
The Event Message version is a stream create parameter that allows callers to specify the "emsg" versions for Common Media Application Format (CMAF) content. The HLS standard requires "emsg" version 1. This setting is useful for platforms that do not support the standard version 1 and need version 0, such as Roku.
|
dai-emsgv=1 |
dai-pre (Beta) |
HLS, DASH | Specifies whether a live stream with pre-roll enabled should show pre-roll instead of mid-roll in the case where they overlap. The default behavior shows the overlapping mid-roll instead of the pre-roll. | dai-pre=1 |
dai-ad-dlid (Beta) |
HLS, DASH |
Specifies the unique name of an external CDN that you've pre-configured in Google Ad Manager for the purposes of delivering ads to a live stream. Learn more about delivering ads through external CDNs. |
( |
dai-aup (Beta) |
HLS, DASH |
Specifies an arbitrary URL prefix that points to an external CDN used to construct ad segment URLs for the purposes of delivering ads to a live stream. Learn more about delivering ads through external CDNs. |
dai-aup=https://domain.com/path-c1/path-c2 |
Parameter override examples
Request
https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-ot=bw&dai-ov=2025837,1406061
Response
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2025837,RESOLUTION=960x540,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/2025837.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/1406061.m3u8
Request
https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-ot=bw&dai-ov=audio,1406061
Response
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000,RESOLUTION=480x270,CODECS="mp4a.40.2"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/audio.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/1406061.m3u8
Request
https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-ot=bw_res&dai-ov=1400000:640x360,audio
Response
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/1406061.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000,RESOLUTION=480x270,CODECS="mp4a.40.2"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/audio.m3u8
Request
https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-sr=1300000:2500000&dai-aor=60000
Response
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/1406061.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2025837,RESOLUTION=960x540,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/2025837.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000,RESOLUTION=480x270,CODECS="mp4a.40.2"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/audio.m3u8
Request
https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-os=1700000
Response
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/1406061.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2025837,RESOLUTION=960x540,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/2025837.m3u8
Original manifest with subtitles
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",LANGUAGE="en",NAME="English",AUTOSELECT=YES,URI="tt-en.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",LANGUAGE="de",NAME="Deutsch",AUTOSELECT=YES,URI="tt-de.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="stereo",LANGUAGE="en",NAME="English",DEFAULT=YES,AUTOSELECT=YES,URI="audio.m3u8"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=889549,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f" SUBTITLES="subs"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/889549.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f" SUBTITLES="subs"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/2025837.m3u8
Request
https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-excl=subtitles
Response
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="stereo",LANGUAGE="en",NAME="English",DEFAULT=YES,AUTOSELECT=YES,URI="audio.m3u8"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=889549,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f" SUBTITLES="subs"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/889549.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f" SUBTITLES="subs"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/2025837.m3u8
Original manifest with ac-3, eac-3
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=6107776,RESOLUTION=1920x1080,CODECS="avc1.640028,ec-3",AUDIO="AUDIO-EAC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/6107776.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2212301,RESOLUTION=960x540,CODECS="avc1.640028,ec-3",AUDIO="AUDIO-EAC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2212301.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=6295776,RESOLUTION=1920x1080,CODECS="ac-3,avc1.640028",AUDIO="AUDIO-AC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/6295776.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2400301,RESOLUTION=960x540,CODECS="ac-3,avc1.640028",AUDIO="AUDIO-AC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2400301.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=6045381,RESOLUTION=1920x1080,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/6045381.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2149906,RESOLUTION=960x540,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2149906.m3u8
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-eac3.m3u8",GROUP-ID="AUDIO-EAC3",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-ac3.m3u8",GROUP-ID="AUDIO-AC3",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-aac.m3u8",GROUP-ID="AUDIO-AAC",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES
Exclude one codec
Request
http://truman.com/ssai/event/<event_code>/master.m3u8?dai-excl=codec:ec-3
Response
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=6295776,RESOLUTION=1920x1080,CODECS="ac-3,avc1.640028",AUDIO="AUDIO-AC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/6295776.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2400301,RESOLUTION=960x540,CODECS="ac-3,avc1.640028",AUDIO="AUDIO-AC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2400301.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=6045381,RESOLUTION=1920x1080,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/6045381.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2149906,RESOLUTION=960x540,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2149906.m3u8
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-ac3.m3u8",GROUP-ID="AUDIO-AC3",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-aac.m3u8",GROUP-ID="AUDIO-AAC",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES
Exclude multiple codecs
Request
http://truman.com/ssai/event/<event_code>/master.m3u8?dai-excl=codec:ec-3,codec:ac-3
Response
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=6045381,RESOLUTION=1920x1080,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/6045381.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2149906,RESOLUTION=960x540,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2149906.m3u8
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-aac.m3u8",GROUP-ID="AUDIO-AAC",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES