Skip to content

Custom DASH manifest tags

Stefano Gottardo edited this page Sep 23, 2024 · 4 revisions

To workaround to some limitations, are supported some custom tags that are not part of the DASH specifications, that can be used to change/override some manifest behaviours, or in general the playback. To modify a DASH manifest you will have to use a proxy server in your add-on, see wiki page of "custom manifest and license".

Tags to override media flags properties of the streams

These tags allow to set "flags" properties to the audio / subtitles streams. This will change the behaviour in how Kodi will select the tracks when playback starts based on user Kodi settings (read also Audio Subtitles track properties).

Audio tags

Each property accept true or false value, and must be set in AdaptationSet tag:

  • default: Set the track as default (for cases above)
  • original: Set the track as original language
  • impaired: Set the track for impaired

Example:

<AdaptationSet lang="fr" contentType="audio" mimeType="audio/mp4" impaired="false" original="true" default="false">

Subtitles tags

Each property accept true or false value, and must be set in AdaptationSet tag:

  • default: Set the track as default (for cases above)
  • forced: Set the track as forced subtitle
  • impaired: Set the track for impaired

Example:

<AdaptationSet lang="fr" codecs="wvtt" contentType="text" mimeType="text/vtt" impaired="false" forced="true" default="false">

Tags to force enable/disable secure decoder

Refer to same setting of add-on expert setting.

The secure decoder can be disabled from the add-on expert settings, but its a global setting that affect all videos that you play. To avoid that the global setting affect your add-on you can use following tag to override the expert user setting (as alternative of the DRM configuration property).

To override the secure decoder setting, in to an AdaptationSet tag add inside the ContentProtection, add a child tag widevine:license that contains the attribute robustness_level.

The robustness_level attribute can contains a string with value:

  • HW_SECURE_CODECS_REQUIRED to enable secure decoder
  • HW_SECURE_CODECS_NOT_ALLOWED to disable secure decoder [Kodi v22 or above]
  • Empty value (or remove the tag) to not affect the user setting

Note: despite tag its added inside an AdaptationSet currently it does not matter on which stream, because it is applied to the whole Period.

Example:

...
<AdaptationSet>
  <ContentProtection>
    <widevine:license robustness_level="HW_SECURE_CODECS_REQUIRED" />
    ...
  </ContentProtection>
  ...
Clone this wiki locally