{"id":18430385,"url":"https://github.com/aryanvbw/exif","last_synced_at":"2025-10-24T19:26:20.111Z","repository":{"id":153851443,"uuid":"529507366","full_name":"AryanVBW/Exif","owner":"AryanVBW","description":"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.","archived":false,"fork":false,"pushed_at":"2024-08-23T14:02:37.000Z","size":59,"stargazers_count":13,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-08-23T15:31:44.693Z","etag":null,"topics":["aryan-technologies","aryanshop","aryanvbw","data-extraction","image-metadata","image-processing","images-hacking","information-gathering","powered-by-aryan-technologies","vivek"],"latest_commit_sha":null,"homepage":"http://Exif.aryanvbw.live","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AryanVBW.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-27T06:51:44.000Z","updated_at":"2024-08-23T14:02:41.000Z","dependencies_parsed_at":"2024-08-23T15:22:36.600Z","dependency_job_id":"da3315d2-15ba-471d-b319-796e163b99ff","html_url":"https://github.com/AryanVBW/Exif","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AryanVBW%2FExif","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AryanVBW%2FExif/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AryanVBW%2FExif/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AryanVBW%2FExif/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AryanVBW","download_url":"https://codeload.github.com/AryanVBW/Exif/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247698120,"owners_count":20981303,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aryan-technologies","aryanshop","aryanvbw","data-extraction","image-metadata","image-processing","images-hacking","information-gathering","powered-by-aryan-technologies","vivek"],"created_at":"2024-11-06T05:20:32.852Z","updated_at":"2025-10-24T19:26:20.104Z","avatar_url":"https://github.com/AryanVBW.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📸 Exif - Comprehensive Metadata Tool  \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/ExIF-Logo_BackgroundWhite.png\" alt=\"GUI Screenshot\" width=\"200\"\u003e\n\u003c/p\u003e\n\n## 🔎 Overview  \n**Exif** is a powerful metadata extraction and management tool that supports multiple file types including **images, videos, audio, and documents**.  \nIt provides:  \n- 🖥️ A **modern GUI** for beginners  \n- 💻 A **command-line interface (CLI)** for advanced users  \n\nUse Exif to **extract, analyze, edit, and remove metadata** with ease.  \n\n---\n\n## 🖼️ GUI Screenshots  \n\n### Main Interface  \n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/screenshot.png\" alt=\"Exif GUI Main Interface\" width=\"800\"\u003e\n\u003c/p\u003e\n\n### Document Metadata View  \n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/screenshot_pdf.png\" alt=\"Exif GUI PDF Metadata\" width=\"800\"\u003e\n\u003c/p\u003e\n\n---\n\n## 🚀 Features  \n\n### Image Support  \n- Extract EXIF data (camera model, ISO, shutter speed, etc.)  \n- View image properties (dimensions, color profile, format)  \n- Extract GPS data \u0026 view location on Google Maps  \n- Remove metadata for privacy  \n\n### Video Support  \n- Extract video metadata (codec, duration, resolution, frame rate)  \n- Get audio stream details  \n- View technical specifications  \n\n### Audio Support  \n- Extract ID3 tags (artist, album, track)  \n- View bitrate, sample rate, channels  \n- Manage audio properties  \n\n### Document Support  \n- Extract metadata from **PDF, DOCX, TXT**  \n- Read author, title, creation/modification dates  \n\n### Location Features  \n- Generate Google Maps links from GPS metadata  \n- View exact file location in browser  \n\n---\n\n## 📂 Supported File Formats  \n\n| Category   | Formats |\n|------------|---------|\n| **Images** | JPG, JPEG, PNG, GIF, BMP, TIFF |\n| **Videos** | MP4, AVI, MOV, MKV |\n| **Audio**  | MP3, WAV, FLAC |\n| **Docs**   | PDF, DOC/DOCX, TXT |\n\n### 📊 Visualization Dashboard (NEW!)\n- **Interactive visualizations** of metadata across multiple files\n- **Dark mode dashboard** with Power BI-style layout\n- **7+ chart types**: pie charts, bar charts, timelines, scatter plots, histograms, box plots\n- **Statistical analysis**: file type distribution, camera usage, ISO/aperture patterns, resolution analysis\n- **Export options**: View charts in browser, save as HTML\n- **Fully interactive**: Hover for details, zoom, pan, and more\n\n## Installation\n---\n\n## ⚡ Installation  \n\n### Prerequisites  \n- Python **3.8+**  \n- Install dependencies:  \n```bash\npip install -r requirements.txt\n```\n\n### Quick Setup\nRun the automated setup script:\n```bash\nbash setup.sh\n```\n\nThis will:\n- Create a virtual environment\n- Install all dependencies\n- Set up the project structure\n- Configure the environment\n\n### GUI Application\n1. Clone the repository:\n### GUI Application  \n```bash\ngit clone https://github.com/AryanVBW/Exif.git\ncd Exif\npython exif-gui.py\n```\n\n### CLI Tool  \n```bash\ngit clone https://github.com/AryanVBW/Exif.git\ncd Exif\npython exif-cli.py path/to/file\n```\n\n---\n\n## 🛠️ Usage Examples  \n\n### Extract metadata from image  \n```bash\npython exif-cli.py photo.jpg\n```\n\n### 📊 Visualization Dashboard\n\n#### Quick Test (Sample Data)\nRun a quick test with automatically generated sample data:\n```bash\npython test_visualizations.py\n```\nThis will:\n- Generate 150 sample files with realistic metadata\n- Create 7 interactive visualizations\n- Open the dashboard in your browser\n- Save charts to `exports/test_visualizations/`\n\n#### Full Demo (Your Files)\nProcess your actual media files and create visualizations:\n```bash\npython demo_visualizations.py\n```\nThis will:\n- Scan your `media/` directory for files\n- Extract metadata from all supported file types\n- Perform statistical analysis\n- Generate comprehensive visualizations\n- Create an interactive dashboard\n- Save to `exports/` directory\n\n#### Dashboard Features\nThe visualization dashboard includes:\n- **File Types**: Pie chart showing file type distribution\n- **Camera Models**: Bar chart of most-used cameras\n- **Timeline**: Line chart of files over time\n- **File Sizes**: Histogram with size distribution\n- **Resolution**: Scatter plot of image dimensions\n- **ISO Settings**: Distribution of ISO values\n- **Aperture**: Box plot of aperture settings by camera\n\nAll charts are **fully interactive**:\n- Hover to see detailed information\n- Click and drag to zoom into specific areas\n- Double-click to reset the view\n- Use toolbar to save charts as PNG\n- Click \"⤢\" icon to open chart in new tab\n\n## Supported File Types\n\n### Images\n- JPG/JPEG\n- PNG\n- GIF\n- BMP\n- TIFF\n\n### Videos\n- MP4\n- AVI\n- MOV\n- MKV\n\n### Audio\n- MP3\n- WAV\n- FLAC\n\n### Documents\n- PDF\n- DOC/DOCX\n- TXT\n\n## Requirements\n\n### Core Dependencies\n- Python 3.8+\n- Pillow\n- exifread\n- moviepy\n- eyed3\n- python-magic\n- ffmpeg\n- pdfplumber\n- python-docx\n- mutagen\n- rich\n\n### Visualization Dependencies\n- plotly (5.11+) - Interactive charts\n- pandas - Data manipulation\n- numpy - Numerical operations\n- matplotlib - Static visualizations\n- seaborn - Statistical graphics\n\n### Installation\nAll dependencies can be installed with:\n```bash\npip install -r requirements.txt\npip install -r requirements-dashboard.txt\n```\n\nOr use the automated setup:\n```bash\nbash setup.sh\n```\n\n## Project Structure\n\n```\nExif/\n├── exif-gui.py              # GUI application (tkinter-based)\n├── exif-cli.py              # Command-line interface tool\n├── exif-main.py             # Main CLI script\n├── exif.py                  # Terminal output version\n├── remove-exif.py           # Remove EXIF data from images\n├── test_visualizations.py   # Quick test with sample data\n├── demo_visualizations.py   # Full demo with your files\n├── setup.sh                 # Automated setup script\n├── requirements.txt         # Core dependencies\n├── requirements-dashboard.txt # Visualization dependencies\n├── core/                    # Core modules\n│   ├── data_models.py       # Data structures (Pydantic models)\n│   ├── metadata_aggregator.py # Batch processing \u0026 extraction\n│   └── data_storage.py      # SQLite database operations\n├── analysis/                # Analysis modules\n│   └── statistical_analyzer.py # Statistical analysis\n├── visualization/           # Visualization modules\n│   └── visualizer.py        # Chart generation (Plotly)\n├── exports/                 # Generated visualizations\n├── media/                   # Your media files (for processing)\n└── data/                    # Database storage\n```\n\n## Usage Examples\n\n### Extract Metadata from Single File\n```bash\npython exif-cli.py photo.jpg\n```\n\n### Process Multiple Files\n```bash\npython demo_visualizations.py\n```\n\n### View in GUI\n```bash\npython exif-gui.py\n```\n\n### Quick Visualization Test\n```bash\npython test_visualizations.py\n```\n\n## Dashboard Screenshots\nThe visualization dashboard provides a modern, dark-mode interface similar to Power BI:\n- All charts visible at once (no scrolling)\n- 4x2 grid layout on desktop\n- Fully responsive design\n- Interactive tooltips and zoom\n- Professional dark theme\n\n## License\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Credits\nCreated by AryanVBW\n\n## Features\n- Extract exif data of images jpg, jpeg, png.\n- Clear exif data of images.\n- Save data in a text file.\n- Modern GUI application for easy metadata extraction.\n- Support for multiple file types including images, videos, and audio.\n## Supported Formats\n - Images:\n     - PNG, JPG, JPEG, GIF, BMP, TIFF\n - **Videos** :\n     - MP4, MKV, AVI, MOV\n - **Audio** :\n     - MP3 (limited support, additional library may be required)\n - 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.\n## Installation and usage instructions:\n\n### Command Line Usage\n- Add .jpg to subfolder ./images from where the script is stored. \n- Note: Most social media sites strip exif data from uploaded photos.\n\n### GUI Application Usage\n1. Install the required dependencies:\n### Save metadata to JSON  \n```bash\npython exif-cli.py video.mp4 --format json --save metadata.json\n```\n\n### Remove EXIF data from image  \n```bash\npython remove-exif.py image.jpg\n```\n\n### Auto-open GPS in Google Maps  \n```bash\npython exif-cli.py photo.jpg --open-maps\n```\n\n### Batch process multiple files  \n```bash\npython exif-cli.py *.jpg --format json\n```\n\n---\n\n## 📖 Command Reference  \n\n| Command | Description | Example |\n|---------|-------------|---------|\n| `--format json` | Export metadata in JSON format | `python exif-cli.py file.jpg --format json` |\n| `--save file.json` | Save metadata to file | `python exif-cli.py file.mp4 --save meta.json` |\n| `--open-maps` | Open GPS location in Google Maps | `python exif-cli.py photo.jpg --open-maps` |\n| `-all=` | Remove all metadata from file | `python remove-exif.py file.jpg` |\n| `-overwrite_original` | Overwrite files without backup | `python exif-cli.py file.jpg -overwrite_original` |\n\n---\n\n## 🏷️ Metadata Fields Explained  \n\n- **EXIF (Exchangeable Image File Format)** → Camera settings (aperture, shutter speed, ISO, flash, orientation)  \n- **IPTC (International Press Telecommunications Council)** → Captions, copyright, creator, keywords  \n- **XMP (Extensible Metadata Platform)** → Adobe fields (title, description, author, subject)  \n- **GPS Metadata** → Latitude, longitude, altitude, timestamp  \n- **Audio Tags (ID3, Vorbis, etc.)** → Artist, album, track number, genre  \n\n---\n\n## 🛑 Troubleshooting  \n\n| Problem | Solution |\n|---------|----------|\n| `Permission denied` | Run with `sudo` on Linux/macOS |\n| Backup files clutter folder (`_original`) | Use `-overwrite_original` flag |\n| Missing metadata fields | Not all file formats support every tag |\n| Garbled characters in output | Use UTF-8 encoding: `exiftool -charset UTF8 file.jpg` |\n| GUI not starting | Ensure all dependencies from `requirements.txt` are installed |\n\n---\n\n## ❓ FAQ  \n\n**Q1: Is Exif safe to use?**  \n✅ Yes, but always back up your files before modifying metadata.  \n\n**Q2: Does Exif overwrite files?**  \nBy default, backups are created. Use `-overwrite_original` to skip them.  \n\n**Q3: Is it cross-platform?**  \nYes, works on **Windows, macOS, and Linux**.  \n\n**Q4: Can Exif handle videos and audio files?**  \nYes, basic metadata extraction is supported for video and audio formats.  \n\n**Q5: How can I see all available metadata fields in a file?**  \nRun:  \n```bash\npython exif-cli.py file.jpg --format json\n```\n\n---\n\n## 📜 License  \nThis project is licensed under the MIT License – see [LICENSE](LICENSE).  \n\n---\n\n## 👨‍💻 Credits  \n- Developed by **AryanVBW**  \n- Inspired by David Bombal’s [Exif script](https://github.com/davidbombal/red-python-scripts/blob/main/exif.py)  \n- Thanks to the open-source community for contributions and testing  \n\n---\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faryanvbw%2Fexif","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faryanvbw%2Fexif","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faryanvbw%2Fexif/lists"}