Skip to content

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.

Internal documentation