peepshow/ how-to/ blur-pii-in-frames

Reel #H-20 EgoBlur redacts faces + plates

peepshow how-to / blur-pii-in-frames

Redact faces and license plates from video frames

CCTV, dashcam, body-cam, and meeting recordings can't ship to third-party LLMs un-redacted. peepshow's `--blur` pass shells out to EgoBlur (Meta Research) and rewrites the JPEGs in-place before sinks fire. Pair with the OpenAI / Claude / Gemini sinks for compliant cloud-LLM pipelines.

Steps

  1. Install peepshow + EgoBlur

    EgoBlur is a Meta Research package.

    npm install -g peepshow
    pip install egoblur  # confirm exact package name on first install
  2. Run with --blur

    Modes: `faces` · `plates` · `both`. Strength: `low|medium|high` (default medium).

    peepshow ./cctv.mp4 --blur both --blur-strength high
  3. Push to a cloud LLM sink — privacy-preserving

    Frames are redacted before any sink fires. Top-level `BlurInfo` reports counts.

    peepshow ./meeting.mp4 --blur faces --sink openai-files
  4. Verify the redaction

    Open the report.html — frames are JPEG-rewritten in place.

    open ~/.peepshow/$(peepshow runs latest --id-only)/report.html

Why it works

EgoBlur (Meta Research) detects + blurs faces and license plates with state-of-the-art accuracy. peepshow's `--blur` pass runs after frame extraction and BEFORE any sink — so by the time the OpenAI / Claude / Gemini sink fires, the frames are already redacted. Pair with `--blur` and the cloud transcription providers (OpenAI Whisper API, AssemblyAI) for a compliant remote pipeline.

When it helps

  • CCTV / surveillance review where individuals shouldn't be identifiable in the LLM call.
  • Dashcam footage shared with insurance or fleet managers.
  • Body-cam review where privacy regulations require face/plate redaction.
  • Public-facing video content where you want to remove identifying details before captioning.

Pitfalls

  • EgoBlur isn't packaged on every system — confirm install path. Soft-fails per-frame if engine errors.
  • Detection accuracy varies by lighting, angle, distance — pair with `--blur-strength high` for over-zealous redaction when in doubt.
  • Mutates the frame JPEGs in place. Original frames are gone after the pass — keep a copy if you need both.

Works with these LLMs

Pairs with these sinks