Skip to main content
View as Markdown

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​

ParameterShortTypeDescription
entryIdestringEntry ID to play
formatfstringDelivery format (see table below)
protocolptstringMedia protocol for URLs inside manifest: http, https
ks—stringKaltura Session (also accepted via X-Kaltura-Ks header)

Format Values​

ValueDescriptionUse Case
applehttpHLS (Apple HTTP Live Streaming)Most common — works on all modern browsers and mobile
mpegdashMPEG-DASHAlternative adaptive format (Widevine DRM)
urlSingle progressive URL (redirect)Simple <video> embed, no adaptive bitrate
downloadDownload URL (redirect with Content-Disposition)Download buttons, offline access
hdsAdobe HTTP Dynamic StreamingLegacy Flash-based players
slMicrosoft Smooth Streaming (Silverlight)Legacy Silverlight players
hdnetworkmanifestAkamai HDS manifestAkamai-specific delivery
rtmpRTMP streamingLegacy real-time streaming
autoAuto-detect best formatLet the server choose

Flavor Selection Parameters​

ParameterShortTypeDescription
flavorIdfistringSingle flavor asset ID
flavorIdsfsstringComma-separated flavor asset IDs
flavorParamIdfpintSingle flavor params ID
flavorParamIdsfpsstringComma-separated flavor params IDs
tagststringComma-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​

ParameterShortTypeDescription
preferredBitratepbintPreferred bitrate in kbps
maxBitratembintMaximum bitrate cap in kbps
minBitratemibintMinimum 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​

ParameterShortTypeDescription
seekFromsfintStart playback from this point (milliseconds)
clipToctintEnd 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​

ParameterShortTypeDescription
uiConfIduiintPlayer UI configuration ID
sessionId—stringPlayback session ID for analytics
playSessionId—stringPlay session tracking
playbackContextpcstringPlayback context string
referrerrstringBase64-encoded referrer URL for access control
responseFormat—stringResponse format: redirect (default), f4m, m3u8, jsonp

Delivery and CDN Parameters​

ParameterShortTypeDescription
cdnHostchstringOverride CDN hostname
storageIdsiintServe from a specific remote storage
deliveryProfileId—intUse a specific delivery profile
deliveryProfileIds—stringComma-separated delivery profile IDs
deliveryCodedcstringDelivery code identifier

Audio and Caption Parameters​

ParameterTypeDescription
defaultAudioLangstringDefault audio language code
muxedAudioLangstringMuxed audio track language
tracksstringTrack selection string
disableCaptionsboolSuppress caption tracks from manifest

Sequence / Multi-Entry Playback​

ParameterTypeDescription
sequencestringComma-separated entry IDs for multi-entry sequence playback (HLS/DASH only)

Security Parameters​

ParameterShortTypeDescription
expiryexintURL token expiry (Unix timestamp)
kt—stringKaltura URL token (pre-signed URL verification)
hashes—stringAccess 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.