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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfe5db92a810d5b8a62098740fc03c5f1d78ee56338e18a34fdea7ccca05f20f
|
|
| MD5 |
5e475d3482679bdbca711253f62646cc
|
|
| BLAKE2b-256 |
51c8a1dc7d25186ec5ac14f95fff2eba84e815cd78f9049e9376a1df699ae3a0
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a348436f7f5fd972bc169cc15778dfd9e3b3901ef7e33c4b98c3f06c51ca397
|
|
| MD5 |
9089cc438a3863cfaf6b56ebdeaced24
|
|
| BLAKE2b-256 |
453216016d575b189932aad59956abf940ee1a5d6b3dd08b929ed0cd898b73ab
|