Skip to main content
View as Markdown

Complete Example — Multi-Stream Lifecycle - Content Management

Complete Example — Multi-Stream Lifecycle​

# Prerequisites: set these shell variables before running the commands below
# KALTURA_SERVICE_URL="https://www.kaltura.com/api_v3"
# KALTURA_KS="<your Kaltura Session>"

# --- Step 1: Create the parent entry ---
curl -X POST "$KALTURA_SERVICE_URL/service/media/action/add" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "entry[objectType]=KalturaMediaEntry" \
-d "entry[name]=Speaker Camera" \
-d "entry[mediaType]=1"
# Save the "id" from response as PARENT_ENTRY_ID

curl -X POST "$KALTURA_SERVICE_URL/service/media/action/addContent" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "entryId=$PARENT_ENTRY_ID" \
-d "resource[objectType]=KalturaUrlResource" \
-d "resource[url]=https://example.com/speaker.mp4"

# --- Step 2: Create a child entry linked to the parent ---
curl -X POST "$KALTURA_SERVICE_URL/service/media/action/add" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "entry[objectType]=KalturaMediaEntry" \
-d "entry[name]=Screen Share" \
-d "entry[mediaType]=1" \
-d "entry[parentEntryId]=$PARENT_ENTRY_ID"
# Save the "id" from response as CHILD_ENTRY_ID

curl -X POST "$KALTURA_SERVICE_URL/service/media/action/addContent" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "entryId=$CHILD_ENTRY_ID" \
-d "resource[objectType]=KalturaUrlResource" \
-d "resource[url]=https://example.com/screen-share.mp4"

# --- Step 3: Verify the relationship ---
curl -X POST "$KALTURA_SERVICE_URL/service/baseEntry/action/get" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "entryId=$CHILD_ENTRY_ID"
# Confirm parentEntryId matches PARENT_ENTRY_ID

# --- Step 4: List all children of the parent ---
curl -X POST "$KALTURA_SERVICE_URL/service/baseEntry/action/list" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "filter[parentEntryIdEqual]=$PARENT_ENTRY_ID"

# --- Step 5: Link another existing entry as a child ---
curl -X POST "$KALTURA_SERVICE_URL/service/baseEntry/action/update" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "entryId=$ANOTHER_ENTRY_ID" \
-d "baseEntry[parentEntryId]=$PARENT_ENTRY_ID"

# --- Step 6: Unlink a child (make it independent) ---
curl -X POST "$KALTURA_SERVICE_URL/service/baseEntry/action/update" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "entryId=$CHILD_ENTRY_ID" \
-d "baseEntry[parentEntryId]="

# --- Step 7: Clean up ---
curl -X POST "$KALTURA_SERVICE_URL/service/media/action/delete" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "entryId=$CHILD_ENTRY_ID"

curl -X POST "$KALTURA_SERVICE_URL/service/media/action/delete" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "entryId=$PARENT_ENTRY_ID"