peepshow/sinks/webhook

Reel #04Generic HTTP

peepshow sink / webhook

WebhookPOST the payload to any URL.

The generic sink. If something speaks HTTP, this connects peepshow to it.

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 peepshow

Use it

peepshow ./input.mp4 --sink webhook \
  --sink-arg url=https://example.com/ingest \
  --sink-arg header=Authorization:Bearer+xyz

Make 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'.