Playback URLs & manifest caching
This page gives the exact HLS playback URL for a live stream, how to embed it in a player, and why manifests and segments are cached differently. Playback is delivered and cached by CDN PoPs through the stream's backing property — not by the live PoP directly. Replace <key> with your stream's 10-character emission point, shown on the Endpoints tab in your dashboard.
Playback URLs
| Format | URL |
|---|---|
| HLS | https://<key>.prdrm.net/master.m3u8 |
The HLS URL is available on every stream. master.m3u8 is a multi-bitrate master playlist: it lists every rendition attached to the stream, so players switch quality automatically.
Play from <key>.prdrm.net. Do not point viewers at the ingest host <key>.live.prdrm.net — that goes to the live PoP (SRS ingest), bypasses the CDN, and is for publishing only. See Live streaming overview.
Embedding in a player
The URL works with hls.js and native players. CORS is enabled on the backing property (Access-Control-Allow-Origin: *), so browser players can fetch the manifest and segments cross-origin.
HLS with hls.js
<video id="video" controls></video>
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<script>
const url = "https://YOUR_KEY.prdrm.net/master.m3u8";
const video = document.getElementById("video");
if (Hls.isSupported()) {
const hls = new Hls();
hls.loadSource(url);
hls.attachMedia(video);
} else if (video.canPlayType("application/vnd.apple.mpegurl")) {
// Native HLS (Safari, iOS)
video.src = url;
}
</script>
Manifest vs. segment caching
The backing property ships with system cache rules tuned for live. The split between a short manifest TTL and a longer segment TTL is what keeps playback smooth:
| What | Pattern | TTL | Why |
|---|---|---|---|
| Manifests | ~* \.m3u8$ | 2s | The live edge advances every segment, so manifests change constantly and must stay fresh. |
| Segments | ~* \.(ts|m4s)$ | 10s | Segments are immutable within the rolling window, so they can be held a bit longer. |
Manifests must stay fresh because the live edge advances every segment — over-caching a manifest stalls playback. Caching segments longer than needed gains nothing because they are immutable within the rolling window. Keep the 2s manifest / 10s segment split.
These are system rules on the managed backing property. To inspect them, open the property from the stream's Endpoints tab. Treat them as the template for any custom streaming cache rules you write elsewhere — see HLS rule examples for the actual rule definitions.
CORS
A system header rule sets Access-Control-Allow-Origin: * on responses so browser-based players (hls.js and friends) can fetch the manifest and segments from any origin. No extra configuration is needed for web playback.
Next steps
- Live streaming overview — the end-to-end model and stream lifecycle.
- HLS rule examples — the cache rules behind live delivery.