---
title: Overview
url: https://docs.kaltura.com/docs/rich-media-cms-apis/content-management/multi-stream-overview
---

## 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](/docs/getting-started/authentication/ks-overview))  
**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](/docs/getting-started/authentication/ks-overview) and [AppTokens Guide](/docs/getting-started/authentication/app-tokens-overview)) |
| **Player with Dual Screen plugin** | A Kaltura Player v7 instance with the Dual Screen plugin enabled (see [Player v7 Dual-Screen Setup](/docs/rich-media-cms-apis/content-management/multi-stream-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:**


```bash
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](/docs/rich-media-cms-apis/content-management/upload-ingestion-overview).
