Skip to content

Releases: HeyJiqingCode/VideoSemanticSearch

Release list

v1.0.0

Choose a tag to compare

@HeyJiqingCode HeyJiqingCode released this 13 Jul 12:24

Video Semantic Search v1.0.0

First stable release. Video Semantic Search maps natural-language questions directly to video timestamps: upload a video, let Azure Content Understanding transcribe and segment it, index the chunks into Azure AI Search, and jump the player straight to the matching moment. Built as a demo on Azure Content Understanding + Azure AI Search + Azure OpenAI.

Highlights

End-to-end ingestion pipeline

  • One-call ingestion: POST /pipeline/upload-and-process uploads to Blob Storage, runs Content Understanding analysis (GA 2025-11-01, prebuilt-videoSearch analyzer), writes normalized chunk JSONL, and triggers the search indexer.
  • Chunk documents carry start_ms / end_ms timing plus per-chunk and dominant language metadata; transcript phrases preferred, markdown fallback with VTT-noise cleanup.
  • Startup auto-provisioning (idempotent create-or-update) for the index, data source, skillset, indexer, and Blob containers, with POST /admin/provision and POST /admin/rebuild for manual control.

Retrieval

  • Hybrid retrieval (keyword + vector) with semantic reranking through the azure-search-documents SDK; integrated vectorization on text-embedding-3-large (3072 dimensions).
  • Intra-chunk jump refinement: a CN/EN token-anchor scan inside the matched chunk produces jump_start_ms, so playback lands on the matching sentence instead of the chunk start — with conservative shift caps to avoid overshooting.
  • Video-scoped filtering, indexed video listing (GET /videos), and on-demand SAS URL refresh so playback links never go stale.

Chat & summary

  • Grounded video chat (POST /chat, streaming NDJSON via POST /chat/stream) and cached video summaries (GET /video-summary), all through the OpenAI SDK Responses API against the Azure OpenAI v1 endpoint — chat and embedding share one Foundry resource and key.

Web UI & deployment

  • Single-page UI: upload & index, video library switching, matched-segment jump playback, summary panel, chat bot, and an optional local login gate (LOCAL_AUTH_*).
  • Multi-arch Docker images (linux/amd64, linux/arm64) published to GHCR.

See the README for Quick Start (Docker / local) and the full configuration reference.