Metadata Events

This API call allows developers to listen for metadata embedded in the media file (e.g. dimensions or ID3 timed metadata in HLS streams).


.on('meta')

Triggered when playback enters the time range where new metadata becomes active. Metadata can be returned in one of the following formats listed below.

Date range

Fires when playback enters the section of an HLS stream tagged with #EXT-X-DATERANGE

{
    "type": "meta",
    "metadataType": "date-range",
    "metadataTime": 10,
    "metadata": {
        "tag": "EXT-X-DATERANGE",
        "content": "ID=309726842,PLANNED_DURATION=30.000,START_DATE=2018-10-30 20:45:29.216158+00:00,SCTE35-OUT=TBD",
        "attributes": [{
                "name": "ID",
                "value": "309726842"
            },
            {
                "name": "PLANNED_DURATION",
                "value": 30
            },
            {
                "name": "START_DATE",
                "value": "2018-10-30 20:45:29.216158+00:00"
            },
            {
                "name": "SCTE35-OUT",
                "value": "TBD"
            }
        ],
        "start": 10,
        "end": 40,
        "startDate": "2018-10-30 20:45:29.216158+00:00",
        "endDate": null,
        "duration": 30.0
    }
}
ValueDescription
metadata objectObject containing all of the information relevant to the HLS #EXT-X-DATERANGE tag

See: Date range metadata object (meta)
metadataTime numberStart time, in seconds, of the metadata cue
metadataType stringSubcategory of meta event

This is always date-range for this event subcategory.
type stringCategory of player event

This is always meta for this event.

Date range metadata object (meta)
ValueDescription
attributes arrayEXT-X-DATERANGE:<attribute-list>
content stringContent following the HLS tag
duration numberDuration of the EXT-X-DATERANGE
end numberEnd time of the cue in seconds, relative to currentTime of stream
endDate stringEXT-X-DATERANGE end date in UTC
start numberStart time of the cue in seconds, relative to currentTime of stream
startDate stringEXT-X-DATERANGE start date in UTC
tag stringName of the HLS manifest tag

This is always EXT-X-DATERANGE for this event.

EMSG metadata

Fires when the meta event is happening in conjunction with meta start time

{
    "type": "meta",
    "metadataType": "emsg",
    "metadataTime": 1594650340,
    "metadata": {
        "metadataType": "emsg",
        "id": 159465034,
        "schemeIdUri": "urn:scte:scte35:2013:xml",
        "timescale": 90000,
        "presentationTimeOffset": 900000,
        "duration": 900000,
        "start": 1594650340,
        "end": 1594650350,
        "messageData": {
            "0": 60,
            "1": 83,
            "2": 112,
            "3": 108,
            ...	
            "386": 62
        }
    }
}
ValueDescription
metadata objectObject containing all of the information relevant to the HLS #EXT-X-DATERANGE tag

See: meta emsg metadata object
metadataTime numberStart time, in seconds, of the metadata cue
metadataType stringSubcategory of meta event

This is always emsg for this event subcategory.
type stringCategory of player event

This is always meta for this event.
meta emsg metadata
ValueDescription
duration numberDuration of the EXT-X-DATERANGE
end numberEnd time of the cue in seconds, relative to currentTime of stream
id numberField identifying this instance of the message
messageData arrayBody of the message
metadataType stringSubcategory of meta event

This is always emsg for this event subcategory.
presentationTimeOffset numberOffset that the event starts, relative to the start of the segment this is contained in (in units of timescale)
start numberStart time of the cue in seconds, relative to currentTime of stream
schemeIdUri stringIdentifies the message scheme
timescale numberProvides the timescale, in ticks per second

ID3 metadata

Fires when playback enters the section of an HLS stream containing ID3 tags

{
  "type": "meta",
  "metadataType": "id3",
  "metadataTime": 0,
  "metadata": {
    ...          
  }
}
ValueDescription
metadata objectObject containing all of the information relevant to the HLS ID3 tag
metadataTime numberStart time, in seconds, of the metadata cue
metadataType stringSubcategory of meta event

This is always id3 for this event subcategory.
type stringCategory of player event

This is always meta for this event.

Media metadata

Fires when the initial metadata of a video has loaded

{
  "type": "meta",
  "metadataType": "media",
  "duration": 60,
  "height": 1280,
  "width": 720,
  "seekRange": {
    "start": 0,
    "end": 60
  }
}
ValueDescription
duration numberLength of the media asset
height numberHeight dimension of the media asset
metadataTypeΒ stringSubcategory of meta event

