GitHunt
IA

iamsanmith/MetaSort

๐Ÿ“ธ Smart Google Photos organizer! Clean files, extract dates, embed metadata, sort by date, generate reports. Supports 50+ formats including RAW.

macOS
ย 
Windows
ย 
Linux
ย 

Donate via UPI
Donate via PayPal
Donate via Ko-fi

MetaSort Logo

MetaSort v1.0.0

๐Ÿš€ Google Photos Takeout Organizer

Transform your messy Google Photos Takeout into beautifully organized media libraries!


๐ŸŽฏ What is MetaSort?

MetaSort is your all-in-one solution for organizing Google Photos Takeout exports (or any messy media folder). It's lightning-fast, user-friendly, and works on both macOS and Windows.

โœจ What MetaSort Does:

  • ๐Ÿงน Cleans up filenames and removes .json clutter
  • ๐Ÿ“… Extracts dates from filenames, JSON metadata, or file timestamps
  • ๐Ÿท๏ธ Embeds metadata (date, camera, GPS) directly into your photos/videos
  • ๐Ÿ“ฆ Sorts everything into organized folders by year/month/type
  • ๐Ÿ’ฌ Separates WhatsApp & Screenshots (optional)
  • ๐Ÿ“Š Generates beautiful reports (CSV + HTML)
  • ๐ŸŽจ Beautiful UI with progress bars and emoji-rich feedback

๐Ÿš€ Quick Start (5 Minutes)

For Non-Technical Users:

macOS:

  1. Download MetaSort from GitHub
  2. Open Terminal and run:
    ./scripts/build_macos.sh
  3. Double-click Run_MetaSort.command to start!

Windows:

  1. Download MetaSort from GitHub
  2. Right-click scripts/install_windows.bat โ†’ "Run as administrator"
  3. Follow the prompts - it will install everything automatically!

For Developers:

# Clone and build
git clone https://github.com/iamsanmith/MetaSort.git
cd MetaSort
cargo build --release
cargo run --release

๐Ÿ’™ Support & Donations

Donate via UPI

Donate with PayPal

Buy Me a Coffee at ko-fi.com





If MetaSort saved you hours, please consider supporting the project!
Every contribution, no matter how small, makes a difference and helps keep MetaSort free and actively maintained.


๐Ÿ“‹ Requirements

System Requirements:

  • macOS 10.13+ or Windows 10+
  • 4GB RAM (recommended)
  • 500MB free space for the application

Dependencies:

  • ExifTool - For metadata extraction and embedding
  • Rust - For building the application

๐Ÿ’ก Don't worry! Our installation scripts handle all dependencies automatically.


๐Ÿ› ๏ธ Detailed Installation

macOS Installation

# Download and extract MetaSort
git clone https://github.com/iamsanmith/MetaSort.git
cd MetaSort

# Build and create launchers
./scripts/build_macos.sh

Option 2: Manual Installation

# 1. Install Homebrew (if not installed)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 2. Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Press 1 when prompted, then restart Terminal

# 3. Install ExifTool
brew install exiftool

# 4. Build MetaSort
git clone https://github.com/iamsanmith/MetaSort.git
cd MetaSort
cargo build --release

Windows Installation

# Run PowerShell installer
powershell -ExecutionPolicy Bypass -File scripts/install_windows.ps1

# Or run batch installer
scripts/install_windows.bat

Option 2: Manual Installation

# 1. Install Rust from https://rustup.rs/

# 2. Install ExifTool
winget install ExifTool.ExifTool

# 3. Build MetaSort
git clone https://github.com/iamsanmith/MetaSort.git
cd MetaSort
cargo build --release

๐ŸŽฎ How to Use MetaSort

Step 1: Launch MetaSort

  • macOS: Double-click Run_MetaSort.command
  • Windows: Run cargo run --release or use the generated executable

Step 2: Select Your Folder

  • Drag and drop your Google Photos Takeout folder
  • Or type the path to your media folder
  • MetaSort works with any folder containing photos/videos!

Step 3: Choose Options

  • Separate WhatsApp/Screenshots? (Recommended: Yes)
  • Metadata embedding method (Recommended: Auto-detect)
  • Output directory (Default: MetaSort_Output)

Step 4: Watch the Magic! โœจ

MetaSort will:

  1. ๐Ÿ” Scan your files
  2. ๐Ÿงน Clean up filenames
  3. ๐Ÿ“… Extract dates
  4. ๐Ÿท๏ธ Embed metadata
  5. ๐Ÿ“ฆ Sort into folders
  6. ๐Ÿ“Š Generate reports

