← All projects
Content

VidSlice

Material vector index for video pipelines

Overview

VidSlice indexes third-party video material — photos, clips, B-roll — into a LanceDB vector store, signs every entry with Ed25519 for tamper detection, and serves results over HTTP. Built to plug into the OpenCut short-video pipeline (which is why the HTTP API matches OpenCut's material contract).

v0.5 read-compat / v0.6 write opt-in via --compat v0.5 flag. NDJSON progress events for streaming pipelines.

Product impact

Pain → Solution → Value

Every team rolls its own frame extractor and embedding pipeline. Vendors cannot be trusted with raw production assets, yet indexing has to happen somewhere. VidSlice gives the outsourced team a standalone CLI: hand it materials, get back a signed standard index that OpenCut consumes directly.

Pain
Material processing fragmented
Every team rolls its own.
Solution
Standalone CLI + LanceDB index
One tool, one output format.
1
Tool, 408 tests
Pain
Vendors can't be trusted with raw assets
Production credentials at risk.
Solution
Indexed output, no raw access
Signed index flows back, raw stays.
↑100%" data-i18n-zh="100%">100%
Raw-asset isolation
Pain
Index format inconsistent
Group A's index doesn't load in B.
Solution
Signed standard index
Every team's index looks the same.
1
Deterministic OpenCut input
Pain
Pipeline reinvents vector store
Each partner reinvents ingestion.
Solution
Signed LanceDB output
One integration per partner.
↓1" data-i18n-zh="1">1
Integration per partner, forever

What changes for the team

A wider view of the same loop. Each card zooms into the corresponding column above.

Pain

Outsourced indexing without leaking secrets

  • Every team rolls its own frame extractor and embedding pipeline — formats drift across groups.
  • Vendors cannot be trusted with raw production assets, yet indexing has to happen somewhere.
  • A clip indexed by group A rarely loads cleanly in group B's pipeline.
0
Standard index format across teams
Solution

One CLI, one signed LanceDB output

  • Hand it raw materials — VidSlice walks the directory, extracts frames, computes embeddings.
  • Writes a signed LanceDB index that OpenCut consumes directly.
  • Outsourced teams never touch production credentials, repos, or downstream services.
408
Tests passing on every release
Value

Third parties index, secrets stay home

  • Outsourced teams run VidSlice on materials they're given; signed index flows back to OpenCut.
  • Index format consistent across vendors — no per-partner normalization layer.
  • Production credentials, source repositories, and downstream services stay inside the perimeter.
1
Integration per partner, forever

Product architecture

Four CLI stages turn a directory of raw material into a signed vector index ready for OpenCut to ingest.

  1. 01

    Discover

    The CLI scans the materials directory, enumerating supported video and image files and recording their paths and hashes for downstream stages.

  2. 02

    Extract

    Frames are pulled from each video and structured metadata (codec, duration, dimensions, source hash) is captured alongside them.

  3. 03

    Embed

    A model computes per-frame vectors representing the searchable content; vectors and their metadata are written into the LanceDB store.

  4. 04

    Sign

    The output index is signed with Ed25519, producing the standardized artifact OpenCut consumes directly — tamper-evident, version-pinned, and ready for the HTTP API.

Runtime sequence

A single VidSlice CLI run walks through five participants.

Technical architecture

Vector index builder for OpenCut. Click any node or relationship for details.

Capabilities

Vector index
LanceDB over multi-frame embeddings.
Ed25519 attestation
Signed material provenance at ingest.
NDJSON progress
Parallel ingestion with streamable events.
OpenCut-compatible API
Same HTTP contract as OpenCut's material index.

By the numbers

  • 408 tests
  • LanceDB storage
  • 3-frame extraction
  • Ed25519 attestation
  • HTTP + NDJSON streaming
  • v0.5 / v0.6 dual-versioned

Try it, fork it, or hire me to extend it.

Source on GitHub · {p['license']} · questions to 286043314+echocc00@users.noreply.github.com