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
| Requirement | Details |
|---|---|
| Kaltura account | Active account with a valid Partner ID ($KALTURA_PARTNER_ID) |
| Admin KS | Admin 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 plugin | A Kaltura Player v7 instance with the Dual Screen plugin enabled (see Player v7 Dual-Screen Setup) |
| Synchronized video files | Source 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
disableentitlementto 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.