Step 5: Enjoy Your Organized Media! ๐ŸŽ‰

  • Photos/Videos: MetaSort_Output/Media Files/
  • Reports: MetaSort_Output/Technical Files/
  • HTML Summary: Open MetaSort_Output/Technical Files/report.html

๐Ÿ“ Output Structure

After processing, you'll find:

MetaSort_Output/
โ”œโ”€โ”€ Media Files/
โ”‚   โ”œโ”€โ”€ 2023/
โ”‚   โ”‚   โ”œโ”€โ”€ 01_January/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Photos/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Videos/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ Screenshots/
โ”‚   โ”‚   โ””โ”€โ”€ 02_February/
โ”‚   โ””โ”€โ”€ 2024/
โ”œโ”€โ”€ Technical Files/
โ”‚   โ”œโ”€โ”€ report.html          # Beautiful summary report
โ”‚   โ”œโ”€โ”€ processing_log.csv   # Detailed processing log
โ”‚   โ”œโ”€โ”€ metadata_summary.csv # Metadata statistics
โ”‚   โ””โ”€โ”€ error_log.txt        # Any issues encountered
โ””โ”€โ”€ Original Files/          # Backup of original structure

๐ŸŽฏ Supported File Types

Media Files:

  • Photos: JPG, JPEG, PNG, WEBP, HEIC, HEIF, BMP, TIFF, GIF, AVIF, JXL, JFIF
  • Raw Formats: RAW, CR2, NEF, ORF, SR2, ARW, DNG, PEF, RAF, RW2, SRW, 3FR, ERF, K25, KDC, MEF, MOS, MRW, NRW, SRF, X3F
  • Design Files: SVG, ICO, PSD, AI, EPS
  • Videos: MP4, MOV, MKV, AVI, WEBM, 3GP, M4V, MPG, MPEG, MTS, M2TS, TS, FLV, F4V, WMV, ASF, RM, RMVB, VOB, OGV, MXF, DV, DIVX, XVID

Metadata Sources:

  • JSON files (Google Photos metadata)
  • Filename patterns (WhatsApp, Screenshots, etc.)
  • EXIF data (embedded in files)
  • File timestamps (fallback)

๐Ÿ“… Smart Date Detection

MetaSort can extract dates from countless filename patterns:

๐Ÿ“ฑ Mobile Apps:

  • WhatsApp: IMG-20220101-WA0001.jpg โ†’ 2022:01:01 00:00:00
  • Screenshots: Screenshot_2023-01-01-12-00-00.png โ†’ 2023:01:01 12:00:00
  • Telegram: photo_2023-01-01 12.00.00.jpg โ†’ 2023:01:01 12:00:00

๐Ÿ“ท Cameras & Phones:

  • Samsung/Android: 20230101_123456.jpg โ†’ 2023:01:01 12:34:56
  • Google Photos: PXL_20230101_123456789.jpg โ†’ 2023:01:01 12:34:56
  • Sony Camera: DSC01234_20230101_123456.JPG โ†’ 2023:01:01 12:34:56
  • MIUI: IMG_20230101_120000.jpg โ†’ 2023:01:01 12:00:00

๐ŸŽฏ Custom Patterns:

  • wallpaper - IMG_20240113_143213Jan 13 2024 โ†’ 2024:01:13 14:32:13
  • San-1 Oct 2024.jxl โ†’ 2024:10:01 00:00:00
  • RMLmc20250531_115820_RMlmc.7 โ†’ 2025:05:31 11:58:20

๐Ÿ’ก MetaSort is smart! If your filename contains a date, it will likely find it!


๐Ÿ› ๏ธ Advanced Features

๐Ÿ”ง Command Line Options

# Run with specific options
cargo run --release -- --help

# Process specific folder
cargo run --release -- --input "/path/to/folder"

# Custom output directory
cargo run --release -- --output "/path/to/output"

๐Ÿ“Š Report Customization

  • HTML Report: Beautiful web-based summary with statistics
  • CSV Reports: Detailed logs for spreadsheet analysis
  • Error Logs: Track any issues during processing

๐Ÿ”„ Batch Processing

  • Process multiple folders
  • Resume interrupted operations
  • Skip already processed files

๐Ÿ†˜ Troubleshooting

Common Issues:

"ExifTool not found"

macOS:

brew install exiftool

Windows:

winget install ExifTool.ExifTool

"Permission denied"

macOS:

chmod +x scripts/build_macos.sh

Windows:

  • Right-click script โ†’ "Run as administrator"

"Rust not found"

macOS:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Windows:

