Capture media

Put eyes on your events. Attach cameras, capture a clip automatically when something fires, and watch live when you need to.

Cameras and captures

A Camera is attached to a device and reports its own status (ONLINE, OFFLINE, or DEGRADED). A MediaCapture is a recorded clip tied to an event — stored in object storage with a thumbnail, downloadable through a presigned link.

Capture on events, or on demand

A MediaCaptureRule connects events to cameras: when an event matches (by source, severity, device, or sensor), the rule records a clip with a defined pre-roll and post-roll, subject to a cooldown and rate limit. For footage you didn't capture at the time, a DvrClipRequest pulls a clip from a camera's DVR for a specific time range.

Live streaming, brokered

A LiveSession is an operator-brokered live view of a camera. The platform mints short-lived credentials and brokers an HLS stream — playing from the local network first and falling back to a remote stream when needed — moving through REQUESTED → ACTIVE → STOPPING → STOPPED (or EXPIRED). Sessions expire on their own, and a background reaper stops stale sessions and purges their storage.

In the app

Open a camera's live view at /{slug}/cameras/{id}/live.

In the API

  • GET|POST|PUT|DELETE /api/v1/cameras — manage cameras
  • GET /api/v1/captures — list event-triggered clips; GET …/{id}/download for a presigned URL
  • GET|POST|PUT|DELETE /api/v1/media-capture-rules — record clips automatically on matching events
  • POST /api/v1/dvr-clip-requests — pull footage from a camera's DVR for a time range
  • POST /api/v1/cameras/{cameraId}/live — start a live session; GET /api/v1/live lists active ones

Was this page helpful?