Skip to main content
View as Markdown

Overview - Content Management

Multi-Stream Overview​

Create synchronized multi-stream entries for dual-screen playback — Picture-in-Picture, Side-by-Side, and stream selection. A multi-stream entry consists of a parent entry (primary video with audio and timeline control) and one or more child entries linked via the parentEntryId field.

Base URL: https://www.kaltura.com/api_v3 (may differ by region/deployment)
Auth: All requests require a valid KS (see Session Guide)
Format: Form-encoded POST, format=1 for JSON responses

When to Use​

  • Multi-camera lecture recordings — Education teams publishing synchronized presenter and slide capture videos so students can switch between camera angles during playback
  • Picture-in-Picture and Side-by-Side experiences — Content producers creating dual-screen video experiences where viewers see a primary speaker alongside a secondary stream (screen share, whiteboard, or additional camera)
  • Corporate training with multi-angle video — L&D teams delivering training sessions with multiple synchronized video streams that viewers can toggle between for the best perspective

Prerequisites & Authentication​

RequirementDetails
Kaltura accountActive account with a valid Partner ID ($KALTURA_PARTNER_ID)
Admin KSAdmin session (type=2) with disableentitlement privilege for full entry access. Generate via session.start or AppToken flow (see Session Guide and AppTokens Guide)
Player with Dual Screen pluginA Kaltura Player v7 instance with the Dual Screen plugin enabled (see Player v7 Dual-Screen Setup)
Synchronized video filesSource files with matching duration and aligned starting points for proper multi-stream playback

Environment variables used throughout this guide:

export KALTURA_SERVICE_URL="https://www.kaltura.com/api_v3"
export KALTURA_PARTNER_ID="YOUR_PARTNER_ID"
export KALTURA_KS="YOUR_KALTURA_SESSION"

KS privilege guidance:

  • For server-side operations (creating entries, linking children, listing entries), use an Admin KS (type=2) with disableentitlement to bypass content entitlement checks
  • For player-side playback, use a USER KS (type=0) scoped to the viewer — the Dual Screen player needs API access to discover child entries, but a user session is sufficient
  • In production, generate KS tokens server-side via AppTokens with minimal privileges and short expiry (1-4 hours). Pass tokens to clients per-session at runtime

For uploading new files, see the Upload & Ingestion Guide.