Live Timeshifting

Let viewers pause, rewind and rejoin a live stream, and the requirements for doing so.

Live Timeshifting

Contact your account manager to enable the Live Timeshifting capability on your account.

The Live Timeshifting capability for HLS allows viewers to fast forward, rewind, or pause/resume for up to one hour from the time they join a live event or a live channel's stream. This capability expands the playback window up to 60 minutes.

Our implementation uses the HLS Playlist Delta Updates standard, which serves historical segments on the media player's initial request and recent changes on subsequent requests. This minimizes the time required to load and maintain a larger playback window for your viewers.

Key information

  • Historical segments exclude ads. Any ads that occurred before the media player joined the stream will be unavailable for playback. However, ads played after the media player joined the stream should be available for replay.

  • If the Live Timeshifting capability is enabled and the hlsver parameter is set to a version lower than 9, then it will be overridden by version 9.

Requirements

The Live Timeshifting capability requires:

  • A media player that supports HLS 9 or higher.

  • A playback URL for a live event or a live channel whose query string includes the hist parameter set to the desired historical playback time in minutes.

Example: hist=50

Sample playback URL:

https://content.uplynk.com/event/abc580a0080e4d438a09c97a54cc7ab1.m3u8?hist=50

Initial and Subsequent Playlist Responses

The initial playlist response for a playback request that meets the above requirements includes:

  • The CAN-SKIP-UNTIL tag, which advertises Delta Updates availability and tells the player how old a segment must be to be skipped.
  • The MEDIA-SEQUENCE tag set to 0, since this is the first response.
  • The full playlist including requested historical playback segments.

Initial Playlist Response Example:

#EXTM3U

#EXT-X-VERSION:9

#EXT-X-PLAYLIST-TYPE:EVENT

#EXT-X-TARGETDURATION:4

#EXT-X-SERVER-CONTROL:CAN-SKIP-UNTIL=36.0

#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:4.00,

fileSequence0.ts

#EXTINF:4.00,

fileSequence1.ts

#EXTINF:4.00,

fileSequence2.ts

#EXTINF:4.00,

fileSequence3.ts

#EXTINF:4.00,

fileSequence4.ts

...

The player decides whether to request a Delta Update by appending the _HLS_SKIP=YES directive to the stream request. When a Delta Update is requested, the server skips old segments and only includes the most recent segments in the manifest. As playback progresses, the server notifies the media player of:

  • The number of segments skipped through the #EXT-X-SKIP tag. This tag replaces all segment URL lines added to the playlist before the skip limit.
  • The number of segments rolled off through the #EXT-X-MEDIA-SEQUENCE tag.
  • Delta Updates availability through the CAN-SKIP-UNTIL tag.

Subsequent Playlist Response Example:

#EXTM3U

#EXT-X-VERSION:9

#EXT-X-PLAYLIST-TYPE:EVENT

#EXT-X-TARGETDURATION:4

#EXT-X-SERVER-CONTROL:CAN-SKIP-UNTIL=36.0

#EXT-X-MEDIA-SEQUENCE:266

#EXT-X-SKIP:SKIPPED-SEGMENTS=527

#EXTINF:4.00,

fileSequence793.ts

#EXTINF:4.00,

fileSequence794.ts

#EXTINF:4.00,

fileSequence795.ts

#EXTINF:4.00,

fileSequence796.ts

...

Did this page help you?