How nico579/blink2video works
blink2video is a local desktop companion for Blink cameras: users sign in, configure storage, view and control cameras, retrieve recordings, and browse or assemble a lasting archive. The main runtime spans authentication, camera access, clip acquisition, local state, and video assembly; the local web interface also supports live recording, snapshots, alerts, and settings. Paths and responsibilities reflect the README and sampled excerpts; several feature implementations were not sampled, so uncertain internal wiring is omitted.
Main entry points: serve.py Local web server · blink_engine.py Clip downloader · serve_app.js Browser UI · merge_daily.py Video assembly
Components 22
Local interface
- Browser UI
serve_app.js - Local web server
serve.py
Blink access
- Blink session
blink_auth.py - Camera controls
serve.py - Live view
serve.py - WebRTC transport
blink_webrtc.py - MSE transport
blink_ts_demux.py - Snapshots
serve.py
Clip archive
- Clip downloader
blink_engine.py - Clip registry
blink_registre.py - Clip matching
blink_models.py - Downloaded clips
- Video assembly
merge_daily.py - Daily, weekly, monthly videos
Runtime operations
- Monitoring and alerts
blink_cli.py - Runtime settings
runtime.py - Tray controls
tray.py
Other components
- User
- Blink services
- Module storage
- Blink cloud
- Webhook recipient
Connections 30
- User → Browser UI: uses
- Browser UI → Local web server: HTTP requests
- Local web server → Browser UI: serves UI
- Local web server → Blink session: authenticates
- Blink session → Blink services: opens session
- Local web server → Camera controls: dispatches controls
- Camera controls → Blink services: arms cameras
- Local web server → Live view: starts live view
- Live view → Blink services: requests stream
- Browser UI → WebRTC transport: plays stream
- Browser UI → MSE transport: plays stream
- Local web server → Snapshots: requests snapshot
- Snapshots → Blink services: captures image
- Snapshots → Webhook recipient: notifies on completion
- Monitoring and alerts → Clip downloader: schedules polling
- Clip downloader → Blink session: uses session
- Clip downloader → Module storage: reads clips
- Clip downloader → Blink cloud: fetches clips
- Clip downloader → Clip matching: matches recordings
- Clip downloader → Clip registry: checks and updates
- Clip downloader → Downloaded clips: writes downloads
- Video assembly → Clip registry: reads clip state
- Video assembly → Downloaded clips: reads source videos
- Video assembly → Daily, weekly, monthly videos: writes assembled videos
- Local web server → Clip registry: reads and updates
- Local web server → Downloaded clips: serves recordings
- Local web server → Runtime settings: reads and applies
- Monitoring and alerts → Blink services: checks camera state
- Monitoring and alerts → Webhook recipient: sends alerts
- Tray controls → Local web server: opens or controls