A powerful, cross-platform Python tool for deep metadata extraction from various file types. Perfect for digital forensics, organization, and curiosity!
- π Deep Metadata Extraction - Supports images (EXIF), audio (ID3), and video files
- π Recursive Scanning - Explores entire directory structures
- π Detailed Reports - Generates comprehensive metadata logs
- π Cross-Platform - Works on Windows, macOS, and Linux
- π‘οΈ Error Resilient - Continues scanning even if some files fail
- π Smart Filtering - Automatically skips system files and directories
| Category | Formats | Metadata Extracted |
|---|---|---|
| Images | JPG, PNG, HEIC, TIFF, WebP, BMP, GIF | EXIF, GPS, Camera settings, Timestamps |
| Audio | MP3, FLAC, M4A, OGG, WAV, AAC | ID3 tags, Duration, Bitrate, Codec info |
| Video | MP4, MOV, AVI, MKV, WMV | Duration, Resolution, Codec, Creation date |
| All Files | Any file type | Size, Creation/modification dates, Path |
-
Clone the repository:
git clone https://github.com/yourusername/metadata-explorer.git cd metadata-explorer
-
Install dependencies:
pip install -r requirements.txt
Basic Usage Scan the current directory:
python universal.py
Scan a specific directory:
python universal.py /path/to/your/files
Scan your entire pictures folder:
python universal.py ~/Pictures
π Example Output
FILE: beach_sunset.jpg PATH: Vacation_Photos/beach_sunset.jpg METADATA: β’ IMG_EXIF_DateTimeOriginal: 2023:07:15 18:32:45 β’ IMG_GPSInfo: GPSLatitudeRef: N, GPSLatitude: [38, 43, 23.4]... β’ IMG_Image_Make: Canon β’ IMG_Image_Model: Canon EOS R5 β’ FILE_SIZE: 8456723 bytes β’ CREATED: 1692067565.12345
π οΈ Advanced Usage Customizing Ignored Files Edit the ignored_dirs and ignored_files sets in the FileManager class to customize what gets skipped.
Output to Different Format The script outputs to metadata_report.log by default. Modify setup_logging() to change the output format or location.
Integrating with Other Tools Use the UniversalMetadataExtractor class independently in your projects:
python from pathlib import Path from universal import UniversalMetadataExtractor
extractor = UniversalMetadataExtractor() metadata = extractor.get_all_metadata(Path("your_file.jpg")) print(metadata["IMG_EXIF_DateTimeOriginal"])
π Project Structure
metadata-explorer/ βββ universal.py # Main script βββ requirements.txt # Dependencies βββ README.md # This file βββ metadata_report.log # Generated report (example) βββ examples/ βββ sample_scan/ # Example directory structure
π€ Contributing
Contributions are welcome! Here's how you can help:
Report Bugs - Open an issue with detailed information Suggest Features - Share your ideas for improvements Submit Pull Requests - Add support for new file formats or features
Development Setup Clone and install in development mode
git clone https://github.com/yourusername/metadata-explorer.git cd metadata-explorer pip install -e . pip install -r requirements-dev.txt # Optional dev dependencies
π Acknowledgments
exifread for EXIF data extraction mutagen for audio metadata hachoir for video metadata analysis Pillow for image processing capabilities
This tool is for educational and organizational purposes only. Always respect privacy laws and obtain proper permissions before scanning others' files.
Made with β€οΈ for digital explorers everywhere β If you find this useful, please consider starring the repository!