Scrypted plugin for granular camera privacy controls with scheduling, profiles, and Home Assistant integration
npm install @blueharford/scrypted-privacy-managerA Scrypted plugin that provides granular privacy controls for cameras, allowing you to disable recording, events, streaming, and detection on a per-camera basis with time-based scheduling.
Example: Disable indoor camera recording from 8 AM to 10 PM on weekdays.
switch.privacy_panic_modeswitch.privacy_night_modeswitch.privacy_away_modejson
{
"event": "privacy_changed",
"timestamp": "2024-01-08T10:30:00Z",
"camera": "Living Room Camera",
"cameraId": "abc123",
"settings": {
"blockRecording": true,
"blockEvents": true,
"blockStreaming": false,
"blockDetection": true,
"blockMotionAlerts": true
},
"trigger": "schedule"
}
`$3
Track all privacy setting changes:
- Timestamp
- Camera affected
- Previous and new settings
- Trigger (manual, schedule, profile, panic)Installation
$3
`bash
npm install @blueharford/scrypted-privacy-manager
`$3
1. Go to Plugins in the Scrypted web interface
2. Click Install Plugin
3. Search for "Privacy Manager" or paste the NPM package name
4. Click InstallConfiguration
$3
Access via Plugins > Privacy Manager > Settings:| Setting | Description |
|---------|-------------|
| Panic Mode | Emergency: Block ALL cameras immediately |
| Default Settings | Default privacy settings for new cameras |
| Webhook URL | HTTP endpoint for notifications |
| Webhook Events | Which events trigger webhooks |
| Audit Log Retention | Days to keep audit entries |
$3
Each camera will have a Privacy Controls section in its settings:| Setting | Description |
|---------|-------------|
| Enable Privacy Controls | Master switch for this camera |
| Block Recording | Prevent recording |
| Block Events | Suppress events |
| Block Streaming | Block live video |
| Block Detection | Disable object detection |
| Block Motion Alerts | Suppress motion alerts |
| Enable Schedule | Use time-based automation |
| Schedule Type | Daily/Weekdays/Weekends/Custom |
| Privacy Start Time | When privacy mode activates |
| Privacy End Time | When privacy mode deactivates |
$3
1. Go to Plugins > Privacy Manager
2. Click Add New Device
3. Enter a profile name (e.g., "Night Mode")
4. Configure the profile:
- Select cameras to include
- Set which privacy options to apply
5. Toggle the profile on/off as neededHTTP API
The plugin exposes HTTP endpoints:
$3
Returns current status:
`json
{
"panicMode": false,
"profiles": [
{ "id": "profile-123", "name": "Night Mode", "active": true, "cameraCount": 3 }
],
"schedules": {
"totalSchedules": 5,
"activeSchedules": 2
}
}
`$3
Returns audit log as JSON.$3
Enable/disable panic mode:
`json
{ "enabled": true }
`Use Cases
$3
Disable recording on indoor cameras while you're home:1. Create a profile "Home Mode"
2. Add all indoor cameras
3. Enable: Block Recording, Block Events, Block Detection
4. Set schedule: Daily, 8:00 AM - 10:00 PM
$3
Disable office camera during work hours:1. Go to office camera settings
2. Enable schedule
3. Type: Weekdays
4. Start: 09:00, End: 17:00
$3
Need immediate privacy?1. Open Scrypted or Home Assistant
2. Turn on "Privacy: Panic Mode"
3. All cameras immediately stop recording/streaming
Development
$3
`bash
npm install
npm run build
`$3
`bash
npm run scrypted-deploy-debug
``Apache-2.0
blueharford