"App won't open" (macOS)

  • Use Run_MetaSort.command instead of app bundles
  • Right-click โ†’ Open (if needed)

Getting Help:

  1. Check the error logs in MetaSort_Output/Technical Files/
  2. Ensure ExifTool is installed and accessible
  3. Try running in terminal for detailed error messages
  4. Open an issue on GitHub with error details

๐Ÿ—๏ธ Project Structure

MetaSort/
โ”œโ”€โ”€ ๐Ÿ“ src/                    # Source code
โ”‚   โ”œโ”€โ”€ main.rs               # Main application
โ”‚   โ”œโ”€โ”€ platform.rs           # Cross-platform compatibility
โ”‚   โ”œโ”€โ”€ ui.rs                 # User interface & progress bars
โ”‚   โ”œโ”€โ”€ media_cleaning.rs     # File cleaning & organization
โ”‚   โ”œโ”€โ”€ metadata_extraction.rs # JSON metadata extraction
โ”‚   โ”œโ”€โ”€ metadata_embed.rs     # Metadata embedding
โ”‚   โ”œโ”€โ”€ sort_to_folders.rs    # File sorting & folder creation
โ”‚   โ”œโ”€โ”€ csv_report.rs         # CSV report generation
โ”‚   โ”œโ”€โ”€ html_report.rs        # HTML report generation
โ”‚   โ”œโ”€โ”€ filename_date_guess.rs # Date extraction from filenames
โ”‚   โ””โ”€โ”€ utils.rs              # Utility functions
โ”œโ”€โ”€ ๐Ÿ“ scripts/               # Build & installation scripts
โ”‚   โ”œโ”€โ”€ build_macos.sh        # macOS build script
โ”‚   โ”œโ”€โ”€ build_windows.bat     # Windows build script
โ”‚   โ”œโ”€โ”€ install_windows.ps1   # Windows installer (PowerShell)
โ”‚   โ””โ”€โ”€ install_windows.bat   # Windows installer (Batch)
โ”œโ”€โ”€ ๐Ÿ“ docs/                  # Documentation
โ”‚   โ”œโ”€โ”€ SIMPLE_INSTALL.md     # Non-technical user guide
โ”‚   โ””โ”€โ”€ CROSS_PLATFORM_CHANGES.md # Technical details
โ”œโ”€โ”€ ๐Ÿ“ assets/                # Resources
โ”‚   โ”œโ”€โ”€ logo.png              # MetaSort logo
โ”‚   โ””โ”€โ”€ upi.png               # UPI QR code
โ”œโ”€โ”€ ๐Ÿš€ Run_MetaSort.command   # Easy launcher (macOS)
โ”œโ”€โ”€ ๐Ÿš€ MetaSort.command       # Advanced launcher (macOS)
โ”œโ”€โ”€ ๐Ÿ“„ README.md              # This file
โ”œโ”€โ”€ ๐Ÿ“„ LICENSE.txt            # Apache 2.0 License
โ””โ”€โ”€ ๐Ÿ“„ Cargo.toml             # Rust project configuration

๐Ÿค Contributing

We welcome contributions! Here's how you can help:

๐Ÿ› Report Bugs

  1. Check existing issues first
  2. Provide detailed error messages
  3. Include your OS and MetaSort version

๐Ÿ’ก Suggest Features

  1. Describe the feature clearly
  2. Explain why it would be useful
  3. Consider implementation complexity

๐Ÿ”ง Submit Code

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

๐Ÿ“ Documentation

  • Improve README sections
  • Add examples
  • Fix typos or unclear instructions

๐Ÿ“„ License

MetaSort is licensed under the Apache License 2.0 - see the LICENSE.txt file for details.

This means you can:

  • โœ… Use MetaSort for personal or commercial projects
  • โœ… Modify and distribute MetaSort
  • โœ… Use MetaSort in proprietary software
  • โœ… Distribute modified versions

Requirements:

  • Include the original license and copyright notice
  • State any changes you made

๐Ÿ† Acknowledgments

  • ExifTool - For powerful metadata handling
  • Rust Community - For the amazing ecosystem
  • All Contributors - For making MetaSort better
  • You - For using and supporting MetaSort!

๐ŸŽ‰ Ready to organize your photos?

Get started with MetaSort today!

๐Ÿš€ Quick Start Guide

Made with โค๏ธ by Sanmith S
Transform your digital memories into organized treasures!

Languages

Rust86.9%PowerShell5.1%Shell4.3%Batchfile3.7%

Contributors

Apache License 2.0
Created July 2, 2025
Updated March 9, 2026
iamsanmith/MetaSort | GitHunt