


[](https://upier.vercel.app/pay/sanmith@superyes)
[](https://www.paypal.com/paypalme/iamsanmith)
[](https://ko-fi.com/L3L01JGIUW)
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
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!
---
---
Made with โค๏ธ by Sanmith S
Transform your digital memories into organized treasures!