Skip to main content

Professional EXIF metadata removal tool for privacy and security

Project description

ShadowEXIF

Simple EXIF Metadata Removal Tool

ShadowEXIF is a straightforward command-line tool that removes or redacts EXIF metadata from your images. Perfect for protecting your privacy when sharing photos online.

Why Use ShadowEXIF?

Digital photos contain hidden metadata (EXIF) that can reveal:

  • Your exact location (GPS coordinates)
  • Camera make and model
  • When the photo was taken
  • Software used to edit the image
  • Sometimes even your name

ShadowEXIF cleans this data so you can share photos safely.

Installation

pip install shadowexif

Quick Start

# Clean a single image
shadowexif photo.jpg

# Clean multiple images
shadowexif *.jpg *.png

# Clean all images in a folder
shadowexif --directory /path/to/photos

# Replace metadata with "REDACTED" instead of removing it
shadowexif photo.jpg --mode redact

How It Works

Strip Mode (default): Completely removes all EXIF metadata

shadowexif photo.jpg

Redact Mode: Replaces sensitive data with "REDACTED"

shadowexif photo.jpg --mode redact

More Examples

# Process entire directory
shadowexif --directory ./photos

# Process with subdirectories too
shadowexif --directory ./photos --recursive

# Save cleaned images to a different folder
shadowexif --directory ./photos --output ./clean_photos

# Create backup copies before cleaning
shadowexif photo.jpg --backup

# Process multiple files with verbose output
shadowexif *.jpg --verbose

# Get detailed statistics
shadowexif --directory ./photos --stats

Command Line Options

Options:
  -d, --directory PATH     Directory containing images to process
  -o, --output PATH        Output directory for cleaned images
  -m, --mode {strip,redact} Processing mode (default: strip)
  -r, --recursive          Process subdirectories too
  --backup                 Create backup before processing
  --overwrite              Overwrite existing output files
  -j, --jobs N            Number of parallel jobs (default: 4)
  -v, --verbose           Show detailed output
  -q, --quiet             Show minimal output
  --stats                 Show processing statistics
  --version               Show version
  -h, --help              Show help

Supported Image Formats

  • JPEG/JPG
  • PNG
  • TIFF/TIF
  • BMP
  • GIF
  • WebP

Python API

You can also use ShadowEXIF in your Python code:

from shadowexif import ShadowEXIFProcessor

# Create processor
processor = ShadowEXIFProcessor()

# Clean a single file
success, output_path, error = processor.strip_exif('input.jpg')
if success:
    print(f"Cleaned image saved to: {output_path}")
else:
    print(f"Error: {error}")

# Process entire directory
stats = processor.process_directory('./photos', mode='strip')
print(f"Processed {stats.processed_files} files")

Privacy Benefits

  • 🛡️ Remove Location Data: Strip GPS coordinates from photos
  • 🔒 Hide Camera Info: Remove camera make, model, and settings
  • 📅 Remove Timestamps: Clean creation and modification dates
  • 👤 Remove Personal Info: Strip artist, copyright, and comments
  • 🔍 Prevent Tracking: Remove identifying digital fingerprints

Requirements

  • Python 3.7 or higher
  • Pillow (PIL) for image processing
  • piexif for EXIF handling

License

MIT License - see LICENSE file for details.

Author

Created by xmansussy (xmansussy@yahoo.com)

Issues & Support

If you encounter any problems or have questions, please open an issue on GitHub: https://github.com/xmansussy/shadowexif/issues

Changelog

v1.0.0 - Initial release

  • EXIF stripping and redaction
  • Multi-threaded batch processing
  • Command-line interface
  • Python API
  • Support for multiple image formats

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shadowexif-1.0.0.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shadowexif-1.0.0-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file shadowexif-1.0.0.tar.gz.

File metadata

  • Download URL: shadowexif-1.0.0.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for shadowexif-1.0.0.tar.gz
Algorithm Hash digest
SHA256 bfe5db92a810d5b8a62098740fc03c5f1d78ee56338e18a34fdea7ccca05f20f
MD5 5e475d3482679bdbca711253f62646cc
BLAKE2b-256 51c8a1dc7d25186ec5ac14f95fff2eba84e815cd78f9049e9376a1df699ae3a0

See more details on using hashes here.

File details

Details for the file shadowexif-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: shadowexif-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for shadowexif-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7a348436f7f5fd972bc169cc15778dfd9e3b3901ef7e33c4b98c3f06c51ca397
MD5 9089cc438a3863cfaf6b56ebdeaced24
BLAKE2b-256 453216016d575b189932aad59956abf940ee1a5d6b3dd08b929ed0cd898b73ab

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page