Extended archive window
When you run a live event in MK.IO, the archive window controls how far back viewers can rewind or seek into the recorded stream. MK.IO supports archive windows of up to 7 days, which is useful for multi-day events, nPVR, or catch-up TV scenarios where viewers need access to content long after it aired.
When the archive window is longer than 25 hours, the manifest behaves differently. You need to use filters or manifest URL parameters to control what portion of the archive is returned to the player.
How the manifest works
A manifest is the file a video player fetches to know which segments of video and audio are available. It acts as a table of contents for the stream. The size of the manifest determines how much content the player can see and seek through at any given time.
You set the archive window length when creating a live event. It accepts any value from 1 minute up to 7 days.
Once the live event starts, the manifest grows as new content is recorded. It continues growing until it reaches a maximum size of 25 hours. After that, the manifest becomes a rolling window: it always contains the most recent 25 hours of content, and older segments drop off the front as new ones are added.
The archive window itself still retains content beyond 25 hours (up to 7 days). The 25-hour limit applies only to the manifest returned in a default request. To reach content older than 25 hours, you specify start and end times in the manifest URL. See Accessing content older than 25 hours below.
Controlling manifest size
If your player does not need the entire window in every request, you can narrow it down using filters or manifest URL parameters.
Asset or account filters
Filters let you define a specific time range or track subset that the manifest presents to viewers. For example, you can create a filter that limits the manifest to a 2-hour window, or one that excludes certain audio tracks.
- Asset filters apply to a single asset and last for the lifetime of that asset.
- Account filters apply to any asset in your account and last for the lifetime of the account.
See Create an asset filter or an account filter for instructions.
Manifest URL parameters
You can include start and end parameters directly in the manifest URL to control which portion of the archive the player receives. Both values use ISO 8601 datetime format (UTC).
To return a manifest starting at a specific time up to the live edge:
https://<hostname>/<asset>/index.qfm/manifest(format=m3u8-cmaf,start=<ISO8601>)To return a manifest ending at a specific time:
https://<hostname>/<asset>/index.qfm/manifest(format=m3u8-cmaf,end=<ISO8601>)To return a manifest for a specific time range:
https://<hostname>/<asset>/index.qfm/manifest(format=m3u8-cmaf,start=<ISO8601>,end=<ISO8601>)Replace <ISO8601> with a UTC datetime string such as 2024-06-01T13:15:00.000Z. Replace m3u8-cmaf with the output format your player requires, such as mpd-time-cmaf for DASH.
Accessing content older than 25 hours
Content older than 25 hours is still in the archive, but it is not included in the default manifest. To reach it, specify both start and end times in the manifest URL. Both values must refer to points in the past that fall within your configured archive window.
For example, to retrieve a one-hour segment that started at 13:15 UTC on 1 June 2024:
https://<hostname>/<asset>/index.qfm/manifest(format=m3u8-cmaf,start=2024-06-01T13:15:00.000Z,end=2024-06-01T14:15:00.000Z)When both the start and end are in the past, MK.IO returns a closed playlist covering exactly that time range. The player treats it like a VOD asset: it has a fixed duration and a seek bar, rather than a live edge.
If the requested range falls outside your archive window, MK.IO returns a 404 response.
Manifest types
Depending on the parameters you provide, the returned manifest behaves in one of three ways:
| Type | Description |
|---|---|
| Growing | The start is fixed and the end moves forward with the live edge. The manifest gets longer over time. Use case: start-over, where a viewer joins a program from the beginning while it is still airing. |
| Sliding | Both the start and end move with the live edge. The window duration stays constant. Use case: standard live playback with a fixed rewind buffer. |
| Fixed | Both the start and end are in the past. The manifest does not change. Use case: catch-up or nPVR playback of a completed program. |
Parameter reference
These parameters are placed inside the manifest URL parentheses, not as query string parameters.
| Parameter | Format | Description |
|---|---|---|
start | ISO 8601 datetime | Start of the manifest window. Example: 2024-06-01T13:15:00.000Z |
end | ISO 8601 datetime | End of the manifest window. Example: 2024-06-01T14:15:00.000Z |