RhetTbull / osxphotos

Python app to work with pictures and associated metadata from Apple Photos on macOS. Also includes a package to provide programmatic access to the Photos library, pictures, and metadata.
MIT License
1.84k stars 94 forks source link

Add `osxphotos shared` command #1184

Open RhetTbull opened 10 months ago

RhetTbull commented 10 months ago

Synopsis:

2 subcommands: import, sync:

osxphotos shared import imports all shared photos (or subset) to regular photos, optionally preserving the metadata: album (as regular album), owner (as keyword, comments (as caption), likes (as favorite)

osxphotos shared sync does't import but uses fingerprint to match previously imported shared photos to the shared album and optionally syncs the metadata: owner (as keyword, comments (as caption), likes (as favorite)

See import_shared.py

RhetTbull commented 6 months ago

Add osxphotos download-shared command.

This would download photos from shared albums and re-import them to Photos while preserving metadata from the shared album.

What problem does this solve?

Currently, shared photos reside in separate shared albums. They cannot be edited nor made part of an album without importing them to the library. (Right-click > Import). They can also be exported (File > Export). However, if you wanted to bulk import all shared photos into specific albums, this cannot be easily done. Doing so also loses the comments and likes on the shared photos.

osxphotos download-shared would download and then import shared photos and move them into specific albums.

For example:

osxphotos download-shared --album "Family Photos" --comments --likes --destination-album "Family Photos"

Would do the following:

--album "Family Photos": download all photos in shared album Family Photos --comments: Put any comments on shared photos into the description field of the imported photos --likes: If shared photos are liked, make these favorites. --destination-album "Family Photos": put the imported shared photos into the regular album Family Photos

Other options:

--my-likes: only favorite if user was the person who liked the photo --my-comments: only add comments to description if comment belongs to user --selected: download selected shared photos --all: download all shared photos

Use a KV store database to track progress so can be resumed or updated if run again.

Note: shared photos are only stored as JPEG so there is no way to recover the original.

RhetTbull commented 2 days ago

See this use case: https://talk.macpowerusers.com/t/managing-shared-photos/37727

RhetTbull commented 1 day ago

ZCLOUDISMYASSET == 1