Fast iPhone photo backup and organizer for external SSD on macOS
Project description
iPhone Photo Backup / Respaldo de Fotos iPhone
English
Description
A fast, reliable tool to backup and organize photos from your iPhone to an external SSD on macOS. Uses pymobiledevice3 for direct device communication - no jailbreak required.
Three commands included:
ibackup- Backup photos from iPhone to SSDiorganize- Organize existing photos into Year/Month foldersidedup- Find and remove duplicate files
Features
- 5-10x Faster: Single connection vs per-file CLI calls
- Smart Detection: Only copies files that don't exist on the SSD
- Full SSD Scan: Checks all folders on the drive, not just the destination
- Incomplete File Detection: Identifies and replaces corrupted/partial transfers
- HEIC/JPG Aware: Recognizes converted files as duplicates
- Bilingual: Auto-detects system language (English/Spanish)
- Interactive Selection: Choose your disk and destination folder
Requirements
- macOS (tested on Ventura, Sonoma, Sequoia)
- Python 3.8+
- iPhone with USB connection
- External SSD/HDD
Installation
Option 1: pip (Recommended)
pip install iphone-photo-backup
That's it! Now you can run ibackup from anywhere.
Option 2: From Source
# Clone the repository
git clone https://github.com/jorgesoto98/iphone-photo-backup.git
cd iphone-photo-backup
# Install in development mode
pip install -e .
Usage
- Connect your iPhone via USB
- Unlock your iPhone and tap "Trust" if prompted
- Connect your external SSD
- Run:
ibackup
- Select your destination disk
- Choose to create a new folder or use an existing one
- Confirm and wait for the backup to complete
Organizing Photos (iorganize)
Organize your existing photos into folders by year and month:
iorganize
Test mode (no files moved):
iorganize --dry-run
The organizer will:
- Ask which disk to use
- Ask which folder to organize (with navigation)
- Ask organization mode: Year only or Year/Month
- Show preview and ask for confirmation
- Move files into date folders
Result structure (Year → Month):
Photos/
├── 2024/ ← Year folder
│ ├── Jan/ ← Month folders inside
│ ├── Feb/
│ └── Dec/
├── 2023/
│ ├── Jan/
│ └── ...
└── 2022/
Removing Duplicates (idedup)
Find and remove duplicate files that exist elsewhere on your disk:
idedup
Test mode (no files deleted):
idedup --dry-run
Verbose mode (show all copy locations):
idedup --dry-run --verbose
The deduplicator will:
- Ask which disk to use
- Ask which folder to CLEAN (remove duplicates from)
- Index the entire disk for existing files
- Find files in your folder that exist elsewhere on disk
- Show what would be deleted and ask for confirmation
- Delete only the duplicates (originals remain safe)
How it works:
- Scans the entire disk to build an index of all media files
- Compares files in your selected folder against the index
- Uses filename + size + partial content hash for accurate matching
- Only deletes files that have identical copies elsewhere
How It Works (ibackup)
- Indexing: Scans the entire SSD for existing media files
- Listing: Reads all files from iPhone's DCIM folder
- Comparing: Identifies new files and incomplete transfers
- Copying: Transfers only what's needed
Troubleshooting
"No iPhone found"
- Ensure iPhone is unlocked
- Tap "Trust" on the iPhone when prompted
- Try a different USB cable/port
"No external disk found"
- Check if the disk is mounted in Finder
- Ensure you have write permissions
Español
Descripción
Una herramienta rápida y confiable para respaldar y organizar fotos de tu iPhone a un SSD externo en macOS. Usa pymobiledevice3 para comunicación directa con el dispositivo - no requiere jailbreak.
Tres comandos incluidos:
ibackup- Respaldar fotos del iPhone al SSDiorganize- Organizar fotos existentes en carpetas Año/Mesidedup- Encontrar y eliminar archivos duplicados
Características
- 5-10x Más Rápido: Conexión única vs llamadas CLI por archivo
- Detección Inteligente: Solo copia archivos que no existen en el SSD
- Escaneo Completo: Revisa todas las carpetas del disco, no solo el destino
- Detecta Archivos Incompletos: Identifica y reemplaza transferencias corruptas/parciales
- Reconoce HEIC/JPG: Identifica archivos convertidos como duplicados
- Bilingüe: Detecta automáticamente el idioma del sistema (Inglés/Español)
- Selección Interactiva: Elige tu disco y carpeta destino
Requisitos
- macOS (probado en Ventura, Sonoma, Sequoia)
- Python 3.8+
- iPhone con conexión USB
- SSD/HDD externo
Instalación
Opción 1: pip (Recomendado)
pip install iphone-photo-backup
¡Eso es todo! Ahora puedes ejecutar ibackup desde cualquier lugar.
Opción 2: Desde el Código Fuente
# Clonar el repositorio
git clone https://github.com/jorgesoto98/iphone-photo-backup.git
cd iphone-photo-backup
# Instalar en modo desarrollo
pip install -e .
Uso
- Conecta tu iPhone por USB
- Desbloquea tu iPhone y toca "Confiar" si aparece
- Conecta tu SSD externo
- Ejecuta:
ibackup
- Selecciona el disco destino
- Elige crear una carpeta nueva o usar una existente
- Confirma y espera a que termine el respaldo
Organizar Fotos (iorganize)
Organiza tus fotos existentes en carpetas por año y mes:
iorganize
Modo prueba (sin mover archivos):
iorganize --dry-run
El organizador:
- Pregunta qué disco usar
- Pregunta qué carpeta organizar (con navegación)
- Pregunta modo: Solo año o Año/Mes
- Muestra vista previa y pide confirmación
- Mueve archivos a carpetas por fecha
Estructura resultante (Año → Mes):
Fotos/
├── 2024/ ← Carpeta del año
│ ├── Ene/ ← Carpetas de mes adentro
│ ├── Feb/
│ └── Dic/
├── 2023/
│ ├── Ene/
│ └── ...
└── 2022/
Eliminar Duplicados (idedup)
Encuentra y elimina archivos duplicados que existen en otro lugar del disco:
idedup
Modo prueba (sin eliminar archivos):
idedup --dry-run
Modo detallado (mostrar todas las ubicaciones):
idedup --dry-run --verbose
El deduplicador:
- Pregunta qué disco usar
- Pregunta qué carpeta LIMPIAR (eliminar duplicados de aquí)
- Indexa todo el disco buscando archivos existentes
- Encuentra archivos en tu carpeta que existen en otro lugar
- Muestra qué se eliminaría y pide confirmación
- Elimina solo los duplicados (los originales quedan seguros)
Cómo funciona:
- Escanea todo el disco para crear un índice de archivos multimedia
- Compara archivos de la carpeta seleccionada contra el índice
- Usa nombre + tamaño + hash parcial para comparación precisa
- Solo elimina archivos que tienen copias idénticas en otro lugar
Cómo Funciona (ibackup)
- Indexado: Escanea todo el SSD buscando archivos multimedia existentes
- Listado: Lee todos los archivos de la carpeta DCIM del iPhone
- Comparación: Identifica archivos nuevos y transferencias incompletas
- Copia: Transfiere solo lo necesario
Solución de Problemas
"No se encontró ningún iPhone"
- Asegúrate de que el iPhone esté desbloqueado
- Toca "Confiar" en el iPhone cuando aparezca
- Prueba con otro cable/puerto USB
"No se encontró ningún disco externo"
- Verifica que el disco esté montado en Finder
- Asegúrate de tener permisos de escritura
License / Licencia
MIT License - See LICENSE file
Contributing / Contribuir
Contributions are welcome! Please feel free to submit a Pull Request.
¡Las contribuciones son bienvenidas! No dudes en enviar un Pull Request.
Made by / Hecho por
IS del Norte
Soluciones Tecnológicas / Technology Solutions
isdelnorte.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iphone_photo_backup-1.0.0.tar.gz.
File metadata
- Download URL: iphone_photo_backup-1.0.0.tar.gz
- Upload date:
- Size: 24.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5c1b23e26ea888735bf2a880a28a3dc3de0e2b8aff572ce918a85c289480675
|
|
| MD5 |
cf63d9b48ab515b2e056d61febc38e64
|
|
| BLAKE2b-256 |
12e40e32e866d47d66a98b764bc1a1dfd9b3aef267e992e68b66957bd9ab008e
|
File details
Details for the file iphone_photo_backup-1.0.0-py3-none-any.whl.
File metadata
- Download URL: iphone_photo_backup-1.0.0-py3-none-any.whl
- Upload date:
- Size: 26.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3868cd4ea9c9d9d4a6943608ba76aa86414028ac858f7845a7052fb05a51fee8
|
|
| MD5 |
0e94b0f47b1ee244d6303632f604b8e4
|
|
| BLAKE2b-256 |
f0da2b168d29824afeea8b4d1248da33cb55656d86f8894799adde39cf44e8eb
|