How sealad886/homebridge-blink-cameras-new-api works
This is a Homebridge plugin that turns Blink accounts and devices into HomeKit controls, sensors, cameras, and optional Secure Video recordings. The main path is platform startup and device discovery, then HomeKit accessory behavior; live media and native-clip recording are distinct branches. OAuth and settings provide account onboarding, while the Blink API layer handles authenticated cloud operations. Edges reflect the supplied excerpts, SOURCE INDEX references, and README; several unsampled accessory and API details are therefore represented at subsystem level.
Main entry points: platform.ts Platform runtime · native-recording-runtime.ts Recording runtime · client.ts Blink API client · hosted-auth-service.ts Hosted sign-in
Components 27
Homebridge Platform
- Platform runtime
src/platform.ts - Settings inventory
src/settings-inventory.ts - Settings UI
src/homebridge-ui/public/settings-ui.js - UI server
src/homebridge-ui/server.ts - Hosted sign-in
src/homebridge-ui/hosted-auth-service.ts
Blink Integration
- Blink API client
src/blink-api/client.ts - OAuth authentication
src/blink-api/auth.ts - Credential storage
src/blink-api/auth-storage.ts - Secure file I/O
src/blink-api/secure-json-file.ts - HTTP transport
src/blink-api/http.ts - Domain validation
src/blink-api/domain-validation.ts - Motion decoding
src/blink-api/motion-events.ts - Push event source
src/blink-api/fcm/source.ts - Native clip storage
src/blink-api/native-storage.ts
HomeKit Devices
- Network controls
src/accessories/network.ts - Camera accessories
src/accessories/camera.ts - Doorbell accessories
src/accessories/doorbell.ts - Owl accessories
src/accessories/owl.ts
Media and Recording
- Camera source
src/accessories/camera-source.ts - Media session
src/accessories/media-session.ts - Codec worker
src/accessories/media-worker.ts - Media output
src/accessories/media-output.ts - Recording runtime
src/native-recording-runtime.ts - Clip coordinator
src/native-recording-coordinator.ts - Recording delegate
src/accessories/native-recording-delegate.ts
Other components
- Homebridge user
- Blink cloud
Connections 30
- Homebridge user → Settings UI: configures
README.md - Settings UI → UI server: submits settings
src/homebridge-ui/server.ts - UI server → Hosted sign-in: dispatches sign-in
src/homebridge-ui/server.ts - Hosted sign-in → Blink API client: starts login
src/homebridge-ui/hosted-auth-service.ts - Hosted sign-in → Credential storage: loads credentials
src/homebridge-ui/hosted-auth-service.ts - Credential storage → Secure file I/O: reads and writes
src/blink-api/auth-storage.ts - Platform runtime → Settings inventory: reads settings
src/platform.ts - Platform runtime → Blink API client: uses client
src/platform.ts - Platform runtime → Camera source: configures streaming
src/platform.ts - Platform runtime → Recording runtime: creates runtime
src/platform.ts - Blink API client → OAuth authentication: uses authentication
src/blink-api/client.ts - Blink API client → HTTP transport: sends requests
src/blink-api/client.ts - Blink API client → Domain validation: validates responses
src/blink-api/client.ts - HTTP transport → Blink cloud: requests API
README.md - Platform runtime → Network controls: exposes controls
README.md - Platform runtime → Camera accessories: exposes devices
README.md - Platform runtime → Doorbell accessories: exposes devices
README.md - Platform runtime → Owl accessories: exposes devices
README.md - Camera source → Blink API client: reads camera data
src/accessories/camera-source.ts - Camera source → Media session: creates sessions
src/accessories/camera-source.ts - Media session → Codec worker: uses worker
src/accessories/media-session.ts - Media session → Media output: writes output
src/accessories/media-session.ts - Codec worker → Media output: produces media
src/accessories/media-worker.ts - Recording runtime → Push event source: receives push events
src/native-recording-runtime.ts - Recording runtime → Motion decoding: decodes motion
src/native-recording-runtime.ts - Push event source → Motion decoding: provides notifications
src/blink-api/fcm/source.ts - Motion decoding → Clip coordinator: notifies
src/blink-api/motion-events.ts - Recording runtime → Clip coordinator: coordinates clips
src/native-recording-runtime.ts - Recording runtime → Recording delegate: uses delegate
src/native-recording-runtime.ts - Recording runtime → Native clip storage: retrieves clips
src/native-recording-runtime.ts