"Find Any File, Filter by Everything"
A powerful metadata extraction and filtering system for Windows that lets you find files instantly by filtering on extracted metadata, not just filename.
Think iTunes for all file types. MetaFinder scans your folders once, extracts 90+ metadata fields from every file, and lets you filter/search with a beautiful, fast interface.
- Windows Search only indexes filenames and basic properties
- Finding files requires remembering exact names or locations
- Rich metadata (camera info, GPS, author, BPM, etc.) is hidden and unusable
Scan once β Extract everything β Filter instantly
- Scan 60,000 files in 5-10 minutes
- Never wait again - all queries are instant
- Incremental rescan for changed files
- Images: Camera make/model, GPS location, ISO, aperture, date taken
- Documents: Author, page count, word count, company, keywords
- Audio: Artist, album, BPM, bitrate, duration, lyrics
- Video: Codec, resolution, FPS, duration, audio tracks
- Executables: Version info, company, digital signature
- Archives: Compression method, file count, encryption status
- Source Code: Language, line count, function count, complexity
- Real-Time Filtering: Results update as you type
- Multi-Criteria Search: Combine any filters (AND/OR logic)
- Saved Queries: Save frequently used filter combinations
- Export Results: CSV, JSON, file lists
- Filter results appear in <100ms
- SQLite database with full-text search (FTS5)
- Optimized indexes for common queries
Find files you never could before:
πΈ "All photos taken with Canon 5D in Paris during 2024"
Filter: Type=Image, Camera=Canon, GPS=Paris, Year=2024
π "PDFs authored by John Smith over 50 pages"
Filter: Type=PDF, Author=John Smith, Pages>50
π΅ "Running playlist: 140-160 BPM songs"
Filter: Type=Audio, BPM=140-160
π¬ "4K videos longer than 10 minutes"
Filter: Type=Video, Resolution>=3840x2160, Duration>600s
π "CAD drawings for Building-A project modified this week"
Filter: Extension=dwg, Project=Building-A, Modified=Last7Days
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π MetaFinder [Scan] [βοΈ] β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β π Quick Search: [paris canon 2024___] π― Advanced β
β β
β Active Filters: [.jpg β] [Canon β] [Paris β] β
β£βββββββββββββββββββββββββββββββββββββββββββββββββββββ«
β FILTERS β RESULTS (1,234 files) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π File Type β πΈ vacation_paris_001.jpg β
β β Images (5.2k) β Canon EOS 5D Mark IV β
β β‘ Documents β Paris, France (48.85, 2.35) β
β β‘ Audio β 2024-06-15 14:32:18 β
β β ISO 400, f/2.8, 1/250s β
β π
Date β [Open] [Show in Folder] β
β β 2024 β β
β β πΈ vacation_paris_002.jpg β
β πΈ Camera β Canon EOS 5D Mark IV β
β β Canon (234) β Paris, France β
β β‘ Nikon (89) β ... β
ββββββββββββββββββββ»βββββββββββββββββββββββββββββββββ
We have a fully functional prototype with:
- β CLI interface (scan, search, stats)
- β GUI interface (modern CustomTkinter design)
- β PyExifTool integration (1000+ file formats)
- β SQLite database with fast queries
- β All tests passing
# 1. Clone the repository (ExifTool included!)
git clone https://github.com/yourusername/MetaFinder.git
cd MetaFinder
# 2. Install Python dependencies
pip install -r requirements.txt
# 3. Run!
python metafinder_gui.pyThat's it! ExifTool is now pre-bundled in the repository:
- β
Windows: ExifTool 13.45 included in
vendor/bin/(~34 MB) - β No downloads needed - clone and run
- β No PATH setup - works immediately
- β Portable - move folder anywhere
macOS/Linux users:
# ExifTool not pre-bundled for your OS - install once:
# macOS:
brew install exiftool
# Linux:
sudo apt install libimage-exiftool-perl
# Then run MetaFinder normallypython3 metafinder_gui.py# Scan a folder
python3 metafinder_cli.py scan ~/Pictures
# Search for files
python3 metafinder_cli.py search --type image --camera Canon
# View statistics
python3 metafinder_cli.py stats
# Get file info
python3 metafinder_cli.py info ~/Pictures/photo.jpg- Click "Scan Folder"
- Select your top-level directory
- Wait for scan to complete (5-10 mins for 60k files)
- Database created with all metadata
- Select filters from left sidebar
- Results update in real-time
- Combine any filters (AND logic by default)
- Use quick search for keywords
- Double-click to open file
- Right-click for context menu
- Select multiple files for batch actions
- Export results to CSV/JSON
- Click "Save Query" to save current filters
- Give it a name (e.g., "My Running Playlist")
- Load saved queries anytime
- Click "Rescan" to update changed files
- Much faster than full scan
- Only processes new/modified files
- Scanner Engine: Extracts metadata using specialized extractors
- Database Layer: SQLite with FTS5 for fast queries
- Filter UI: CustomTkinter-based modern interface
- ImageExtractor: Pillow, exifread (EXIF, GPS, color)
- DocumentExtractor: PyPDF2, python-docx, openpyxl
- AudioExtractor: mutagen (ID3 tags)
- VideoExtractor: ffmpeg-python
- ExecutableExtractor: pefile (version info)
- ArchiveExtractor: zipfile, rarfile, py7zr
- CodeExtractor: pygments (language detection, metrics)
| Category | Extensions | Metadata Fields |
|---|---|---|
| Images | jpg, png, gif, bmp, tiff, raw | 45+ (EXIF, GPS, camera) |
| Documents | pdf, doc, docx, xls, xlsx, ppt, pptx | 30+ (author, pages, words) |
| Audio | mp3, flac, wav, m4a, ogg | 35+ (artist, album, BPM) |
| Video | mp4, mkv, avi, mov, wmv | 30+ (codec, resolution, FPS) |
| Archives | zip, rar, 7z, tar, gz | 15+ (compression, contents) |
| Executables | exe, dll, sys | 25+ (version, signature) |
| Source Code | py, js, java, cpp, c, html, css | 20+ (LOC, functions) |
| CAD | dwg, dxf, skp | 15+ (author, layers) |
- Find all photos from specific camera
- Filter by GPS location
- Search by camera settings (ISO, aperture)
- Organize by shooting date
- Find videos by resolution/codec
- Filter music by BPM for playlists
- Search documents by author
- Locate files by software used
- Find code files by language
- Filter by line count or complexity
- Search for files with TODOs
- Organize by project
- Find PDFs by author or page count
- Filter Word docs by company
- Search presentations by slide count
- Locate files by keywords
- Organize massive file collections
- Find duplicates by hash
- Filter by any metadata
- Export catalogs
- OS: Windows 10 or later
- Python: 3.11+ (for building from source)
- Disk Space: ~5 KB per file for database (~300 MB for 60k files)
- RAM: ~500 MB during normal operation
- Project brainstorm and planning
- Research open source solutions (PyExifTool selected)
- Scanner engine with PyExifTool (1000+ formats)
- SQLite database with FTS5
- CLI interface (scan, search, stats, info)
- GUI interface (CustomTkinter)
- Metadata extraction for all file types
- Filter panel with dynamic filters
- Results display with file cards
- Statistics dashboard
- All tests passing (100%)
- Test with real user files
- Thumbnail preview for images
- Date range picker
- Saved filter presets
- Export results (CSV, JSON)
- Keyboard shortcuts
- Error recovery
- User documentation
- Incremental rescan (only changed files)
- Background indexing
- Thumbnail cache
- Duplicate detection (hash-based)
- Batch file operations
- Advanced query builder
- Multiple database catalogs
- Cloud storage support (Google Drive, Dropbox)
- Network share scanning
- Smart collections
- Tag management
- Plugin system for custom extractors
- API for external tools
- Mobile app for browsing catalogs
Contributions welcome! Areas to help:
- New metadata extractors
- UI/UX improvements
- Performance optimizations
- Documentation
- Bug reports
MIT License - See LICENSE for details
Powered by:
- ExifTool by Phil Harvey - Industry-standard metadata extraction (Perl Artistic License)
- PyExifTool - Python wrapper for ExifTool
Inspired by:
- iTunes (music library organization)
- Everything by voidtools (fast file search)
- Adobe Lightroom (photo cataloging)
Built with:
- Python 3.11+
- CustomTkinter - Modern UI framework
- SQLite - Fast database with FTS5
- Pillow - Image processing
Special Thanks:
- Phil Harvey for creating and maintaining ExifTool for 20+ years
- The open source community for excellent Python libraries
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: See PROJECT_BRAINSTORM.md for detailed planning
- β 100x more metadata
- β Advanced filtering
- β Beautiful UI
- β Actually works
- β Rich metadata (not just filenames)
- β Smart filtering (not just text search)
- β File-type specific features
- β No folder structures to maintain
- β Filter any way you want
- β Find files in seconds
- β Never reorganize again
Ready to find your files like never before? π
Star this repo if you're interested in the project!
Made with β€οΈ for people tired of searching for files