This is always media for this event subcategory.
seekRange objectTime range representing how much video is available to buffer in live stream or for seeking in DVR

See: meta media seekRange object
type stringCategory of player event

This is always meta for this event.
width numberWidth dimension of the media asset
meta media seekRange
ValueDescription
end numberEnd time of the time range in seconds, relative to currentTime of stream
start numberStart time of the time range in seconds, relative to currentTime of stream

Program-date-time metadata

Fires when playback enters the section of an HLS stream tagged with #EXT-X-PROGRAM-DATE-TIME

{
  "type": "meta",
  "metadataType": "program-date-time",
  "programDateTime": "2018-09-28T16:50:46Z",
  "metadataTime": 19.9,
  "metadata": {
    "programDateTime": "2018-09-28T16:50:46Z",
    "start": 19.9,
    "end": 29.9
  }
}
ValueDescriptionType
metadataObject containing all of the information relevant to the HLS #EXT-X-PROGRAM-DATE-TIME tag

end: (Number) End time of the cue in seconds, relative to currentTime of stream

programDateTime: (String) Date and time of the program metadata in UTC

start: (Number) Start time of the cue in seconds, relative to currentTime of stream
Object
metadataTimeStart time, in seconds, of the metadata cueNumber
metadataTypeSubcategory of meta event

This is always program-date-time for this event subcategory.
String
programDateTimeDate and time of the program metadata in UTCString
typeCategory of player event

This is always meta for this event.
String

SCTE-35 metadata

Fires when playback enters a section of an HLS stream tagged with #EXT-X-CUE-OUT, #EXT-X-CUE-IN

{
  "type": "meta",
  "metadataType": "scte-35",
  "metadataTime": 10,
  "metadata": {
    "tag": "EXT-X-CUE-OUT",
    "content": "...",
    "start": 10,
    "end": 40
  }
}
ValueDescriptionType
metadataObject containing all of the information relevant to the HLS #EXT-X-CUE-OUT, #EXT-X-CUE-IN tags

content: (String) Content following the HLS manifest tag

end: (Number) End time of the cue in seconds, relative to currentTime of stream

start: (Number) Start time of the cue in seconds, relative to currentTime of stream

tag: (String) Name of the HLS manifest tag
This is always EXT-X-CUE-OUT or EXT-X-CUE-IN for this event.
Object
metadataTimeStart time, in seconds, of the metadata cueNumber
metadataTypeSubcategory of meta event

This is always scte-35 for this event subcategory.
String
typeCategory of player event

This is always meta for this event.
String

Unknown metadata

Indicates that a meta event from a third-party media provider or legacy Flash has fired

{
  "type": "meta",
  "metadataType": "unknown",
  ...
}
ValueDescriptionType
metadataTypeSubcategory of meta event

This is always unknown for this event subcategory.
String
typeCategory of player event

This is always meta for this event.
String

.on('metadataCueParsed')

Triggered once the metadata cue point is buffered

Date range metadata

Fires when the player buffers a section of an HLS stream tagged with #EXT-X-DATERANGE

{
  "type": "metadataCueParsed",
  "metadataType": "date-range",
  "metadataTime": 10,
  "metadata": {
    "tag": "EXT-X-DATERANGE",
    "content": "ID=309726842,PLANNED_DURATION=30.000,START_DATE=2018-10-30 20:45:29.216158+00:00,SCTE35-OUT=TBD",
    "attributes": [
      {
        "name": "ID",
        "value": "309726842"
      },
      {
        "name": "PLANNED_DURATION",
        "value": 30
      },
      {
        "name": "START_DATE",
        "value": "2018-10-30 20:45:29.216158+00:00"
      },
      {
        "name": "SCTE35-OUT",
        "value": "TBD"
      }
    ],
    "start": 10,
    "end": 40,
    "startDate": "2018-10-30 20:45:29.216158+00:00",
    "endDate": null,
    "duration": 30.0
  }     
}
ValueDescriptionType
metadataObject containing all of the information relevant to the HLS #EXT-X-DATERANGE tag

attributes: (Array) EXT-X-DATERANGE:<attribute-list>

content: (String) Content following the HLS tag

duration: (Number) Duration of the EXT-X-DATERANGE

end: (Number) End time of the cue, in seconds, relative to currentTime of stream

endDate: (String) EXT-X-DATERANGE end date in UTC

start: (Number) Start time of the cue, in seconds, relative to currentTime of stream

startDate: (String) EXT-X-DATERANGE start date in UTC

