Appearance
Video Flow Operators
Two flow operators interact with video blocks.
VideoOp (Add Video)
Component: AF/src/pages/Chatbots/components/CavaiFlow/operators/VideoOp.vue
Adds a video to a flow step. Supports two sources:
- Bunny CDN upload -- uploads directly, stores
streamId,fileName,duration,width,height - YouTube embed -- stores YouTube URL
Properties stored in op.properties.body.video:
typescript
{
streamId: string,
fileName: string,
duration: number,
width: number,
height: number
}Shows a thumbnail preview from delivery-6.cavai.com/{streamId}/preview.webp.
ChangeVideoOp (Swap Video)
Component: AF/src/pages/Chatbots/components/CavaiFlow/operators/ChangeVideoOp.vue
Swaps the video on an existing video block at runtime (e.g., show a different video based on user choices).
UI: Side-by-side comparison showing "before" (current block video or previous ChangeVideo op) and "after" (new video to swap to).
Key detail: Stores full streamData in op.properties.body.streamData, not just the streamId. This is critical for streaming support -- without stream data, the engine would fall back to MP4 download (see the historical bug in video-playback-engine.md).
Tracking URLs
Both operators support third-party tracking URL configuration, same as other flow operators.