Show HN: Gemini can now natively embed video, so I built sub-second video search

https://news.ycombinator.com/rss Hits: 23
Summary

Semantic search over dashcam footage. Type what you're looking for, get a trimmed clip back. ClawHub Skill demo.mp4 SentrySearch splits your dashcam videos into overlapping chunks, embeds each chunk directly as video using Google's Gemini Embedding model, and stores the vectors in a local ChromaDB database. When you search, your text query is embedded into the same vector space and matched against the stored video embeddings. The top match is automatically trimmed from the original file and saved as a clip. Clone and install: git clone https://github.com/ssrajadh/sentrysearch.git cd sentrysearch python -m venv venv && source venv/bin/activate pip install -e . Set up your API key: This prompts for your Gemini API key, writes it to .env, and validates it with a test embedding. Index your footage: sentrysearch index /path/to/dashcam/footage Search: sentrysearch search "red truck running a stop sign" ffmpeg is required for video chunking and trimming. If you don't have it system-wide, the bundled imageio-ffmpeg is used automatically. Manual setup: If you prefer not to use sentrysearch init, you can copy .env.example to .env and add your key from aistudio.google.com/apikey manually. $ sentrysearch init Enter your Gemini API key (get one at https://aistudio.google.com/apikey): **** Validating API key... Setup complete. You're ready to go — run `sentrysearch index <directory>` to get started. If a key is already configured, you'll be asked whether to overwrite it. Index footage $ sentrysearch index /path/to/dashcam/footage Indexing file 1/3: front_2024-01-15_14-30.mp4 [chunk 1/4] Indexing file 1/3: front_2024-01-15_14-30.mp4 [chunk 2/4] ... Indexed 12 new chunks from 3 files. Total: 12 chunks from 3 files. Options: --chunk-duration 30 — seconds per chunk --overlap 5 — overlap between chunks --no-preprocess — skip downscaling/frame rate reduction (send raw chunks) --target-resolution 480 — target height in pixels for preprocessing --target-fps 5 — target frame rate for prep...

First seen: 2026-03-24 16:33

Last seen: 2026-03-25 14:50