tag: (String) Name of the HLS manifest tag
This is always EXT-X-DATERANGE for this event.
Object
metadataTimeStart time, in seconds, of the metadata cueNumber
metadataTypeSubcategory of meta event

This is always date-range for this event subcategory.
String
typeCategory of player event

This is always metadataCueParsed for this event.
String

EMSG metadata (metadataCueParsed)

{
    "type": "metadataCueParsed",
    "metadataType": "emsg",
    "metadataTime": 1594650340,
    "metadata": {
        "metadataType": "emsg",
        "id": 159465034,
        "schemeIdUri": "urn:scte:scte35:2013:xml",
        "timescale": 90000,
        "presentationTimeOffset": 900000,
        "duration": 900000,
        "start": 1594650340,
        "end": 1594650350,
        "messageData": {
            "0": 60,
            "1": 83,
            "2": 112,
            "3": 108,
            ...	
            "386": 62
        }
    }
}
ValueDescription
metadata objectObject containing all of the information relevant to the HLS #EXT-X-DATERANGE tag

See: metadata object
metadataTime numberStart time, in seconds, of the metadata cue
metadataType stringSubcategory of meta event

This is always emsg for this event subcategory.
type stringCategory of player event

This is always metadataCueParsed for this event.
metadataCueParsed emsg metadata object
ValueDescription
duration numberDuration of the EXT-X-DATERANGE
end numberEnd time of the cue in seconds, relative to currentTime of stream
id numberField identifying this instance of the message
messageData arrayBody of the message
metadataType stringSubcategory of meta event

This is always emsg for this event subcategory.
presentationTimeOffset numberOffset that the event starts, relative to the start of the segment this is contained in (in units of timescale)
start numberStart time of the cue in seconds, relative to currentTime of stream
schemeIdUri stringIdentifies the message scheme
timescale numberProvides the timescale, in ticks per second

ID3 metadata

Fires when playback buffers a section of an HLS stream containing ID3 tags

{
  "type": "metadataCueParsed",
  "metadataType": "id3",
  "metadataTime": 0,
  "metadata": {
    ...          
  }
}
ValueDescriptionType
metadataObject containing all of the information relevant to the HLS ID3 tagObject
metadataTimeStart time, in seconds, of the metadata cueNumber
metadataTypeSubcategory of meta event

This is always id3 for this event subcategory.
String
typeCategory of player event

This is always metadataCueParsed for this event.
String

Program-date-time metadata

Fires when the player buffers a section of an HLS stream tagged with #EXT-X-PROGRAM-DATE-TIME

{
  "type": "metadataCueParsed",
  "metadataType": "program-date-time",
  "programDateTime": "2018-09-28T16:50:46Z",
  "metadataTime": 19.9,
  "metadata": {
    "programDateTime": "2018-09-28T16:50:46Z",
    "start": 19.9,
    "end": 29.9
  }
}
ValueDescriptionType
metadataObject containing all of the information relevant to the HLS #EXT-X-PROGRAM-DATE-TIME tag

end: (Number) End time of the cue, in seconds, relative to currentTime of stream

programDateTime: (String) Date and time of the program metadata in UTC

start: (Number) Start time of the cue, in seconds, relative to currentTime of stream
Object
metadataTimeStart time, in seconds, of the metadata cueNumber
metadataTypeSubcategory of meta event

This is always program-date-time for this event subcategory.
String
programDateTimeDate and time of the program metadata in UTCString
typeCategory of player event

This is always metadataCueParsed for this event.
String

SCTE-35 metadata

Fires when the player buffers a section of an HLS stream tagged with #EXT-X-CUE-OUT, #EXT-X-CUE-IN

{
  "type": "metadataCueParsed",
  "metadataType": "scte-35",
  "metadataTime": 10,
  "metadata": {
    "tag": "EXT-X-CUE-OUT",
    "content": "...",
    "start": 10,
    "end": 40
  }
}
ValueDescriptionType
metadataObject containing all of the information relevant to the HLS #EXT-X-CUE-OUT, #EXT-X-CUE-IN tags

content: (String) Content following the HLS manifest tag

end: (Number) End time of the cue, in seconds, relative to currentTime of stream

start: (Number) Start time of the cue, in seconds, relative to currentTime of stream

tag: (String) Name of the HLS manifest tag
This is always EXT-X-CUE-OUT or EXT-X-CUE-IN for this event.
Object
metadataTimeStart time, in seconds, of the metadata cueNumber
metadataTypeSubcategory of meta event

This is always scte-35 for this event subcategory.
String
typeCategory of player event

This is always metadataCueParsed for this event.
String