Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What's the plan for shared libraries in iOS 16? #191

Closed
epheterson opened this issue Aug 2, 2022 · 18 comments
Closed

What's the plan for shared libraries in iOS 16? #191

epheterson opened this issue Aug 2, 2022 · 18 comments

Comments

@epheterson
Copy link

epheterson commented Aug 2, 2022

I'm currently using the iOS 16 beta and sharing with another person. There's now photos shared across both libraries, and I have a separate iCloudPD instance for each user.

So, two questions:

  • Are items in shared libraries backed up?
  • Will there be an option to choose yes/no to shared library photo backup?

With a toggle I could backup the shared images using just one of the two instances to ensure all photos are backed up, and also none are duplicated.

If you haven't heard of it, a lil info is in this article.

@epheterson
Copy link
Author

So far it seems that items in the shared library are not appearing in the iCloudPD directory, even photos that I took myself and added to the shared library. This means there's a lapse in backing up even when both users have an iCloudPD instance.

@epheterson
Copy link
Author

It occurred to me that this project is just a docker container of the iCloud photos downloader project, so also filed a ticket there. Once there's support there, we should do any necessary mapping of environment variables to support the preferences.

icloud-photos-downloader/icloud_photos_downloader#455

@nemesislvlup
Copy link

Is there support for the iCloud shared albums right now? I don't think so...

@epheterson
Copy link
Author

These aren’t shared albums, this is a new default mode for the library.

@nemesislvlup
Copy link

These aren’t shared albums, this is a new default mode for the library.

I know, I’m running iOS16 beta as well. What I meant is that if they don’t support the current shared albums, it will be a long way to support the shared library I guess.

@epheterson
Copy link
Author

I'm hoping since this isn't an album, and is a state many users are likely to be in soon, that it's treated with a different importance.

With shared albums you could always copy the ones you care about to your personal library and have them backed up, with shared libraries there really isn't any equivalent.

@nemesislvlup
Copy link

Fingers crossed. Does the shared library show up in iCloud.com/photos ? I know shared albums don’t

@epheterson
Copy link
Author

Good question, so far the shared library photos don't show up there. They'll probably upgrade it after iOS 16 official release (I'd imagine).

@boredazfcuk
Copy link
Owner

The icloud_photos_downloader application that this container uses basically emulates logging onto icloud.com with a web browser and downloading the photos from there.

Shared albums are not available in icloud.com so cannot be downloaded. If the same is true for shared libraries, then it will not be possible to download those either, unfortunately.

If Apple upgrade the website after the official release of iOS 16, it may be possible to change the app to download from a shared library... However, it could also break current functionality, and development of icloud_photos_downloader has been fairly static recently. Looking at the commit history, the last commit that wasn't test related or pushed via dependabot was 18 months ago. I'm not sure how quick we would see a resolution.

@epheterson
Copy link
Author

There is support for Shared Libraries already at beta.icloud.com, but looks like we'll have to wait for pyicloud to add support here: picklepete/pyicloud#395

Then hopefully icloud_photos_downloader will update (icloud-photos-downloader/icloud_photos_downloader#455) before we can finally get it in the Docker container.

Here's to hoping this doesn't take too long!

@epheterson
Copy link
Author

epheterson commented Nov 2, 2022

This feature is now officially shipped, and official support in the main project is done! Can you please check it out and integrate the necessary changes for use here? Thanks!

@boredazfcuk
Copy link
Owner

Hi,

Unfortunately, support needs to be added here: https://github.com/icloud-photos-downloader/icloud_photos_downloader

The requirements for that project are here: https://github.com/icloud-photos-downloader/icloud_photos_downloader/blob/master/requirements.txt and show that they are using a python package called pyicloud-ipd: https://pypi.org/project/pyicloud-ipd/

This is a forked version of pyicloud: https://github.com/icloud-photos-downloader/pyicloud

This fork needs updating to support shared libraries before anything can happen.

Somebody has opened a pull request for the necessary changes: icloud-photos-downloader/pyicloud#8

Hopefully they'll merge the changes, however, this project seems dead now. There are some really simple pull requests which have been sat open for months... Even stuff like changes to the README.MD file IIRC :(

@epheterson
Copy link
Author

Ah thanks for that info, guess we'll have to keep waiting. I hope they'll merge the change in! Might be worth forking into a new project of the original creator has abandoned it.

@boredazfcuk
Copy link
Owner

Someone has submitted a PR to allow the underlying application to download from shared libraries: icloud-photos-downloader/icloud_photos_downloader#489. It also uses the PR for the pyicloud I mentioned in my last post.

I've merged the code for both of these patches into my docker container and pushed a new version to Dockerhub.

Please set the photo_library variable to the name of the library you wish to download from. I've not tested this, as I do not use the shared library feature. Please report back your findings.

Thanks.

@epheterson
Copy link
Author

epheterson commented Nov 22, 2022

Hey, this is great news, thanks! I updated to the new version and am ready to add the photo_library tag but am not sure what the options are. Can you log the available libraries on launch, or document them? Or share the command to get them, I tried sync-icloud.sh --list-libraries (cloud_photos_downloader syntax) but it's ignored. Also going to let one sync go through and see if default config (no variable set) downloads them (Edit: it does not).

@greggsymington
Copy link

Hey, this is great news, thanks! I updated to the new version and am ready to add the photo_library tag but am not sure what the options are. Can you log the available libraries on launch, or document them? Or share the command to get them, I tried sync-icloud.sh --list-libraries (cloud_photos_downloader syntax) but it's ignored. Also going to let one sync go through and see if default config (no variable set) downloads them.

/usb/bin/icloudpd --list-libraries
Will list available libraries. This is as far as I've got, not sure how to see which is which or how to change the scheduled script.

@epheterson
Copy link
Author

epheterson commented Nov 22, 2022

It's doing it's first sync, working great! These were my steps:

  1. Duplicate existing iCloudPD container, called "-Shared", with new config (required) and storage (optional) directories
  2. Using old container's name: docker exec -it iCloudPD-Old /usr/bin/icloudpd --list-libraries (You'll have to sign into iCloud again)
  3. In the output there will be a primary and shared library. Primary is downloaded "by default" without specifying a library. Copy the name of the shared library.
  4. In the duplicated container, set variable photo_library to the shared library name ("SharedSync-{UUID}").
  5. Launch new container, initialize and let it go!

@boredazfcuk boredazfcuk reopened this Nov 22, 2022
@boredazfcuk
Copy link
Owner

I reopened this to remind me I needed to make some changes further down the road, as I believe the download album and download from shared library options would be incompatible.

I just ended up doing that now though, so I'm closing it off again lol

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants