UniFi Protect Video Downloader
Node service that listens for UniFi Protect motion events and exports recordings to disk.
This service connects to a UniFi NVR running UniFi OS (tested on Cloud Key Gen2+ and UDM SE; intended to work on similar devices). When a camera reports motion, it waits for the matching end event, then requests an export from Protect and writes the clip under a configurable directory tree (by camera name and date).
Highlights
- Event-driven — Subscribes to real-time motion events from the NVR.
- Configurable — Host, credentials, optional MQTT availability, camera include/exclude lists, download path, and preference for smart vs. optical motion where supported.
- Deployment — Run with Node (
npm run build/npm start) or Docker with env-based configuration.
See also
- Repository on GitHub — README, Dockerfile, and releases.