Ring Motion Recorder
Docker-ready Python recorder for a Ring camera. The script keeps a Ring WebRTC stream warm, runs local OpenCV-based motion detection on incoming frames, and writes MP4 clips when motion is detected.
Features
- Authenticates with
ring-doorbell, including token caching and optional 2FA input. - Connects to Ring live view over WebRTC with
aiortc. - Runs local frame-difference motion detection.
- Records motion-triggered MP4 clips with FFmpeg.
- Can run locally or through Docker Compose.
- Supports environment variables for device name, output paths, recording length, live preview, FPS, motion warmup, and reconnect timing.
Requirements
- Python 3.11+
- FFmpeg available on the system path for local runs
- Python packages from
requirements.txt - Docker and Docker Compose for containerized runs
Configuration
Copy .env.example to .env and set RING_DEVICE_NAME to the exact camera name from your Ring account.
The app stores Ring auth tokens in RING_CONFIG_DIR and recordings in RING_OUT_DIR. Those folders are intentionally ignored by Git.
Docker Usage
docker compose up --build
For the first login, run interactively so the script can ask for Ring credentials and a 2FA code if needed.
Local Usage
pip install -r requirements.txt
python ring_live_view.py
Privacy Notes
Do not commit token cache files, .env files, recorded clips, or exported Docker image archives. This repository is configured to ignore those files by default.
Log in or sign up for Devpost to join the conversation.