Privacy-first video redaction tool — Automatically detect and blur sensitive information in screen recordings before sharing.
🔍 Smart Detection
- Watchlist-based text matching for specific terms
- Anchor-based detection (blur content relative to labels)
- Adaptive Sampling — Intelligent scan optimization (skips static frames, boosts on motion)
- Manual blur and blackout tools with motion tracking
- Optional content detection toggle for manual tools
🎯 Precise Redaction
- Real-time blur preview
- Responsive video player — Adapts to window size while maintaining aspect ratio
- Adjustable time ranges per detection
- Spatial resize handles for fine-tuning
- Frame-accurate motion tracking
📼 Professional Export
- GPU-accelerated encoding (NVIDIA NVENC / Apple VideoToolbox)
- H.264, H.265, and VP9 codec support
- Optional audio inclusion toggle
- Cross-platform support (Windows + macOS)
- Windows 10/11 or macOS (Apple Silicon recommended)
- Python 3.10+ with pip
- FFmpeg
- Node.js 18+ (for development)
- Download the latest release from Releases
- Extract to your preferred location
- Run
ScreenSafe.exe
# Clone the repository
git clone https://github.com/xersbtt/screensafe.git
cd screensafe
# Install frontend dependencies
npm install
# Install Python dependencies
cd python
pip install -r requirements.txt
cd ..
# Run in development mode
npm run tauri dev
# Build for production
npm run tauri build- Load Video — Drag & drop or click to select a video file
- Configure Detection — Add watchlist items or anchors in the Config Panel
- Scan — Click "Scan" to detect sensitive content
- Review — Check detections in the sidebar, adjust time ranges in the timeline
- Export — Click "Export" to create the redacted video
| Method | Best For | How It Works |
|---|---|---|
| Watchlist | Known text (emails, names) | Exact text matching with OCR |
| Anchors | Form fields, labels | Detects text near a reference label |
| Manual Blur | Arbitrary regions | Draw box with motion tracking |
| Blackout | Complete concealment | Solid black overlay with tracking |
| Key | Action |
|---|---|
Space |
Play/Pause |
← / → |
Skip 1 frame |
- Frontend: React + TypeScript + Vite
- Desktop: Tauri (Rust)
- Backend: Python (OCR, motion tracking)
- OCR: EasyOCR / Tesseract
- Video: FFmpeg with GPU support (NVENC on Windows, MPS on macOS)
screensafe/
├── src/ # React frontend
│ ├── components/ # UI components
│ ├── lib/ # Tauri bindings
│ └── types.ts # TypeScript types
├── src-tauri/ # Rust backend
├── python/ # Python analysis engine
│ ├── analysis/ # OCR and detection modules
│ └── main.py # Sidecar entry point
└── public/ # Static assets
Settings are accessible via the ⚙️ Settings button:
- Scan Interval — Frames between OCR scans (higher = faster, lower = more accurate)
- Motion Threshold — Sensitivity for motion tracking
- OCR Scale — Resolution multiplier for OCR accuracy
MIT License — see LICENSE for details.
Contributions welcome! Please read our contributing guidelines before submitting PRs.
