# Benchmark Video Search

Measure retrieval quality and latency of a deployed VSS search profile by ingesting a...

- Repository: https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization (1959 stars)
- Category: Data and ML
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add NVIDIA-AI-Blueprints/video-search-and-summarization --skill benchmark-video-search -g -a claude-code -y`
Codex: `npx skills add NVIDIA-AI-Blueprints/video-search-and-summarization --skill benchmark-video-search -g -a codex -y`
Cursor: `npx skills add NVIDIA-AI-Blueprints/video-search-and-summarization --skill benchmark-video-search -g -a cursor -y`
Gemini CLI: `npx skills add NVIDIA-AI-Blueprints/video-search-and-summarization --skill benchmark-video-search -g -a gemini-cli -y`

## Description

Measure retrieval quality and latency of a deployed VSS search profile by ingesting a labelled dataset and running the vss CLI across retrieval paths. Use when the user asks to "benchmark video search", "compare search recall between builds", or "profile search latency" on a deployed VSS profile. A default run deletes every uploaded video file on the target deployment before ingesting (RTSP cameras are kept); --skip-ingest deletes nothing.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Benchmark Video Search

## Instructions

Follow the routing table, then the numbered steps. Execute each step in order on
a first run; for a repeat run against an already-indexed deployment run
**Step 3**, then go to **Step 5**. Reference material is in `references/`, the
runner is in `scripts/`.

## Purpose

Answers two questions about a **search profile** deployment: does retrieval find
the right footage, and where does a query's time go. It drives the `vss` CLI, the same path the product uses, since the agent adapter shells out to
`vss search run <mode> --raw` for every search, so the numbers describe what
ships rather than a REST endpoint that is being retired.

Searches go through `vss`. To know when ingestion is done and when a wipe has
finished, the runner also reads Elasticsearch and RT-CV's stream list directly,
read-only, through the deployment's `:7777` ingress (derived from
`--endpoint`). It never writes to either. It changes deployment state only
through the agent API: it deletes file sources and uploads videos.

## When not to use this skill

- For a single video-search question, use `vss-search-archive`.
- For an end-to-end benchmark of the OpenClaw chat route, this runner does not
  measure that path; do not present CLI timings as chat timings.
- For a historical benchmark of the retired agent REST search endpoint, use
  the external legacy `run_eval.py` noted in `references/troubleshooting.md`.

## Routing

The rest: https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization/blob/HEAD/skills/benchmarking/benchmark-video-search/SKILL.md
