playManifest — Adaptive Streaming - Content Management
playManifest — Adaptive Streaming
The playManifest endpoint is the primary way to get playback URLs for video and audio entries. It returns streaming manifests (HLS, DASH) or redirects to direct file URLs.
URL pattern:
https://cdnapisec.kaltura.com/p/\{PARTNER_ID\}/sp/\{PARTNER_ID\}00/playManifest/entryId/\{ENTRY_ID\}/format/\{FORMAT\}/protocol/https
Parameters are path-based key/value pairs (not query string), though query parameters are also accepted.
Core Parameters
| Parameter | Short | Type | Description |
|---|---|---|---|
entryId | e | string | Entry ID to play |
format | f | string | Delivery format (see table below) |
protocol | pt | string | Media protocol for URLs inside manifest: http, https |
ks | — | string | Kaltura Session (also accepted via X-Kaltura-Ks header) |
Format Values
| Value | Description | Use Case |
|---|---|---|
applehttp | HLS (Apple HTTP Live Streaming) | Most common — works on all modern browsers and mobile |
mpegdash | MPEG-DASH | Alternative adaptive format (Widevine DRM) |
url | Single progressive URL (redirect) | Simple <video> embed, no adaptive bitrate |
download | Download URL (redirect with Content-Disposition) | Download buttons, offline access |
hds | Adobe HTTP Dynamic Streaming | Legacy Flash-based players |
sl | Microsoft Smooth Streaming (Silverlight) | Legacy Silverlight players |
hdnetworkmanifest | Akamai HDS manifest | Akamai-specific delivery |
rtmp | RTMP streaming | Legacy real-time streaming |
auto | Auto-detect best format | Let the server choose |
Flavor Selection Parameters
| Parameter | Short | Type | Description |
|---|---|---|---|
flavorId | fi | string | Single flavor asset ID |
flavorIds | fs | string | Comma-separated flavor asset IDs |
flavorParamId | fp | int | Single flavor params ID |
flavorParamIds | fps | string | Comma-separated flavor params IDs |
tags | t | string | Comma-separated flavor tags to filter by |
When no flavor selection parameters are provided, the server selects flavors based on format-specific tag defaults:
- HLS/DASH:
applembr→ipadnew,iphonenew→ipad,iphone - Progressive HTTP:
mbr→web
Bitrate Control
| Parameter | Short | Type | Description |
|---|---|---|---|
preferredBitrate | pb | int | Preferred bitrate in kbps |
maxBitrate | mb | int | Maximum bitrate cap in kbps |
minBitrate | mib | int | Minimum bitrate floor in kbps |
Business scenario — bandwidth-constrained delivery: A mobile app on a cellular connection caps maxBitrate=1500 to prevent buffering, while a smart TV app on fiber sets minBitrate=3000 for quality.
Clipping and Seeking
| Parameter | Short | Type | Description |
|---|---|---|---|
seekFrom | sf | int | Start playback from this point (milliseconds) |
clipTo | ct | int | End playback at this point (milliseconds) |
Business scenario — content preview: An e-commerce site shows 30-second previews of product videos. The playManifest URL includes clipTo=30000 to limit playback without creating separate clips.
Player and Session Parameters
| Parameter | Short | Type | Description |
|---|---|---|---|
uiConfId | ui | int | Player UI configuration ID |
sessionId | — | string | Playback session ID for analytics |
playSessionId | — | string | Play session tracking |
playbackContext | pc | string | Playback context string |
referrer | r | string | Base64-encoded referrer URL for access control |
responseFormat | — | string | Response format: redirect (default), f4m, m3u8, jsonp |
Delivery and CDN Parameters
| Parameter | Short | Type | Description |
|---|---|---|---|
cdnHost | ch | string | Override CDN hostname |
storageId | si | int | Serve from a specific remote storage |
deliveryProfileId | — | int | Use a specific delivery profile |
deliveryProfileIds | — | string | Comma-separated delivery profile IDs |
deliveryCode | dc | string | Delivery code identifier |
Audio and Caption Parameters
| Parameter | Type | Description |
|---|---|---|
defaultAudioLang | string | Default audio language code |
muxedAudioLang | string | Muxed audio track language |
tracks | string | Track selection string |
disableCaptions | bool | Suppress caption tracks from manifest |
Sequence / Multi-Entry Playback
| Parameter | Type | Description |
|---|---|---|
sequence | string | Comma-separated entry IDs for multi-entry sequence playback (HLS/DASH only) |
Security Parameters
| Parameter | Short | Type | Description |
|---|---|---|---|
expiry | ex | int | URL token expiry (Unix timestamp) |
kt | — | string | Kaltura URL token (pre-signed URL verification) |
hashes | — | string | Access control hash verification |
Examples
# HLS streaming (most common)
https://cdnapisec.kaltura.com/p/$KALTURA_PARTNER_ID/sp/$\{KALTURA_PARTNER_ID\}00/playManifest/entryId/$KALTURA_ENTRY_ID/format/applehttp/protocol/https
# MPEG-DASH streaming
https://cdnapisec.kaltura.com/p/$KALTURA_PARTNER_ID/sp/$\{KALTURA_PARTNER_ID\}00/playManifest/entryId/$KALTURA_ENTRY_ID/format/mpegdash/protocol/https
# Progressive download (single MP4)
https://cdnapisec.kaltura.com/p/$KALTURA_PARTNER_ID/sp/$\{KALTURA_PARTNER_ID\}00/playManifest/entryId/$KALTURA_ENTRY_ID/format/url/protocol/https
# Download with specific flavor
https://cdnapisec.kaltura.com/p/$KALTURA_PARTNER_ID/sp/$\{KALTURA_PARTNER_ID\}00/playManifest/entryId/$KALTURA_ENTRY_ID/format/download/protocol/https/flavorParamIds/0
# With access control (append KS)
https://cdnapisec.kaltura.com/p/$KALTURA_PARTNER_ID/sp/$\{KALTURA_PARTNER_ID\}00/playManifest/entryId/$KALTURA_ENTRY_ID/format/applehttp/protocol/https/ks/$KALTURA_KS
# 30-second preview clip
https://cdnapisec.kaltura.com/p/$KALTURA_PARTNER_ID/sp/$\{KALTURA_PARTNER_ID\}00/playManifest/entryId/$KALTURA_ENTRY_ID/format/applehttp/protocol/https/clipTo/30000
# Capped at 1500kbps maximum bitrate
https://cdnapisec.kaltura.com/p/$KALTURA_PARTNER_ID/sp/$\{KALTURA_PARTNER_ID\}00/playManifest/entryId/$KALTURA_ENTRY_ID/format/applehttp/protocol/https/maxBitrate/1500
# With referrer for domain restriction
https://cdnapisec.kaltura.com/p/$KALTURA_PARTNER_ID/sp/$\{KALTURA_PARTNER_ID\}00/playManifest/entryId/$KALTURA_ENTRY_ID/format/applehttp/protocol/https/referrer/aHR0cHM6Ly9teXNpdGUuY29t
Download URL from entry object: Every KalturaMediaEntry includes a downloadUrl property that is a pre-built playManifest download URL.