Skip to content

luxardolabs/luxupt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LuxUPT

Automatic timelapse videos from your UniFi Protect cameras.

License GHCR

You've invested in UniFi Protect. LuxUPT turns that investment into something more—capturing snapshots around the clock and compiling them into timelapse videos automatically. Watch your construction site progress, your garden grow through the seasons, or simply see what happened while you were away.

Highlights

  • Full-resolution capture — Pulls frames directly from RTSP video streams, delivering your camera's true resolution
  • Automatic daily videos — Scheduler creates timelapses every morning from the previous day's captures
  • Works with every UniFi camera — G3, G4, G5, G6 — automatically detects capabilities and optimizes settings
  • Browser-based control — Configure everything through the web UI, no config files to edit
  • Runs on your hardware — Single Docker container, no cloud services, no subscriptions

Quick Start

1. Get an API key from UniFi Protect

Log in to UniFi Protect → Settings → Control Plane → Integrations → Your API Keys → Generate

2. Create compose.yaml

services:
  luxupt:
    image: ghcr.io/luxardolabs/luxupt:latest
    container_name: luxupt
    restart: always
    ports:
      - "8080:8080"
    volumes:
      - ./output:/app/luxupt/output
    environment:
      TZ: America/Chicago

3. Start it

docker compose up -d

4. Open the web UI

Go to http://your-server:8080 — the setup wizard walks you through connecting to UniFi Protect and configuring your cameras.

Tomorrow morning, you'll have timelapse videos.

Full-Resolution Capture

Some UniFi cameras—particularly G5 models—return reduced resolution through the snapshot API. LuxUPT solves this by offering two capture methods:

Method How it works Resolution
API Snapshot Requests image from UniFi Protect API Varies by camera
RTSP Stream Captures frame from live video stream Full camera resolution

LuxUPT tests each camera and recommends the best method. For cameras where API resolution is limited, RTSP capture delivers full resolution—the same quality you see in the UniFi Protect app.

Cameras that benefit from RTSP capture:

  • G5 Bullet, G5 Pro, G5 Turret Ultra, G5 Dome
  • G3 Instant

For technical background, see this community discussion.

Web Interface

Everything runs through the browser. No SSH, no YAML editing after setup, no restarts when you change settings.

Page What you do there
Cameras View all cameras, configure capture settings, monitor success rates
Timelapses Browse videos, create on-demand, configure the scheduler
Images Browse captured snapshots, view full resolution, manage storage
System Monitor health, manage users, view configuration

Documentation

Full documentation for every feature, setting, and panel:

License

LuxUPT is licensed under the GNU Affero General Public License v3.0.

Released by Luxardo Labs as a contribution to the UniFi community.

No cloud services. No data collection. No subscriptions. Just software that runs on your hardware.

Found a bug? Have a feature idea? Open an issue. Pull requests welcome.


Built with Python, FastAPI, and FFmpeg.

About

A Docker-based solution for creating time-lapse videos from Unifi Protect cameras. This application fetches images from your Unifi Protect cameras at regular intervals and compiles them into high-quality time-lapse videos.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors