Skip to main content

Convert iCloud Photos backup to a useful folder structure

Project description

bye-cloud

Convert the iCloud photos archive from Apple so you can move to immich.

How to get your photos from Apple

Go to https://privacy.apple.com/accounts and request a copy of all of your data. It will take a while -- a few days, and when you get it, it won't be in a very useful format. It's almost like Apple doesn't want you to control your own photos. (You can also get your iCloud Drive files and stuff while you're there.)

Now that you have your iCloud Photos

Once you have downloaded your iCloud backups, they will be in zip files with a very specific naming convention, like iCloud Photos Part 1 of 3.zip. This backup tool assumes that's the case, and if that changes, this tool won't work until it is updated. But it is open source so you can change it yourself or at least report an issue!

It's important that you copy all those zip files into a new location where we will be operating on them. I haven't extensively tested this program out, so make sure you don't run it against your only copy.

And you must copy all of your zip files. If you only copy one of three zip files, bye-cloud will notice and complain. The reason is that apple distributes photos randomly throughout these archives, and if you try to unpack only one part, the Album spreadsheets will reference photos that bye-cloud won't be able to find.

Install

pip install bye-cloud

Usage

With all of your .zip files in a folder, let's say ./icloud-parts, run the command:

bye-cloud -i ./icloud-parts ./export

That's it! Just wait until it finishes and your photos will be organized into folders. These should work with image libraries like immich and others.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bye_cloud-1.0.0.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bye_cloud-1.0.0-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file bye_cloud-1.0.0.tar.gz.

File metadata

  • Download URL: bye_cloud-1.0.0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"42","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for bye_cloud-1.0.0.tar.gz
Algorithm Hash digest
SHA256 5ce91a725c3c0171ae9ed0af42b729352bb16dadc1e6f2e59df3330ce5079eda
MD5 9e68654bc3418fca87e96823d5c2e9c4
BLAKE2b-256 adb0b4bb8c765da570e70147e51570e5c3f9c54f2d19404637f5591074da0dda

See more details on using hashes here.

File details

Details for the file bye_cloud-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: bye_cloud-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 8.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"42","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for bye_cloud-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 42828228200be8caae4aaee61c827fb13b0b0ba18a1fc87bf3ba7d8823487040
MD5 77a110f59824cdfd1f41d08df00c1c97
BLAKE2b-256 45fc7f58c9291b524befc9efa08e8a4216b789d40ea5ceb778881dfe152621b0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page