Import with a recipe
If you already know the products you want, send them on POST /videos under products. The API starts import immediately and queues the rest until the video is ready.
curl -sS -X POST "$BRAIV_API_BASE/videos" \ -H "Authorization: Bearer $BRAIV_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ "source": {"type": "youtube", "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"}, "products": { "dubs": [{"languages": ["es"], "product": "plus"}], "shorts": {"kind": "shorts", "numClips": 5}, "packaging": { "title": {"style": "informational"}, "description": {"type": "youtube-description"}, "thumbnail": {} } } }'thumbnail: true or {} is a faceless Creative zero-prompt thumbnail. For Creative with saved characters or Precision (key-moment detect), send the full thumbnail object — see Generate a thumbnail.
Creative (character + Brand Voice)
"thumbnail": { "enabled": true, "pipelineMode": "thumbnail-v2", "characterCount": 1, "characters": [{"characterId": "char_01"}], "brandVoiceId": "bv_01"}Precision (opaque key-moment detect)
"thumbnail": { "enabled": true, "pipelineMode": "thumbnail-precision", "autoDetectContentReferences": true, "contentSlotCount": 2}The response lists import_*, transcript_*, and the staged product job ids. Poll import first. Product jobs stay queued until their prerequisites finish. Upload and HTTPS sources create the same packaging automation runs as URL import.
You can also attach work later on an existing video — see Dub an existing video and Generate a thumbnail.