Exif is a powerful metadata extraction and management tool that supports multiple file types including images, videos, audio, and documents.
It provides:
- 🖥️ A modern GUI for beginners
- 💻 A command-line interface (CLI) for advanced users
Use Exif to extract, analyze, edit, and remove metadata with ease.
- Extract EXIF data (camera model, ISO, shutter speed, etc.)
- View image properties (dimensions, color profile, format)
- Extract GPS data & view location on Google Maps
- Remove metadata for privacy
- Extract video metadata (codec, duration, resolution, frame rate)
- Get audio stream details
- View technical specifications
- Extract ID3 tags (artist, album, track)
- View bitrate, sample rate, channels
- Manage audio properties
- Extract metadata from PDF, DOCX, TXT
- Read author, title, creation/modification dates
- Generate Google Maps links from GPS metadata
- View exact file location in browser
| Category | Formats |
|---|---|
| Images | JPG, JPEG, PNG, GIF, BMP, TIFF |
| Videos | MP4, AVI, MOV, MKV |
| Audio | MP3, WAV, FLAC |
| Docs | PDF, DOC/DOCX, TXT |
- Interactive visualizations of metadata across multiple files
- Dark mode dashboard with Power BI-style layout
- 7+ chart types: pie charts, bar charts, timelines, scatter plots, histograms, box plots
- Statistical analysis: file type distribution, camera usage, ISO/aperture patterns, resolution analysis
- Export options: View charts in browser, save as HTML
- Fully interactive: Hover for details, zoom, pan, and more
- Python 3.8+
- Install dependencies:
pip install -r requirements.txtRun the automated setup script:
bash setup.shThis will:
- Create a virtual environment
- Install all dependencies
- Set up the project structure
- Configure the environment
- Clone the repository:
git clone https://github.com/AryanVBW/Exif.git
cd Exif
python exif-gui.pygit clone https://github.com/AryanVBW/Exif.git
cd Exif
python exif-cli.py path/to/filepython exif-cli.py photo.jpgRun a quick test with automatically generated sample data:
python test_visualizations.pyThis will:
- Generate 150 sample files with realistic metadata
- Create 7 interactive visualizations
- Open the dashboard in your browser
- Save charts to
exports/test_visualizations/
Process your actual media files and create visualizations:
python demo_visualizations.pyThis will:
- Scan your
media/directory for files - Extract metadata from all supported file types
- Perform statistical analysis
- Generate comprehensive visualizations
- Create an interactive dashboard
- Save to
exports/directory
The visualization dashboard includes:
- File Types: Pie chart showing file type distribution
- Camera Models: Bar chart of most-used cameras
- Timeline: Line chart of files over time
- File Sizes: Histogram with size distribution
- Resolution: Scatter plot of image dimensions
- ISO Settings: Distribution of ISO values
- Aperture: Box plot of aperture settings by camera
All charts are fully interactive:
- Hover to see detailed information
- Click and drag to zoom into specific areas
- Double-click to reset the view
- Use toolbar to save charts as PNG
- Click "⤢" icon to open chart in new tab
- JPG/JPEG
- PNG
- GIF
- BMP
- TIFF
- MP4
- AVI
- MOV
- MKV
- MP3
- WAV
- FLAC
- DOC/DOCX
- TXT
- Python 3.8+
- Pillow
- exifread
- moviepy
- eyed3
- python-magic
- ffmpeg
- pdfplumber
- python-docx
- mutagen
- rich
- plotly (5.11+) - Interactive charts
- pandas - Data manipulation
- numpy - Numerical operations
- matplotlib - Static visualizations
- seaborn - Statistical graphics
All dependencies can be installed with:
pip install -r requirements.txt
pip install -r requirements-dashboard.txtOr use the automated setup:
bash setup.shExif/
├── exif-gui.py # GUI application (tkinter-based)
├── exif-cli.py # Command-line interface tool
├── exif-main.py # Main CLI script
├── exif.py # Terminal output version
├── remove-exif.py # Remove EXIF data from images
├── test_visualizations.py # Quick test with sample data
├── demo_visualizations.py # Full demo with your files
├── setup.sh # Automated setup script
├── requirements.txt # Core dependencies
├── requirements-dashboard.txt # Visualization dependencies
├── core/ # Core modules
│ ├── data_models.py # Data structures (Pydantic models)
│ ├── metadata_aggregator.py # Batch processing & extraction
│ └── data_storage.py # SQLite database operations
├── analysis/ # Analysis modules
│ └── statistical_analyzer.py # Statistical analysis
├── visualization/ # Visualization modules
│ └── visualizer.py # Chart generation (Plotly)
├── exports/ # Generated visualizations
├── media/ # Your media files (for processing)
└── data/ # Database storage
python exif-cli.py photo.jpgpython demo_visualizations.pypython exif-gui.pypython test_visualizations.pyThe visualization dashboard provides a modern, dark-mode interface similar to Power BI:
- All charts visible at once (no scrolling)
- 4x2 grid layout on desktop
- Fully responsive design
- Interactive tooltips and zoom
- Professional dark theme
This project is licensed under the MIT License - see the LICENSE file for details.
Created by AryanVBW
- Extract exif data of images jpg, jpeg, png.
- Clear exif data of images.
- Save data in a text file.
- Modern GUI application for easy metadata extraction.
- Support for multiple file types including images, videos, and audio.
- Images:
- PNG, JPG, JPEG, GIF, BMP, TIFF
- Videos :
- MP4, MKV, AVI, MOV
- Audio :
- MP3 (limited support, additional library may be required)
- OutputThe script will display metadata information for each file.If the output is set to a file, the results will be saved in exif_data.txt.
- Add .jpg to subfolder ./images from where the script is stored.
- Note: Most social media sites strip exif data from uploaded photos.
- Install the required dependencies:
python exif-cli.py video.mp4 --format json --save metadata.jsonpython remove-exif.py image.jpgpython exif-cli.py photo.jpg --open-mapspython exif-cli.py *.jpg --format json| Command | Description | Example |
|---|---|---|
--format json |
Export metadata in JSON format | python exif-cli.py file.jpg --format json |
--save file.json |
Save metadata to file | python exif-cli.py file.mp4 --save meta.json |
--open-maps |
Open GPS location in Google Maps | python exif-cli.py photo.jpg --open-maps |
-all= |
Remove all metadata from file | python remove-exif.py file.jpg |
-overwrite_original |
Overwrite files without backup | python exif-cli.py file.jpg -overwrite_original |
- EXIF (Exchangeable Image File Format) → Camera settings (aperture, shutter speed, ISO, flash, orientation)
- IPTC (International Press Telecommunications Council) → Captions, copyright, creator, keywords
- XMP (Extensible Metadata Platform) → Adobe fields (title, description, author, subject)
- GPS Metadata → Latitude, longitude, altitude, timestamp
- Audio Tags (ID3, Vorbis, etc.) → Artist, album, track number, genre
| Problem | Solution |
|---|---|
Permission denied |
Run with sudo on Linux/macOS |
Backup files clutter folder (_original) |
Use -overwrite_original flag |
| Missing metadata fields | Not all file formats support every tag |
| Garbled characters in output | Use UTF-8 encoding: exiftool -charset UTF8 file.jpg |
| GUI not starting | Ensure all dependencies from requirements.txt are installed |
Q1: Is Exif safe to use?
✅ Yes, but always back up your files before modifying metadata.
Q2: Does Exif overwrite files?
By default, backups are created. Use -overwrite_original to skip them.
Q3: Is it cross-platform?
Yes, works on Windows, macOS, and Linux.
Q4: Can Exif handle videos and audio files?
Yes, basic metadata extraction is supported for video and audio formats.
Q5: How can I see all available metadata fields in a file?
Run:
python exif-cli.py file.jpg --format jsonThis project is licensed under the MIT License – see LICENSE.
- Developed by AryanVBW
- Inspired by David Bombal’s Exif script
- Thanks to the open-source community for contributions and testing


