![macOS](https://img.shields.io/badge/macOS-blue?style=flat-square&logo=apple&logoColor=white)   ![Windows](https://img.shields.io/badge/Windows-blue?style=flat-square&logo=microsoft&logoColor=white)   ![Linux](https://img.shields.io/badge/Linux-blue?style=flat-square&logo=linux&logoColor=white)   [![Donate via UPI](https://img.shields.io/badge/Donate-UPI-blue?logo=googlepay&style=for-the-badge)](https://upier.vercel.app/pay/sanmith@superyes) [![Donate via PayPal](https://img.shields.io/badge/Donate-PayPal-blue?logo=paypal&style=for-the-badge)](https://www.paypal.com/paypalme/iamsanmith) [![Donate via Ko-fi](https://img.shields.io/badge/Donate-Ko--fi-blue?logo=kofi&style=for-the-badge)](https://ko-fi.com/L3L01JGIUW)
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: ```bash ./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: ```bash # 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 #### Option 1: Automated (Recommended) ```bash # 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 ```bash # 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 #### Option 1: Automated (Recommended) ```cmd # Run PowerShell installer powershell -ExecutionPolicy Bypass -File scripts/install_windows.ps1 # Or run batch installer scripts/install_windows.bat ``` #### Option 2: Manual Installation ```cmd # 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 ```bash # 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:** ```bash brew install exiftool ``` **Windows:** ```cmd winget install ExifTool.ExifTool ``` #### "Permission denied" **macOS:** ```bash chmod +x scripts/build_macos.sh ``` **Windows:** - Right-click script โ†’ "Run as administrator" #### "Rust not found" **macOS:** ```bash curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ``` **Windows:** - Download from https://rustup.rs/ #### "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](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!