Solutions
Jan 15, 2026

Unlock Video Intelligence: Building Real-Time Video Search and AI Summary

Unlock Video Intelligence: Build Real-Time Video Search and AI Summary

Authored by

Simon Golan, Senior Solutions Engineer and Ram Bansal, Developer Advocate

Reasoning with multimodal data at scale is unlocking the next wave of AI applications.

Video search powered by Vision Language Models (VLMs) enables systems to identify and act on relevant events in real-time, transforming legacy video infrastructure into intelligent, agentic applications for use cases like public incident detection.

The VAST AI OS powers real-time multimodal inference applications at unprecedented scale and performance. The platform is built for data-intensive applications such as video processing to power agentic workflows:

Video Search & Summary Reference Architecture

Let’s walk through the key steps to building a real-time video search and summarization application to create the foundation for agentic, multimodal workflows.

Why Developers Build on DataEngine

The VAST DataEngine runs on the Disaggregated Shared-Everything (DASE) architecture, leveraging the VAST Event Broker to ingest hundreds of millions of messages per second. The VAST AI OS is built from the ground up for AI-native applications to enable serverless functions powered by event streams and vector storage. VAST’s decoupling of compute and storage creates new opportunities for developers to run massive, real-time AI workloads without the bottlenecks of legacy infrastructure.

In this blog we’ll walk through how to use the VAST DataEngine to build a real-time video search and summarization application. The DataEngine orchestrates video pipelines composed of serverless functions that operate directly on video stored in VAST’s S3-compatible object store. End users can search and explore video content through a client-facing Angular application, backed by a Python-based API. For a deeper overview of the VAST DataEngine, see our previous post.

Prerequisites

Before we dive in, you’ll want to complete the following setup steps:

  • Source code:
  • Access to NVIDIA Models:
  • VAST Management System (VMS) setup by VMS admin:
    • Ensure DataEngine is enabled for the specific tenant
    • Create and share S3 and VastDB credentials for users building pipelines on DataEngine
  • VAST DataEngine user:
    • Access to create and deploy DataEngine pipelines (pipelines = triggers + functions)
    • Credentials, secrets, endpoints configuration details for VastDB, S3 buckets, and VLM are required for both pipelines and backend/frontend application
  • A remote Kubernetes cluster to deploy the client application frontend/backend
  • Network access to VastDB and S3-compatible object storage

The Architecture

The frontend/backend applications are deployed on a remote Kubernetes cluster that’s accessible from your local development environment. Serverless functions are deployed to the DataEngine to orchestrate the end-to-end pipeline, from video ingestion and retrieval to multimodal inference and embedding generation.

The diagram below provides an overview of the system architecture:

Kubernetes Cluster and VAST DataEngine (Serverless)

Serverless Functions

Let’s walk through the serverless functions that make up the video pipelines powering search and summarization. Here we are focused on the two primary pipeline flows (stage 1 and stage 2):

Serverless Functions

Flow 1:
Trigger 1: user uploads video to S3 → Function: break video into segments

Flow 2:
Trigger 2: video segment added to S3 → Function: generate video summary w/ VLM → Function: generate summary embedding → Function: store embeddings in VastDB
Segmenting Videos

In the first flow, once a video lands in the S3 bucket, video-segments, it is split into reasonably sized segments. These segments are stored in a separate S3 bucket, video-chunks-segments, which triggers the subsequent flow responsible for generating and storing video summaries.

By default, videos are segmented into 5-second slices, but this can be adjusted via the (segment_duration) environment variable.

The code snippet below handles storing the video segments:

Segments Videos

Next, we’ll examine the DataEngine function that splits the video into segments and stores the results in a separate S3 bucket.

Generating Video Summaries

In the first flow, we retrieve videos and store segments of the video in an S3 bucket, video-chunks-segments. This triggers the second flow, where we generate summaries of each video segment and store them as vectors in the VAST DataBase.

We use the VLM to generate a summary for each 5-second segment. The code snippet below demonstrates how to generate a video summary, which is then returned from the function and passed to the next step in the pipeline:

Generate Video Summaries

Data returned from one function can be consumed by other functions in the DataEngine, with each function’s output triggering the next in the pipeline. At this point, we’ve covered how to generate descriptive summaries for video segments.

Generating Summary Embeddings

Once a video summary is generated, we use an embedding model to convert it into vectors. The pipeline produces summary embeddings for all video segments, enabling fast search and retrieval through the client-facing application. The code snippet below demonstrates how to generate these vector embeddings:

Generate Summary Embedding

The embedding is returned from the function and consumed by the next step in the pipeline. At this point, vector embeddings for all video summaries have been successfully stored.

Storing Embeddings

The final function in the pipeline stores all generated embeddings. VastDB enables AI workloads and applications with native support for storing and searching vectors. Using the VastDB SDK, we can store vectors efficiently with PyArrow:

Store Embeddings

Note that this is a reference architecture and that pipeline functions can be adapted to meet specific application requirements. For example, functions can be consolidated or expanded as needed.

With that, we’ve completed the second flow, generating and storing vector embeddings for all video segments.

Deploy the Client Application

In this section, we’ll review the frontend and backend components (Stage 3 Retrieve and Search). The full-stack code is available on GitHub.

Note that after deploying the client application, the DataEngine pipelines must also be deployed for users to upload and search videos.

To deploy the frontend and backend applications to the remote Kubernetes cluster, run the deployment script as follows:

Deploy Client Application

After following the deployment instructions and updating your local /etc/hosts file, open the application in your browser (e.g., http://video-lab.v209.vastdata.com) to test authentication. Users are first presented with a screen to log in using their S3 credentials:

VAST Video Reasoning Lab

After authenticating, the user is able to access the video search and summarization UI:

VAST DataEngine Video Reasoning Lab

In this flow, the user authenticates and gains access to the video search interface. They can upload videos to be processed by the DataEngine, enabling search once the video has passed through the processing pipeline.

When a user enters a search query and clicks “Search,” the backend performs a similarity search. The query is converted into an embedding, which is used to query the VastDB vector field and return matching video segments. The code snippet below demonstrates how the backend performs this similarity search:

Similarity Search

The user can continue to further prompt a specific search result of videos by toggling Enable LLM Response, which calls the below functionality to further prompt and reason about the videos returned in the search results:

Synthesize Search Results

Build on VAST

Together, these steps demonstrate how to build a complete real-time video search and summarization pipeline using VAST DataEngine, serverless functions, VLMs, and VastDB to enable fast, scalable, and searchable video workflows.

Additional reading

More from this topic

Learn what VAST can do for you

Sign up for our newsletter and learn more about VAST or request a demo and see for yourself.

* Required field.