Editor
POST
/videos/{id}/brolls/{brollId}/presenter

Takes the narration audio covered by this B-roll and lip-syncs the supplied avatar portrait with prunaai/p-video-avatar. The generated clip replaces the segment's resolved media. This consumes AI-avatar credits, so send an Idempotency-Key when retrying.

Authorization

bearerAuth
AuthorizationBearer <token>

An API key created under Settings > API & Webhooks. Keys start with sf_live_.

In: header

Path Parameters

id*string
brollId*string

Header Parameters

Idempotency-Key?string

Unique key per action (a UUID works well). Reusing it replays the first response instead of running the action again, so a retry after a timeout can never generate, render, publish or charge twice.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/videos/string/brolls/string/presenter" \  -H "Content-Type: application/json" \  -d '{    "imageUrl": "https://cdn.shortfast.com/avatars/lisa.png",    "avatarId": "c40c830a-22f1-48ba-aad4-205892b239a9",    "name": "Lisa"  }'
{  "data": {    "id": "string",    "startMs": 0,    "endMs": 0,    "text": "string",    "prompt": "string",    "keywords": "string",    "mediaType": "ai_image",    "url": "http://example.com",    "type": "string",    "qualityUrls": {},    "animation": "string",    "transition": "string",    "layout": "string",    "scale": 0,    "hidden": true,    "audioEffect": {},    "presenter": {      "imageUrl": "http://example.com",      "avatarId": "string",      "name": "string",      "bytes": 0,      "generatedAt": "2019-08-24T14:15:22Z"    }  }}