Open odedia opened 2 months ago
Another option that came to mind is to have osxphotos create an "iCloud friendly" photos library from a "source of truth" library. It's a bit of a stretch so I'm just writing my thoughts below, I don't see this becoming a reality anytime soon.
This is the scenario:
I do love iCloud Photos Library, and I think it's probably the best cloud photo service out there. However - I'm at a point where my library is almost 2.3 terabytes. I treat my Photos Library as the "source of truth", which is why I store my RAW files in it as well. With my recent purchase of Nikon Z9, I no longer use Apple Photos to edit the RAW files (it can't open all permutations of the RAW file anyway), but I still keep the JPEG+RAW file combo for archiving and the potential of Apple getting their act together in the future and supporting the latest RAW formats. Along with my wife and kids in a shared family account, we're close to 3 terabytes altogether for Photos, iCloud drive and iPhone backups.
Moving iPhone backups to backup to my Mac over WiFi is easy, and there are multiple iCloud Drive alternatives out there. But the main caveat that keeps me paying for iCloud is Photos. Since Apple doesn't offer all Apple One plans in my region, this means that there's no 4tb option (which is also expensive), and I must jump to the 6Tb a month plan, which is getting painful to say the least.
What would be ideal is something like this:
Have two Apple Photos Libraries on my Mac:
The scaled-down version can be done in any number of ways: Strip the RAW files from JPEG+RAW combos, create smaller-sized JPEGs from the original RAWs or RAW+JPEG or full-sized JPEG, perhaps even transcoding videos at some point. For reference - I checked my Photos library and it contains 1.1Tb of RAW files and 700gb of videos. The regular iPhone photos (with Live Photos) is only 120gb. That's with images dating back to iPhone 1. Converting the RAW files to mobile-friendly JPEGs would scale them down to around 70gb or less(!). This would also allow me to keep having live photos on my iPhone because Apple doesn't sync Live Photos back to an iPhone via regular sync, only via iCloud. I would easily be less than 2Tb of iCloud storage, or even 200gb if I don't sync Videos. I consider moving regular videos to a different service like Plex or Immich anyway.
For this to work, there needs to be some dual-library magic going on:
Thanks again!
This is definitely possible! I am working on a new core for OSXPhotos using the native Apple API. The public, documented API does not provide the needed functionality but it is clear the features I need are there because Photos can work with multiple libraries, etc. So I've done a lot of reverse engineering and I have most of the private API that Photos uses figured out and am working on putting the scaffolding in place to be able to use it. Currently, I have code that can create a new library, open multiple libraries at once and export from one library and import to another. This would make it entirely possible to do this. You could have rules as you've said, for example, --strip-live
, --convert-to-heic
(smaller than JPEG), --scale-video 720p
etc.
This would likely need to go both ways -- if you shoot on iPhone, those photos would need to be moved to "source of truth" and then re-imported to the iCloud library with the appropriate transformations.
I started this because I want to implement #909 to add a command that lets you modify photos in place (for example, strip the live video) without losing metadata.
My goodness, this would be perfect! I'm happy to help anyway I can (testing, debugging etc.). I not well experienced in Python (still a Spring/Java guy here), but happy to assist with easy and cumbersome tasks if you have any.
I'll let you know when I have something that can be played with. Due to some major life events happening for me it will likely be some months before I can devote enough time to really get this ready. I'm in "maintenance mode" until then.
Fully understand, thanks again for doing this on your personal time.
Great discussion - I have a similar issue and wondering as well how I can keep my iCloud library small while maintaining a source of truth somewhere else. I really like the scenario described by RhetTbull (https://github.com/RhetTbull/osxphotos/issues/1503#issuecomment-2043287431)
Following this thread for now, happy to help testing as soon as there is something to test.
Based on the discussion here, this feature request is to enable sync from macOS Photos Library to the iPhone, replacing Apple's limited functionality. Currently, Apple sync is limited as follows:
The new feature should use something like iFuse or a third party library management on the iPhone to sync the library to the phone with all as much compatibility as possible.
Thanks!