Skip to content
/ Exif Public

ExifTool is a powerful command-line tool that can be used to extract and edit metadata in a wide range of media files, including images, audio, and video. Metadata is information that is stored within a file that describes the fileโ€™s content or other attributes.

License

Notifications You must be signed in to change notification settings

AryanVBW/Exif

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

89 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ธ Exif - Comprehensive Metadata Tool

GUI Screenshot

๐Ÿ”Ž Overview

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.


๐Ÿ–ผ๏ธ GUI Screenshots

Main Interface

Exif GUI Main Interface

Document Metadata View

Exif GUI PDF Metadata


๐Ÿš€ Features

Image Support

  • 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

Video Support

  • Extract video metadata (codec, duration, resolution, frame rate)
  • Get audio stream details
  • View technical specifications

Audio Support

  • Extract ID3 tags (artist, album, track)
  • View bitrate, sample rate, channels
  • Manage audio properties

Document Support

  • Extract metadata from PDF, DOCX, TXT
  • Read author, title, creation/modification dates

Location Features

  • Generate Google Maps links from GPS metadata
  • View exact file location in browser

๐Ÿ“‚ Supported File Formats

Category Formats
Images JPG, JPEG, PNG, GIF, BMP, TIFF
Videos MP4, AVI, MOV, MKV
Audio MP3, WAV, FLAC
Docs PDF, DOC/DOCX, TXT

๐Ÿ“Š Visualization Dashboard (NEW!)

  • 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

Installation


โšก Installation

Prerequisites

  • Python 3.8+
  • Install dependencies:
pip install -r requirements.txt

Quick Setup

Run the automated setup script:

bash setup.sh

This will:

  • Create a virtual environment
  • Install all dependencies
  • Set up the project structure
  • Configure the environment

GUI Application

  1. Clone the repository:

GUI Application

git clone https://github.com/AryanVBW/Exif.git cd Exif python exif-gui.py

CLI Tool

git clone https://github.com/AryanVBW/Exif.git cd Exif python exif-cli.py path/to/file

๐Ÿ› ๏ธ Usage Examples

Extract metadata from image

python exif-cli.py photo.jpg

๐Ÿ“Š Visualization Dashboard

Quick Test (Sample Data)

Run a quick test with automatically generated sample data:

python test_visualizations.py

This will:

  • Generate 150 sample files with realistic metadata
  • Create 7 interactive visualizations
  • Open the dashboard in your browser
  • Save charts to exports/test_visualizations/

Full Demo (Your Files)

Process your actual media files and create visualizations:

python demo_visualizations.py

This 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

Dashboard Features

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

Supported File Types

Images

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

Videos

  • MP4
  • AVI
  • MOV
  • MKV

Audio

  • MP3
  • WAV
  • FLAC

Documents

  • PDF
  • DOC/DOCX
  • TXT

Requirements

Core Dependencies

  • Python 3.8+
  • Pillow
  • exifread
  • moviepy
  • eyed3
  • python-magic
  • ffmpeg
  • pdfplumber
  • python-docx
  • mutagen
  • rich

Visualization Dependencies

  • plotly (5.11+) - Interactive charts
  • pandas - Data manipulation
  • numpy - Numerical operations
  • matplotlib - Static visualizations
  • seaborn - Statistical graphics

Installation

All dependencies can be installed with:

pip install -r requirements.txt pip install -r requirements-dashboard.txt

Or use the automated setup:

bash setup.sh

Project Structure

Exif/ โ”œโ”€โ”€ 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 

Usage Examples

Extract Metadata from Single File

python exif-cli.py photo.jpg

Process Multiple Files

python demo_visualizations.py

View in GUI

python exif-gui.py

Quick Visualization Test

python test_visualizations.py

Dashboard Screenshots

The 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

License

This project is licensed under the MIT License - see the LICENSE file for details.

Credits

Created by AryanVBW

Features

  • 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.

Supported Formats

  • 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.

Installation and usage instructions:

Command Line Usage

  • Add .jpg to subfolder ./images from where the script is stored.
  • Note: Most social media sites strip exif data from uploaded photos.

GUI Application Usage

  1. Install the required dependencies:

Save metadata to JSON

python exif-cli.py video.mp4 --format json --save metadata.json

Remove EXIF data from image

python remove-exif.py image.jpg

Auto-open GPS in Google Maps

python exif-cli.py photo.jpg --open-maps

Batch process multiple files

python exif-cli.py *.jpg --format json

๐Ÿ“– Command Reference

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

๐Ÿท๏ธ Metadata Fields Explained

  • 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

๐Ÿ›‘ Troubleshooting

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

โ“ FAQ

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 json

๐Ÿ“œ License

This project is licensed under the MIT License โ€“ see LICENSE.


๐Ÿ‘จโ€๐Ÿ’ป Credits

  • Developed by AryanVBW
  • Inspired by David Bombalโ€™s Exif script
  • Thanks to the open-source community for contributions and testing

About

ExifTool is a powerful command-line tool that can be used to extract and edit metadata in a wide range of media files, including images, audio, and video. Metadata is information that is stored within a file that describes the fileโ€™s content or other attributes.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages