Hls.js: Support EXT-X-DATERANGE

Created on 9 Apr 2019  路  2Comments  路  Source: video-dev/hls.js

In WWDC2016[1] Apple announced In-Playlist Timed Metadata as an alternative to ID3 Timed Metadata. As far as I understood, the main idea is to use the m3u8 tag EXT-X-DATERANGE to describe the timed metadata in plain text on the playlist file, outside the video stream.

I think it would be great to have this feature implemented in the hls.js library, because that way it will no longer be necessary to use the Apple-only mediafilesegmenter tool to inject timed ID3 into video streams.

[1] https://developer.apple.com/videos/play/wwdc2016/504/

Feature proposal metadata

Most helpful comment

Will do

All 2 comments

Will do

I removed the milestone for this as I think we can get it into a minor release or v1.0.0. There isn't much of a difference.

Sample streams are welcome!

It would be helpful to know if anyone has seen this metadata surface as DataCues in metadata TextTracks in Safari (as ID3 does). I heard that was introduced in a recent release but still haven't seen it myself. The goal for this work would be to surface EXT-X-DATERANGE the same way Safari does.

You can get at this information now in hls.js via hls.levels[].details.fragments[].tagList[]['EXT-X-DATERANGE', AttributesString] which you can get with accurate timing as early as the first FRAG_BUFFERED event . You just have to parse the attributes yourself.

Was this page helpful?
0 / 5 - 0 ratings