Flavor Assets (Transcoded Renditions) - Content Management
Flavor Assets (Transcoded Renditions)
A "flavor" is a transcoded rendition of the source file (e.g., 360p, 720p, 1080p). Kaltura automatically creates flavors based on the account's conversion profile.
flavorAsset.list -- List Flavors for an Entry
POST /api_v3/service/flavorAsset/action/list
| Parameter | Type | Description |
|---|---|---|
filter[entryIdEqual] | string | The entry ID |
Response: List of KalturaFlavorAsset objects with id, flavorParamsId, width, height, bitrate (kbps), size (KB), status, isOriginal.
curl -X POST "$KALTURA_SERVICE_URL/service/flavorAsset/action/list" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "filter[entryIdEqual]=$KALTURA_ENTRY_ID"
flavorAsset.getFlavorAssetsWithParams
POST /api_v3/service/flavorAsset/action/getFlavorAssetsWithParams
Returns all flavor assets paired with their flavor params for an entry. Includes params without assets (not yet transcoded) and assets without params (custom uploads).
flavorAsset.add + flavorAsset.setContent -- Upload a Custom Rendition
# Create a flavor asset on the entry
curl -X POST "$KALTURA_SERVICE_URL/service/flavorAsset/action/add" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "entryId=$KALTURA_ENTRY_ID" \
-d "flavorAsset[objectType]=KalturaFlavorAsset" \
-d "flavorAsset[flavorParamsId]=0"
# Upload content to the flavor
curl -X POST "$KALTURA_SERVICE_URL/service/flavorAsset/action/setContent" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "id=$FLAVOR_ASSET_ID" \
-d "contentResource[objectType]=KalturaUploadedFileTokenResource" \
-d "contentResource[token]=$UPLOAD_TOKEN_ID"
Business scenario -- pre-transcoded content: A broadcaster provides pre-transcoded renditions (already encoded at multiple bitrates). Upload each rendition as a separate flavor asset rather than re-transcoding.
flavorAsset.convert / flavorAsset.reconvert
# Trigger conversion for a specific flavor params
curl -X POST "$KALTURA_SERVICE_URL/service/flavorAsset/action/convert" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "entryId=$KALTURA_ENTRY_ID" \
-d "flavorParamsId=$FLAVOR_PARAMS_ID"
# Re-convert an existing flavor asset
curl -X POST "$KALTURA_SERVICE_URL/service/flavorAsset/action/reconvert" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "id=$FLAVOR_ASSET_ID"
flavorAsset.getUrl -- Get Download URL
POST /api_v3/service/flavorAsset/action/getUrl
| Parameter | Type | Description |
|---|---|---|
id | string | Flavor asset ID |
storageId | int | Specific storage profile (optional) |
forceProxy | bool | Route through proxy (optional) |
Returns a direct download URL string for that specific flavor.
flavorAsset.export -- Export to Remote Storage
curl -X POST "$KALTURA_SERVICE_URL/service/flavorAsset/action/export" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "assetId=$FLAVOR_ASSET_ID" \
-d "storageProfileId=$STORAGE_PROFILE_ID"
flavorAsset.setAsSource
Designates a specific flavor as the "original source" for the entry. Useful when you've uploaded a pre-transcoded rendition and want it treated as the source for further conversions.