{"_id":"@blueharford/scrypted-privacy-manager","_rev":"57-41d637d3cb19208191890e5c9c1333d0","name":"@blueharford/scrypted-privacy-manager","dist-tags":{"latest":"0.0.30-beta"},"versions":{"0.0.27-beta":{"name":"@blueharford/scrypted-privacy-manager","version":"0.0.27-beta","keywords":["scrypted","privacy","camera","recording","schedule","home-assistant","nvr"],"author":{"name":"blueharford"},"license":"Apache-2.0","_id":"@blueharford/scrypted-privacy-manager@0.0.27-beta","maintainers":[{"name":"blueharford","email":"me@joshuaseidel.com"}],"homepage":"https://github.com/JoshuaSeidel/scrypted-privacy-manager-plugin#readme","bugs":{"url":"https://github.com/JoshuaSeidel/scrypted-privacy-manager-plugin/issues"},"dist":{"shasum":"27e4ab9febf167a0c56a5f7cb18005a06bce1dff","tarball":"https://registry.npmjs.org/@blueharford/scrypted-privacy-manager/-/scrypted-privacy-manager-0.0.27-beta.tgz","fileCount":33,"integrity":"sha512-pmH/eX6aL9o2eJGgixRXAU63uQQGEpCWWDEoeKENdJomoROR+uBS6mGHBkSDAj4WFQPUjZLnDFMy+kBwfOe+0Q==","signatures":[{"sig":"MEQCIDXhZPRzODiparIkm6Ty34toVg01xv90LnWguJ7kYZejAiBrXirq45s0WMOwju6oz06INnhOnCsfyLcw+cWQLKZxkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":952807},"main":"src/main.ts","gitHead":"33d8689ace9e5d692d017943bcd2eedf9b618d7d","scripts":{"build":"node node_modules/@scrypted/sdk/bin/scrypted-webpack.js","prepublishOnly":"NODE_ENV=production node node_modules/@scrypted/sdk/bin/scrypted-webpack.js","scrypted-debug":"node node_modules/@scrypted/sdk/bin/scrypted-debug.js","scrypted-deploy":"node node_modules/@scrypted/sdk/bin/scrypted-deploy.js","scrypted-readme":"node node_modules/@scrypted/sdk/bin/scrypted-readme.js","scrypted-deploy-debug":"node node_modules/@scrypted/sdk/bin/scrypted-deploy-debug.js","scrypted-package-json":"node node_modules/@scrypted/sdk/bin/scrypted-package-json.js","scrypted-setup-project":"node node_modules/@scrypted/sdk/bin/scrypted-setup-project.js","scrypted-vscode-launch":"node node_modules/@scrypted/sdk/bin/scrypted-deploy-debug.js","prescrypted-setup-project":"node node_modules/@scrypted/sdk/bin/scrypted-package-json.js","prescrypted-vscode-launch":"node node_modules/@scrypted/sdk/bin/scrypted-webpack.js"},"_npmUser":{"name":"blueharford","email":"me@joshuaseidel.com"},"scrypted":{"name":"Privacy Manager","type":"API","realfs":true,"interfaces":["MixinProvider","DeviceProvider","DeviceCreator","Settings","HttpRequestHandler"]},"repository":{"url":"git+https://github.com/JoshuaSeidel/scrypted-privacy-manager-plugin.git","type":"git"},"_npmVersion":"10.9.2","description":"Scrypted plugin for granular camera privacy controls with scheduling, profiles, and Home Assistant integration","directories":{},"_nodeVersion":"23.4.0","dependencies":{"@scrypted/sdk":"^0.5.29"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.11.0","@scrypted/common":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/scrypted-privacy-manager_0.0.27-beta_1767927152745_0.4038558382720294","host":"s3://npm-registry-packages-npm-production"}},"0.0.28-beta":{"name":"@blueharford/scrypted-privacy-manager","version":"0.0.28-beta","keywords":["scrypted","privacy","camera","recording","schedule","home-assistant","nvr"],"author":{"name":"blueharford"},"license":"Apache-2.0","_id":"@blueharford/scrypted-privacy-manager@0.0.28-beta","maintainers":[{"name":"blueharford","email":"me@joshuaseidel.com"}],"homepage":"https://github.com/JoshuaSeidel/scrypted-privacy-manager-plugin#readme","bugs":{"url":"https://github.com/JoshuaSeidel/scrypted-privacy-manager-plugin/issues"},"dist":{"shasum":"b34506c363bc963ae990e9ffb8c35e98904c0ace","tarball":"https://registry.npmjs.org/@blueharford/scrypted-privacy-manager/-/scrypted-privacy-manager-0.0.28-beta.tgz","fileCount":33,"integrity":"sha512-SBHnhQuVOZcavBHymQltu5fZMkCtHr0MTa+etR6ydTiqvjELQY7JY4qC3UzOtk83pafzgeLsIb7QX+iXpvJNgw==","signatures":[{"sig":"MEUCIQCFlpFUvzAdrazwt95ncUCJS0kBAIaQ6UauaNzz5RuMdgIgLEzdlRn8SOxq9ac58GisiM83mfaK7Btnms0eokmINik=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":983033},"main":"src/main.ts","gitHead":"33d8689ace9e5d692d017943bcd2eedf9b618d7d","scripts":{"build":"node node_modules/@scrypted/sdk/bin/scrypted-webpack.js","prepublishOnly":"NODE_ENV=production node node_modules/@scrypted/sdk/bin/scrypted-webpack.js","scrypted-debug":"node node_modules/@scrypted/sdk/bin/scrypted-debug.js","scrypted-deploy":"node node_modules/@scrypted/sdk/bin/scrypted-deploy.js","scrypted-readme":"node node_modules/@scrypted/sdk/bin/scrypted-readme.js","scrypted-deploy-debug":"node node_modules/@scrypted/sdk/bin/scrypted-deploy-debug.js","scrypted-package-json":"node node_modules/@scrypted/sdk/bin/scrypted-package-json.js","scrypted-setup-project":"node node_modules/@scrypted/sdk/bin/scrypted-setup-project.js","scrypted-vscode-launch":"node node_modules/@scrypted/sdk/bin/scrypted-deploy-debug.js","prescrypted-setup-project":"node node_modules/@scrypted/sdk/bin/scrypted-package-json.js","prescrypted-vscode-launch":"node node_modules/@scrypted/sdk/bin/scrypted-webpack.js"},"_npmUser":{"name":"blueharford","email":"me@joshuaseidel.com"},"scrypted":{"name":"Privacy Manager","type":"API","realfs":true,"interfaces":["MixinProvider","DeviceProvider","DeviceCreator","Settings","HttpRequestHandler"]},"repository":{"url":"git+https://github.com/JoshuaSeidel/scrypted-privacy-manager-plugin.git","type":"git"},"_npmVersion":"10.9.2","description":"Scrypted plugin for granular camera privacy controls with scheduling, profiles, and Home Assistant integration","directories":{},"_nodeVersion":"23.4.0","dependencies":{"@scrypted/sdk":"^0.5.29"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.11.0","@scrypted/common":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/scrypted-privacy-manager_0.0.28-beta_1767987406079_0.5833680769022351","host":"s3://npm-registry-packages-npm-production"}},"0.0.29-beta":{"name":"@blueharford/scrypted-privacy-manager","version":"0.0.29-beta","keywords":["scrypted","privacy","camera","recording","schedule","home-assistant","nvr"],"author":{"name":"blueharford"},"license":"Apache-2.0","_id":"@blueharford/scrypted-privacy-manager@0.0.29-beta","maintainers":[{"name":"blueharford","email":"me@joshuaseidel.com"}],"homepage":"https://github.com/JoshuaSeidel/scrypted-privacy-manager-plugin#readme","bugs":{"url":"https://github.com/JoshuaSeidel/scrypted-privacy-manager-plugin/issues"},"dist":{"shasum":"46475ea36bbfa76f81857f2ec323d82d239683ae","tarball":"https://registry.npmjs.org/@blueharford/scrypted-privacy-manager/-/scrypted-privacy-manager-0.0.29-beta.tgz","fileCount":33,"integrity":"sha512-scbbjVvfsJQB09SI528yUYKgtIr4b7Y+Da5AJVWOwfNSHrXIM27Pt+8t8O37omgSv7yhq2igoFzbVyoUz4d6fQ==","signatures":[{"sig":"MEQCIFD8Az67bthAKfMAfw8OY9V8pfIlfbPB9OPz6nSOiVbIAiBNDw1XnlZgRLzAJh/U7aMks5yb9V6UjPJV0uhlLD7yYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":993854},"main":"src/main.ts","gitHead":"33d8689ace9e5d692d017943bcd2eedf9b618d7d","scripts":{"build":"node node_modules/@scrypted/sdk/bin/scrypted-webpack.js","prepublishOnly":"NODE_ENV=production node node_modules/@scrypted/sdk/bin/scrypted-webpack.js","scrypted-debug":"node node_modules/@scrypted/sdk/bin/scrypted-debug.js","scrypted-deploy":"node node_modules/@scrypted/sdk/bin/scrypted-deploy.js","scrypted-readme":"node node_modules/@scrypted/sdk/bin/scrypted-readme.js","scrypted-deploy-debug":"node node_modules/@scrypted/sdk/bin/scrypted-deploy-debug.js","scrypted-package-json":"node node_modules/@scrypted/sdk/bin/scrypted-package-json.js","scrypted-setup-project":"node node_modules/@scrypted/sdk/bin/scrypted-setup-project.js","scrypted-vscode-launch":"node node_modules/@scrypted/sdk/bin/scrypted-deploy-debug.js","prescrypted-setup-project":"node node_modules/@scrypted/sdk/bin/scrypted-package-json.js","prescrypted-vscode-launch":"node node_modules/@scrypted/sdk/bin/scrypted-webpack.js"},"_npmUser":{"name":"blueharford","email":"me@joshuaseidel.com"},"scrypted":{"name":"Privacy Manager","type":"API","realfs":true,"interfaces":["MixinProvider","DeviceProvider","DeviceCreator","Settings","HttpRequestHandler"]},"repository":{"url":"git+https://github.com/JoshuaSeidel/scrypted-privacy-manager-plugin.git","type":"git"},"_npmVersion":"10.9.2","description":"Scrypted plugin for granular camera privacy controls with scheduling, profiles, and Home Assistant integration","directories":{},"_nodeVersion":"23.4.0","dependencies":{"@scrypted/sdk":"^0.5.29"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.11.0","@scrypted/common":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/scrypted-privacy-manager_0.0.29-beta_1767987552321_0.4289746951728415","host":"s3://npm-registry-packages-npm-production"}},"0.0.30-beta":{"name":"@blueharford/scrypted-privacy-manager","version":"0.0.30-beta","description":"Scrypted plugin for granular camera privacy controls with scheduling, profiles, and Home Assistant integration","author":{"name":"blueharford"},"license":"Apache-2.0","main":"src/main.ts","keywords":["scrypted","privacy","camera","recording","schedule","home-assistant","nvr"],"scrypted":{"name":"Privacy Manager","type":"API","interfaces":["MixinProvider","DeviceProvider","DeviceCreator","Settings","HttpRequestHandler"],"realfs":true},"scripts":{"scrypted-setup-project":"node node_modules/@scrypted/sdk/bin/scrypted-setup-project.js","prescrypted-setup-project":"node node_modules/@scrypted/sdk/bin/scrypted-package-json.js","build":"node node_modules/@scrypted/sdk/bin/scrypted-webpack.js","prepublishOnly":"NODE_ENV=production node node_modules/@scrypted/sdk/bin/scrypted-webpack.js","prescrypted-vscode-launch":"node node_modules/@scrypted/sdk/bin/scrypted-webpack.js","scrypted-vscode-launch":"node node_modules/@scrypted/sdk/bin/scrypted-deploy-debug.js","scrypted-deploy-debug":"node node_modules/@scrypted/sdk/bin/scrypted-deploy-debug.js","scrypted-debug":"node node_modules/@scrypted/sdk/bin/scrypted-debug.js","scrypted-deploy":"node node_modules/@scrypted/sdk/bin/scrypted-deploy.js","scrypted-readme":"node node_modules/@scrypted/sdk/bin/scrypted-readme.js","scrypted-package-json":"node node_modules/@scrypted/sdk/bin/scrypted-package-json.js"},"dependencies":{"@scrypted/sdk":"^0.5.29"},"devDependencies":{"@scrypted/common":"^1.0.0","@types/node":"^20.11.0","typescript":"^5.3.0"},"repository":{"type":"git","url":"git+https://github.com/JoshuaSeidel/scrypted-privacy-manager-plugin.git"},"bugs":{"url":"https://github.com/JoshuaSeidel/scrypted-privacy-manager-plugin/issues"},"homepage":"https://github.com/JoshuaSeidel/scrypted-privacy-manager-plugin#readme","_id":"@blueharford/scrypted-privacy-manager@0.0.30-beta","gitHead":"33d8689ace9e5d692d017943bcd2eedf9b618d7d","_nodeVersion":"23.4.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-vUx82+l6D17XY3GKlEAZCSnzKnoIZahDS9pXEwly0VJ2UrQlnTrMwcTZz6HraH4LzMewaQwTdQ/1eypABpQz/g==","shasum":"1e13a911fe1d6440b0abaaebefe1dcb81f198d89","tarball":"https://registry.npmjs.org/@blueharford/scrypted-privacy-manager/-/scrypted-privacy-manager-0.0.30-beta.tgz","fileCount":33,"unpackedSize":1018943,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDTlRuwhHyawZhboy/qPQ+ApidxE5xuKohqioGhCx31aAIgaabi/JSzAvT/1qRQqawXS2lPTlefq9ku2+ugLegqqGo="}]},"_npmUser":{"name":"blueharford","email":"me@joshuaseidel.com"},"directories":{},"maintainers":[{"name":"blueharford","email":"me@joshuaseidel.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/scrypted-privacy-manager_0.0.30-beta_1767988814828_0.2925309479686671"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-08T15:57:41.026Z","modified":"2026-01-09T20:00:15.176Z","0.0.1-beta":"2026-01-08T15:57:41.280Z","0.0.2-beta":"2026-01-08T16:08:01.988Z","0.0.3-beta":"2026-01-08T16:19:17.222Z","0.0.4-beta":"2026-01-08T16:37:41.175Z","0.0.5-beta":"2026-01-08T16:47:19.380Z","0.0.6-beta":"2026-01-08T16:54:47.060Z","0.0.7-beta":"2026-01-08T17:29:37.627Z","0.0.8-beta":"2026-01-08T17:33:28.855Z","0.0.9-beta":"2026-01-08T17:40:27.415Z","0.0.10-beta":"2026-01-09T00:29:52.360Z","0.0.11-beta":"2026-01-09T00:46:21.500Z","0.0.12-beta":"2026-01-09T00:59:11.186Z","0.0.13-beta":"2026-01-09T01:08:13.045Z","0.0.14-beta":"2026-01-09T01:11:24.797Z","0.0.15-beta":"2026-01-09T01:14:34.197Z","0.0.16-beta":"2026-01-09T01:19:11.241Z","0.0.17-beta":"2026-01-09T01:20:42.794Z","0.0.18-beta":"2026-01-09T01:22:50.761Z","0.0.19-beta":"2026-01-09T01:24:34.454Z","0.0.20-beta":"2026-01-09T01:32:46.219Z","0.0.21-beta":"2026-01-09T01:34:45.418Z","0.0.22-beta":"2026-01-09T01:40:48.871Z","0.0.23-beta":"2026-01-09T01:44:37.475Z","0.0.24-beta":"2026-01-09T01:45:51.681Z","0.0.25-beta":"2026-01-09T02:45:36.273Z","0.0.26-beta":"2026-01-09T02:48:42.095Z","0.0.27-beta":"2026-01-09T02:52:32.980Z","0.0.28-beta":"2026-01-09T19:36:46.324Z","0.0.29-beta":"2026-01-09T19:39:12.499Z","0.0.30-beta":"2026-01-09T20:00:14.998Z"},"bugs":{"url":"https://github.com/JoshuaSeidel/scrypted-privacy-manager-plugin/issues"},"author":{"name":"blueharford"},"license":"Apache-2.0","homepage":"https://github.com/JoshuaSeidel/scrypted-privacy-manager-plugin#readme","keywords":["scrypted","privacy","camera","recording","schedule","home-assistant","nvr"],"repository":{"type":"git","url":"git+https://github.com/JoshuaSeidel/scrypted-privacy-manager-plugin.git"},"description":"Scrypted plugin for granular camera privacy controls with scheduling, profiles, and Home Assistant integration","maintainers":[{"name":"blueharford","email":"me@joshuaseidel.com"}],"readme":"# Scrypted Privacy Manager\n\nA 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.\n\n## Features\n\n### Per-Camera Privacy Controls\n- **Block Recording**: Prevent video from being recorded\n- **Block Events**: Suppress motion and detection events\n- **Block Streaming**: Block live video streaming and snapshots\n- **Block Detection**: Disable object detection processing\n- **Block Motion Alerts**: Suppress motion detection notifications\n\n### Privacy Profiles\nCreate named profiles that apply settings to groups of cameras:\n- **Night Mode**: Indoor cameras OFF, outdoor cameras ON\n- **Away Mode**: All cameras ON\n- **Home Mode**: Indoor cameras OFF during the day\n- **Custom profiles**: Create your own\n\n### Time-Based Scheduling\nConfigure automatic privacy based on time:\n- **Daily**: Apply privacy settings every day\n- **Weekdays**: Monday through Friday only\n- **Weekends**: Saturday and Sunday only\n- **Custom**: Select specific days\n\nExample: Disable indoor camera recording from 8 AM to 10 PM on weekdays.\n\n### Panic Mode (Quick Toggle)\nOne-click button to immediately block ALL cameras:\n- Overrides all settings, schedules, and profiles\n- Exposed as a Home Assistant switch for automation\n\n### Home Assistant Integration\nAll profiles and panic mode are exposed as switches:\n- `switch.privacy_panic_mode`\n- `switch.privacy_night_mode`\n- `switch.privacy_away_mode`\n- etc.\n\n### Webhook Notifications\nHTTP POST notifications when privacy settings change:\n```json\n{\n  \"event\": \"privacy_changed\",\n  \"timestamp\": \"2024-01-08T10:30:00Z\",\n  \"camera\": \"Living Room Camera\",\n  \"cameraId\": \"abc123\",\n  \"settings\": {\n    \"blockRecording\": true,\n    \"blockEvents\": true,\n    \"blockStreaming\": false,\n    \"blockDetection\": true,\n    \"blockMotionAlerts\": true\n  },\n  \"trigger\": \"schedule\"\n}\n```\n\n### Audit Logging\nTrack all privacy setting changes:\n- Timestamp\n- Camera affected\n- Previous and new settings\n- Trigger (manual, schedule, profile, panic)\n\n## Installation\n\n### From NPM\n```bash\nnpm install @blueharford/scrypted-privacy-manager\n```\n\n### In Scrypted\n1. Go to **Plugins** in the Scrypted web interface\n2. Click **Install Plugin**\n3. Search for \"Privacy Manager\" or paste the NPM package name\n4. Click **Install**\n\n## Configuration\n\n### Global Settings\nAccess via **Plugins > Privacy Manager > Settings**:\n\n| Setting | Description |\n|---------|-------------|\n| Panic Mode | Emergency: Block ALL cameras immediately |\n| Default Settings | Default privacy settings for new cameras |\n| Webhook URL | HTTP endpoint for notifications |\n| Webhook Events | Which events trigger webhooks |\n| Audit Log Retention | Days to keep audit entries |\n\n### Per-Camera Settings\nEach camera will have a **Privacy Controls** section in its settings:\n\n| Setting | Description |\n|---------|-------------|\n| Enable Privacy Controls | Master switch for this camera |\n| Block Recording | Prevent recording |\n| Block Events | Suppress events |\n| Block Streaming | Block live video |\n| Block Detection | Disable object detection |\n| Block Motion Alerts | Suppress motion alerts |\n| Enable Schedule | Use time-based automation |\n| Schedule Type | Daily/Weekdays/Weekends/Custom |\n| Privacy Start Time | When privacy mode activates |\n| Privacy End Time | When privacy mode deactivates |\n\n### Creating Profiles\n1. Go to **Plugins > Privacy Manager**\n2. Click **Add New Device**\n3. Enter a profile name (e.g., \"Night Mode\")\n4. Configure the profile:\n   - Select cameras to include\n   - Set which privacy options to apply\n5. Toggle the profile on/off as needed\n\n## HTTP API\n\nThe plugin exposes HTTP endpoints:\n\n### GET /status\nReturns current status:\n```json\n{\n  \"panicMode\": false,\n  \"profiles\": [\n    { \"id\": \"profile-123\", \"name\": \"Night Mode\", \"active\": true, \"cameraCount\": 3 }\n  ],\n  \"schedules\": {\n    \"totalSchedules\": 5,\n    \"activeSchedules\": 2\n  }\n}\n```\n\n### GET /audit\nReturns audit log as JSON.\n\n### POST /panic\nEnable/disable panic mode:\n```json\n{ \"enabled\": true }\n```\n\n## Use Cases\n\n### Indoor Cameras During Day\nDisable recording on indoor cameras while you're home:\n\n1. Create a profile \"Home Mode\"\n2. Add all indoor cameras\n3. Enable: Block Recording, Block Events, Block Detection\n4. Set schedule: Daily, 8:00 AM - 10:00 PM\n\n### Privacy When Working From Home\nDisable office camera during work hours:\n\n1. Go to office camera settings\n2. Enable schedule\n3. Type: Weekdays\n4. Start: 09:00, End: 17:00\n\n### Instant Privacy\nNeed immediate privacy?\n\n1. Open Scrypted or Home Assistant\n2. Turn on \"Privacy: Panic Mode\"\n3. All cameras immediately stop recording/streaming\n\n## Development\n\n### Building\n```bash\nnpm install\nnpm run build\n```\n\n### Local Development\n```bash\nnpm run scrypted-deploy-debug\n```\n\n## License\n\nApache-2.0\n\n## Author\n\nblueharford\n\n## Links\n\n- [NPM Package](https://www.npmjs.com/package/@blueharford/scrypted-privacy-manager)\n- [GitHub Repository](https://github.com/blueharford/scrypted-privacy-manager)\n- [Scrypted](https://www.scrypted.app)\n","readmeFilename":"README.md"}