v0.77.2
Fix shared albums on macOS 26+, system library detection on macOS 27, Google Takeout sidecar import, and other bug fixes.
2026-09-27
Added
osxphotos runnow accepts GitHub file page URLs (github.com/.../blob/...) and gist URLs and converts them to the raw file URL before downloading. The script is also checked to make sure it compiles as Python before it is run; if the file is an HTML page, a hint to use the raw URL is shown (#2230, thanks @ctan13 for reporting in #2225).
Changed
- Updated
photoscriptdependency to>=0.6.0, which fixes a timeout (-128error) when waiting for Photos to launch with an empty library. - Relaxed
richdependency to allow 15.x (>=13.5.2,<16.0.0) (#2215). - Switched linting and formatting from black/isort to
ruff(#2235).
Removed
Fixed
- Fixed shared albums not being read on macOS 26+. Photos 11+ stores shared albums as
CollectionSharerecords inZSHAREand owner names inZSHAREPARTICIPANT; osxphotos now reads shared albums, their assets, and owner names from these tables (#2003, thanks @mybizgeek for reporting). - Fixed
get_system_library_path()always returningNoneon macOS 27. macOS 27 movedSystemLibraryPathto the photolibraryd group container plist; osxphotos now checks both the new and old locations and falls back to PhotoKit if neither has it (#2237). - Fixed
AlbumInfo.start_dateandAlbumInfo.end_datereturning the Photos reference date (2001-01-01) instead ofNonefor albums with no photos (#2238). - Fixed
import --sidecaraborting on older Google Takeout*.supplemental-metadata.jsonsidecars that lackgeoDataExifandgooglePhotosOrigin; these are now recognized as Google Takeout sidecars (#2228, #2231, thanks @gerbz for reporting and @mishra-prince for the fix). - Fixed
importaborting the whole batch on an unrecognized or malformed sidecar when rendering templates, reading--favorite-rating, or stripping edited suffixes; osxphotos now logs a warning and continues (#2228, #2232, thanks @mishra-prince). - Fixed several bugs found by
ruff(#2235):- iPhoto event
start_date/end_dateraisedNameError. - Setting an environment variable override (e.g.
OSXPHOTOS_MAX_RETRY_ATTEMPTS,OSXPHOTOS_SYNC_RETRY_ATTEMPTS,OSXPHOTOS_STAT_CACHE_TTL_SECONDS, or a*_BATCH_SIZEvariable) raisedTypeErrorbecause the value was not converted toint. sqlgrepdid not skip NULL values and binary blobs as intended.- Several tests never ran or always passed.
- iPhoto event
Contributors
- @ctan13 @ctan13 for bug report
- @gerbz @gerbz for bug report
- @mishra-prince @mishra-prince for code
- @mybizgeek @mybizgeek for bug report
- @RhetTbull @RhetTbull for code