What it does
File peepshow runs into MongoDB — one document per run with frames as an array and metadata as top-level fields. Indexes on `run_id`, `director`, and `extractedAt` are created on first write.
When to reach for it
- NoSQL-first teams who want a flexible document schema over rigid SQL
- Archive a mixed bag of videos where metadata varies by source
- Leverage Atlas Search for text / semantic search across peepshow runs
Install
npm i -g peepshow
npm i -g mongodbUse it
peepshow ./clip.mp4 --sink mongodb \
--sink-arg url=mongodb+srv://user:pass@cluster.mongodb.netMake it automatic
Register the sink once — every run fires it afterward. Scope by--whenso it only runs for matching videos.
peepshow sinks add mongodb
peepshow sinks add mongodb --when extension=mp4,mov
peepshow sinks add mongodb --when path=/Volumes/Work/Configuration
PEEPSHOW_MONGODB_URLConnection string. Atlas or self-hosted.requiredPEEPSHOW_MONGODB_DBDatabase name. 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'.