peepshow/sinks/pinecone

Reel #16Vector DB

peepshow sink / pinecone

PineconeUpsert frames into a Pinecone serverless index.

Serverless. Auto-detects namespace. Embedding of metadata + caption per frame.

What it does

Push frames into a Pinecone serverless index. Namespaces are configurable so multiple teams/projects can share an index without collisions; IDs map back to the peepshow run + frame index.

When to reach for it

  • Managed, zero-ops vector DB for LLM video pipelines
  • Multi-tenant SaaS — each tenant gets their own Pinecone namespace
  • Pair with OpenAI / Cohere embeddings of the peepshow caption field

Install

npm i -g peepshow

Use it

peepshow ./movie.mp4 --sink pinecone \
  --sink-arg index=peepshow

Make it automatic

Register the sink once — every run fires it afterward. Scope by--whenso it only runs for matching videos.

peepshow sinks add pinecone
peepshow sinks add pinecone --when extension=mp4,mov
peepshow sinks add pinecone --when path=/Volumes/Work/

Configuration

  • PEEPSHOW_PINECONE_API_KEYPinecone API key.required
  • PEEPSHOW_PINECONE_INDEXIndex name.required
  • PEEPSHOW_PINECONE_NAMESPACENamespace. Default `peepshow`.

Write your own

A sink is any executable that reads the--emit jsonpayload on stdin. Shell, Node, Python, Go — the spec's indocs/PLUGINS.md. Register persistent ones withpeepshow sinks add-cmd 'your-command'.