Skip to content

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

PackageZip size limitEstimated photosPrice
light500 MB~500$9.99
bulk5 GB~5,000$29.99
mega50 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

  1. Open center.picora.me/migration/apple-photos-export
  2. Drag your zip onto the page
  3. Picora estimates and recommends a package
  4. Click Start upload — Creem checkout opens
  5. 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:

  1. Streams through each entry (yauzl, no full-zip-in-memory)
  2. Computes sha256 per file
  3. Skips files already in your Picora account (dedup)
  4. Uploads new files to R2 + indexes them in img_images with source='migration'
  5. 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 / .aae sidecars (Apple metadata — Picora’s own EXIF reader handles it)
  • Live Photo .mov companions 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

PathBest forTooling
iOS ShortcutDay-to-day, < 500 photos per batchBuilt-in iOS app
Photo Importer CLImacOS active librarynpx @picora/photo-importer
Apple Photos Export (this)One-shot, cross-platformBrowser + zip
Moraya GUI (v0.57.0+)macOS GUI users with Moraya installedMoraya desktop app