HarshCasper / HarshCasper/Rotten-Scripts

[feature request]: File Metadata Extractor

Open
#1,449 4 comments 0 reactions 0 assignees View on GitHub
Assigned bug enhancement Up-For-Grab
Dominant language
Python
Stars
1.5k
Forks
497
PR merge metrics
No merged PRs in 30d

Description

### Is there an existing issue for this?

- [x] I have searched the existing issues.

### Describe the feature.

I want to contribute a **File Metadata Extractor** script that can extract comprehensive metadata from various file types including images, audio files, videos, and documents. This tool would be valuable for digital asset management, forensic analysis, file organization, and data cataloging.

**Key Features:**
- Extract metadata from multiple file formats (images, audio, video, documents)
- Support for popular formats: JPEG (EXIF), PNG, MP3 (ID3 tags), FLAC, PDF, DOCX, and more
- Command-line interface with flexible options
- Batch processing with recursive directory support
- Multiple output formats (JSON, CSV)
- Cross-platform compatibility
- Comprehensive error handling

### Problem/Motivation.

Currently, users need multiple separate tools to extract metadata from different file types:
- Image metadata requires specialized EXIF readers
- Audio files need ID3 tag extractors
- Document metadata extraction requires format-specific tools
- No unified solution exists in the repository for comprehensive metadata extraction

This creates inefficiency when managing digital assets or analyzing file collections. A unified metadata extraction tool would streamline these workflows.

### Possible Solution/Pitch.

The **File_Metadata_Extractor** script will provide:

### Supported File Types:
- **Images**: JPEG (EXIF data), PNG, TIFF, BMP, GIF
- **Audio**: MP3 (ID3 tags), FLAC, WAV, M4A, AAC, OGG
- **Video**: MP4, AVI, MKV, MOV, WMV (basic metadata)
- **Documents**: PDF, DOCX (document properties)

### Extracted Information:
- **File System**: Size, creation/modification dates, permissions
- **Images**: Dimensions, camera settings, GPS coordinates, timestamps
- **Audio**: Duration, bitrate, artist, album, title, genre, year
- **Documents**: Page/word count, author, creation date, keywords
- **Videos**: Duration, bitrate, basic properties

### Anything else?

_No response_

### Code of Conduct

- [x] I agree to follow this project's Code of Conduct

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.