What it does
POST the full peepshow JSON payload (run metadata + paths + optional inlined frames) to any URL. Configurable headers, retries, timeout. The escape hatch — connects peepshow to anything the built-in sinks don't cover.
When to reach for it
- Hit your own internal ingestion endpoint
- Fan out to Zapier / n8n / Pipedream / workflow platforms
- Trigger serverless functions with a ready-to-use video payload
Install
npm i -g peepshowUse it
peepshow ./input.mp4 --sink webhook \
--sink-arg url=https://example.com/ingest \
--sink-arg header=Authorization:Bearer+xyzMake it automatic
Register the sink once — every run fires it afterward. Scope by--whenso it only runs for matching videos.
peepshow sinks add webhook
peepshow sinks add webhook --when extension=mp4,mov
peepshow sinks add webhook --when path=/Volumes/Work/Configuration
PEEPSHOW_WEBHOOK_URLDefault URL if `--sink-arg url` is omitted.PEEPSHOW_WEBHOOK_TIMEOUT_MSRequest timeout. Default 10_000.
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'.