Apple Photos Export (Server-Side Zip Import)
If you can’t (or don’t want to) run a CLI on macOS, Picora can ingest your Apple Photos export zip directly. Use this path when:
- You’re on Windows or Linux
- You’re switching Macs and your Photos library isn’t synced locally
- You prefer a one-shot upload over a long-running CLI
For an active macOS Photos sync, prefer @picora/photo-importer CLI — it’s incremental and cheaper.
Pricing
| Package | Zip size limit | Estimated photos | Price |
|---|---|---|---|
| light | 500 MB | ~500 | $9.99 |
| bulk | 5 GB | ~5,000 | $29.99 |
| mega | 50 GB | ~50,000 | $99.99 |
One-time charge per import. No subscription.
Workflow
Step 1 — Export from Apple Photos
On any Mac, open Photos.app → select the photos to export → File → Export → Export Unmodified Originals → choose Format: Original and Subfolder Format: None (or Year/Month — Picora handles both).
Apple zips the result automatically.
Step 2 — Upload via Picora dashboard
- Open center.picora.me/migration/apple-photos-export
- Drag your zip onto the page
- Picora estimates and recommends a package
- Click Start upload — Creem checkout opens
- After payment, the wizard automatically uploads the zip via TUS (resumable; close the page and reopen if needed)
Step 3 — Server-side parsing
Once the zip finishes uploading, Picora:
- Streams through each entry (yauzl, no full-zip-in-memory)
- Computes sha256 per file
- Skips files already in your Picora account (dedup)
- Uploads new files to R2 + indexes them in
img_imageswithsource='migration' - Creates 30-day URL redirects (
zip://2024/03/IMG_001.HEIC→ Picora URL) for audit / undo
Parsing time scales with file count, not total size: ~5 min per 1,000 photos.
Step 4 — Completion report
You see exactly what was imported:
- Imported: new files now on Picora
- Skipped (dedup): same sha256 already in your account, no duplicate storage
- Failed: per-file errors (e.g. corrupted EXIF) — downloadable CSV
What’s NOT imported
.json/.aaesidecars (Apple metadata — Picora’s own EXIF reader handles it)- Live Photo
.movcompanions in v0.58.1 (jpg part is imported normally; full Live Photo support in v0.58.2) - Apple-edited versions (Picora always imports the original, never the edited derivative)
Failure & refund
If the zip is corrupted (CRC error, truncated transfer), Picora marks the job failed and automatically refunds to Picora Credit. You can retry without re-paying.
Per-file failures (rare) don’t trigger refunds — they’re tracked in the job’s failed_urls field as a downloadable list.
Comparison with other paths
| Path | Best for | Tooling |
|---|---|---|
| iOS Shortcut | Day-to-day, < 500 photos per batch | Built-in iOS app |
| Photo Importer CLI | macOS active library | npx @picora/photo-importer |
| Apple Photos Export (this) | One-shot, cross-platform | Browser + zip |
| Moraya GUI (v0.57.0+) | macOS GUI users with Moraya installed | Moraya desktop app |