Skip to content
Products

URL Format for HLS Access

Description of the URL formats for accessing HLS streams, covering live, time-shifted (DVR), and on-demand (VOD) content.

All URLs are relative to the OTT server: http://<server-address>:<ott-port>. The OTT port is set in the configuration wizard and can be changed in Settings → HTTP Servers.

  • Base path: /<channel_name> (e.g., /discovery)
  • Variant path (multi-bitrate): /<channel_name>/<variant> (e.g., /discovery/1080p)
  • Filenames (default, configurable in HLS Access):
    • index.m3u8: Main access point for both live and on-demand content
      • Without parameters: Streams live content
      • With start parameter: Provides time-shifted content
    • media.m3u8 – Direct access to live content without session creation
    • vod.m3u8 – Direct access to on-demand content without session creation; URL includes start and duration parameters

URL:

Terminal window
/<channel_name>/index.m3u8

or with optional parameters:

Terminal window
/<channel_name>/index.m3u8?start=<time>&duration=<sec>
  • start (optional):
    • Relative: Seconds before now (e.g., -300)
    • Absolute: Unix timestamp (e.g., 1747485787)
  • duration (optional): Playback length in seconds

Examples:

# 5 minutes ago to now
/discovery/index.m3u8?start=-300
# 40-second segment from a timestamp
/discovery/index.m3u8?start=1747485787&duration=40

2.1. Index Playlist with Embedded Timestamp (Flussonic-like behavior)

Section titled “2.1. Index Playlist with Embedded Timestamp (Flussonic-like behavior)”

Alternative syntax where parameters are embedded in the filename instead of query string. Both index- and archive- prefixes are supported for compatibility with Flussonic-like behavior.

URL:

Terminal window
/<channel_name>/index-<timestamp>-<duration>.m3u8

or

Terminal window
/<channel_name>/archive-<timestamp>-<duration>.m3u8
  • timestamp: Unix timestamp (e.g., 1747485787)
  • duration: Playback length in seconds (use now for unlimited/live)

Examples:

# 15-minute segment from specific timestamp
/discovery/index-1747485787-900.m3u8
# Live stream from specific timestamp (increased constantly)
/discovery/index-1747485787-now.m3u8
# Same using `archive-` prefix
/discovery/archive-1747485787-900.m3u8

URL:

Terminal window
/<channel_name>/<variant>/media.m3u8
  • Streams current live segments
  • No query parameters
  • Use variant path for multi-bitrate playback

URL:

Terminal window
/<channel_name>/<variant>/vod.m3u8?start=<time>&duration=<sec>
  • start: Relative or absolute
  • duration: Required

Examples:

# 30s clip from 100s ago for SD variant
/discovery/sd/vod.m3u8?start=-100&duration=30
# 30s clip from timestamp using variant
/discovery/hd/vod.m3u8?start=1747485787&duration=30

ParameterTypeDescription
startrelative/absolutePlayback start time (offset or Unix time)
durationsecondsLength of playback

CodeDescription
400Invalid URL or parameters. For example, vod.m3u8 without start and duration
403Access denied by authorization
404Channel not found or not running
410Media data is not ready yet
425Playlist is not ready yet. Wait a few seconds after channel start or restart
  • Access: Public by default. Enable authentication if needed.

  • Pause/Seek:

    • Index: Limited rewind
    • VOD: Full seek within requested range
  • Multi-bitrate:

    • index.m3u8 lists available variants
    • media.m3u8 and vod.m3u8 URLs with the variant name force a specific variant. index.m3u8 is available only without variant
  • Archive: Access to VOD or time-shifted index requires archive to be enabled (Storage must be assigned in channel settings)