Skip to content

Upload Clip

POST
/api/superadmin/clips/upload
curl --request POST \
--url https://example.com/api/superadmin/clips/upload \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form file=example \
--form sidecar_json=example \
--form name=example \
--form caption=example \
--form hero=false \
--form crop=example \
--form start_sec=0 \
--form duration_sec=1 \
--form vp9_crf=30

Queue a marketing clip for server-side encode + auto-deploy.

Returns 202 immediately; encode + ingest run as an anchored background task. The studio’s UX is fire-and-forget: the user sees a toast and the gallery updates ~30–60s later.

Media type multipart/form-data
Body_upload_clip_api_superadmin_clips_upload_post
object
file
required
File

Raw .webm slice from the studio

string
sidecar_json
required
Sidecar Json

ClipSidecar JSON string

string
name
required
Name

Scene name; must match [a-z][a-z0-9_]{0,40}

string
caption
required
Caption

Gallery caption

string
hero
Hero
boolean
crop
Any of:
string
start_sec
Start Sec
number
0
duration_sec
required
Duration Sec
number
vp9_crf
Vp9 Crf
integer
default: 30

Successful Response

Media type application/json
Response Upload Clip Api Superadmin Clips Upload Post
object
key
additional properties
any
Example generated
{}

Validation Error

Media type application/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Example generated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}