diff --git a/osxphotos/cli/import_cli.py b/osxphotos/cli/import_cli.py index 9fe1be86..247a92bf 100644 --- a/osxphotos/cli/import_cli.py +++ b/osxphotos/cli/import_cli.py @@ -1616,7 +1616,7 @@ def set_photo_metadata_from_exportdb( f"Setting metadata and location from export database for [filename]{filepath.name}[/]" ) set_photo_metadata_from_metadata( - photo, filepath, metadata, merge_keywords, True, verbose, dry_run + photo, filepath, metadata, merge_keywords, False, verbose, dry_run ) else: verbose( @@ -1676,8 +1676,7 @@ def set_photo_metadata_from_metadata( verbose( f"Set date for [filename]{filepath.name}[/]: [time]{metadata.date.isoformat()}[/]" ) - if photo and not dry_run: - photo.date = metadata.date + set_photo_date(photo, metadata, verbose, dry_run) return metadata @@ -1706,6 +1705,19 @@ def set_photo_metadata_from_sidecar( ) +def set_photo_date( + photo: Photo | None, + metadata: MetaData, + verbose: Callable[..., None], + dry_run: bool, +) -> datetime.datetime: + """Set photo date from metadata""" + print(f"Setting date for {photo=} to {metadata.tz_offset_sec=} {metadata.tzname=}") + if photo and not dry_run: + # ZZZ + photo.date = metadata.date + + def set_photo_title( photo: Photo | None, filepath: pathlib.Path, diff --git a/osxphotos/exif_datetime_updater.py b/osxphotos/exif_datetime_updater.py index 4161abc7..4effac91 100644 --- a/osxphotos/exif_datetime_updater.py +++ b/osxphotos/exif_datetime_updater.py @@ -171,6 +171,7 @@ def update_photos_from_exif( dtinfo = self.get_date_time_offset_from_exif( _photo.path, use_file_modify_date=use_file_modify_date ) + print(f"{dtinfo=}") if dtinfo.used_file_modify_date: self.verbose( "EXIF date/time missing, using file modify date/time for " diff --git a/osxphotos/export_db_utils.py b/osxphotos/export_db_utils.py index 7e68300b..d0b41fbf 100644 --- a/osxphotos/export_db_utils.py +++ b/osxphotos/export_db_utils.py @@ -610,10 +610,10 @@ def export_db_get_photoinfo_for_filepath( """Return photoinfo object for a given filepath Args: - exportdb: path to the export database - exportdir: path to the export directory or None + exportdb_path: path to the export database filepath: absolute path to the file to retrieve info for from the database exiftool: optional path to exiftool to be passed to the PhotoInfoFromDict object + exportdir_path: path to the export directory or None Returns: PhotoInfoFromDict | None """ diff --git a/osxphotos/iphoto.py b/osxphotos/iphoto.py index f2d627e9..f2b8b214 100644 --- a/osxphotos/iphoto.py +++ b/osxphotos/iphoto.py @@ -1072,6 +1072,11 @@ def date(self) -> datetime.datetime: default=True, ) + @property + def date_original(self) -> datetime.datetime: + """Date photo was taken""" + return self.date + @property def date_modified(self) -> datetime.datetime: """Date modified in library""" @@ -1099,6 +1104,11 @@ def tzoffset(self) -> int: tz = ZoneInfo(tzname) return int(tz.utcoffset(self.date).total_seconds()) + @property + def tzname(self) -> str | None: + """Timezone name for the asset creation date""" + return self._db._db_photos[self._uuid]["timezone"] or None + @property def path(self) -> str | None: """Path to original photo asset in library""" @@ -1678,6 +1688,9 @@ def asdict(self, shallow: bool = True) -> dict[str, Any]: dict_data["shared_moment"] = self.shared_moment dict_data["shared_library"] = self.shared_library dict_data["rating"] = self.rating + dict_data["screen_recording"] = self.screen_recording + dict_data["date_original"] = self.date_original + dict_data["tzname"] = self.tzname return dict_data diff --git a/osxphotos/metadata_reader.py b/osxphotos/metadata_reader.py index b37baa9e..a7e522be 100644 --- a/osxphotos/metadata_reader.py +++ b/osxphotos/metadata_reader.py @@ -43,6 +43,7 @@ class MetaData: tz_offset_sec: int or None if not set, offset from UTC in seconds height: int or None if not set, height of photo in pixels width: int or None if not set, width of photo in pixels + tzname: str or None if not set, timezone name for timezone """ title: str = "" @@ -57,6 +58,7 @@ class MetaData: tz_offset_sec: float | None = None height: int | None = None width: int | None = None + tzname: str | None = None def __ior__(self, other): if isinstance(other, MetaData): @@ -537,4 +539,5 @@ def metadata_from_photoinfo(photoinfo: PhotoInfoProtocol) -> MetaData: tz_offset_sec=tz_offset, height=photoinfo.height, width=photoinfo.width, + tzname=photoinfo.tzname, ) diff --git a/osxphotos/photodates.py b/osxphotos/photodates.py index cd3710ab..0ba6a306 100644 --- a/osxphotos/photodates.py +++ b/osxphotos/photodates.py @@ -209,8 +209,8 @@ def update_photo_time_for_new_timezone( old_timezone_offset = PhotoTimeZone(library_path=library_path).get_timezone(photo)[ 0 ] - delta = old_timezone_offset - new_timezone.offset photo_date = photo.date + delta = old_timezone_offset - new_timezone.offset_for_date(photo_date) new_photo_date = update_datetime( dt=photo_date, time_delta=datetime.timedelta(seconds=delta) ) diff --git a/osxphotos/photoexporter.py b/osxphotos/photoexporter.py index 739e333c..1ac558f5 100644 --- a/osxphotos/photoexporter.py +++ b/osxphotos/photoexporter.py @@ -20,6 +20,7 @@ from .export_db import ExportDBTemp from .exportoptions import ExportOptions, ExportResults from .fileutil import FileUtil +from .photoinfo_common import photoinfo_minify_dict from .phototemplate import RenderOptions from .platform import is_macos from .rich_utils import add_rich_markup_tag @@ -1045,7 +1046,7 @@ def _export_photo( # set data in the database with export_db.create_or_get_file_record(dest_str, self.photo.uuid) as rec: if rec.photoinfo: - last_data = json.loads(rec.photoinfo) + last_data = photoinfo_minify_dict(json.loads(rec.photoinfo)) # to avoid issues with datetime comparisons, list order # need to deserialize from photo.json() instead of using photo.asdict() current_data = json.loads(self.photo.json(shallow=True)) @@ -1067,7 +1068,7 @@ def _json_default(o): diff = json.dumps(diff, default=_json_default) if diff else None else: diff = None - rec.photoinfo = self.photo.json(shallow=True) + rec.photoinfo = self.photo.json(shallow=False) rec.export_options = options.bit_flags # don't set src_sig as that is set above before any modifications by convert_to_jpeg or exiftool if not options.ignore_signature: diff --git a/osxphotos/photoinfo.py b/osxphotos/photoinfo.py index 4b8d2634..76d34882 100644 --- a/osxphotos/photoinfo.py +++ b/osxphotos/photoinfo.py @@ -173,7 +173,7 @@ def tzoffset(self) -> int: @property def tzname(self) -> str | None: - """Timezone name for the Photos creation date; on Photos version < 5, returns None""" + """Timezone name for the asset creation date; on Photos version < 5, returns None""" return self._info["imageTimeZoneName"] @property @@ -2131,6 +2131,7 @@ def asdict(self, shallow: bool = True) -> dict[str, Any]: dict_data["rating"] = self.rating dict_data["screen_recording"] = self.screen_recording dict_data["date_original"] = self.date_original + dict_data["tzname"] = self.tzname return dict_data diff --git a/osxphotos/photoinfo_common.py b/osxphotos/photoinfo_common.py new file mode 100644 index 00000000..6e581e18 --- /dev/null +++ b/osxphotos/photoinfo_common.py @@ -0,0 +1,38 @@ +""" Common utilities for PhotoInfo variations """ + +from typing import Any + +# These are PhotoInfo.asdict() keys that that are removed from the output +# by the PhotoExporter for comparing PhotoInfo objects. + +FULL_KEYS = [ + "album_info", + "path_derivatives", + "adjustments", + "burst_album_info", + "burst_albums", + "burst_default_pick", + "burst_key", + "burst_photos", + "burst_selected", + "cloud_metadata", + "import_info", + "labels_normalized", + "person_info", + "project_info", + "search_info", + "search_info_normalized", + "syndicated", + "saved_to_library", + "shared_moment", + "shared_library", + "rating", + "screen_recording", + "date_original", + "tzname", +] + + +def photoinfo_minify_dict(info: dict[str, Any]) -> dict[str, Any]: + """Convert a full PhotoInfo dict to a minimum PhotoInfo dict""" + return {k: v for k, v in info.items() if k not in FULL_KEYS} diff --git a/osxphotos/photoinfo_dict.py b/osxphotos/photoinfo_dict.py index 57fb8817..dabdfbe7 100644 --- a/osxphotos/photoinfo_dict.py +++ b/osxphotos/photoinfo_dict.py @@ -56,14 +56,23 @@ class PhotoInfoFromDict(PhotoInfoMixin): @property def album_info(self) -> AlbumInfoFromDict: """Return AlbumInfo objects for photo""" + if getattr(self, "_album_info"): + return self._album_info # this is a little hacky but it works for `osxphotos import` use case if not getattr(self, "folders"): - return [] - # self.folders is a rehydrated object so need access it's __dict__ to get the actual data - return [ - AlbumInfoFromDict(title, folders) - for title, folders in self.folders.__dict__.items() - ] + self._album_info = [] + else: + # self.folders is a rehydrated object so need access it's __dict__ to get the actual data + self._album_info = [ + AlbumInfoFromDict(title, folders) + for title, folders in self.folders.__dict__.items() + ] + return self._album_info + + @album_info.setter + def album_info(self, value): + """If rehydrating class has album_info, then set it""" + self._album_info = value def asdict(self) -> dict[str, Any]: """Return the PhotoInfo dictionary""" diff --git a/osxphotos/photoinfo_protocol.py b/osxphotos/photoinfo_protocol.py index 924cab22..fe097862 100644 --- a/osxphotos/photoinfo_protocol.py +++ b/osxphotos/photoinfo_protocol.py @@ -41,6 +41,9 @@ def date_modified(self) -> datetime.datetime | None: ... @property def tzoffset(self) -> int: ... + @property + def tzname(self) -> str: ... + @property def path(self) -> str | None: ... @@ -346,6 +349,7 @@ def __getattr__(self, name): "fingerprint", "syndicated", "shared_moment_info", + "tzname", ]: return None elif name in [ diff --git a/osxphotos/timezones.py b/osxphotos/timezones.py index 2571c6d1..33434788 100644 --- a/osxphotos/timezones.py +++ b/osxphotos/timezones.py @@ -71,6 +71,12 @@ def offset_str(self) -> str: def abbreviation(self) -> str: return self.timezone.abbreviation() + def offset_for_date(self, dt: datetime.datetime) -> int: + return self.timezone.secondsFromGMTForDate_(dt) + + def offset_str_for_date(self, dt: datetime.datetime) -> str: + return format_offset_time(self.offset_for_date(dt)) + def tzinfo(self, dt: datetime.datetime) -> zoneinfo.ZoneInfo: """Return zoneinfo.ZoneInfo object for the timezone at the given datetime""" if not self._from_offset: diff --git a/tests/config_timewarp_ventura.py b/tests/config_timewarp_ventura.py index 3c56a49f..e945465b 100644 --- a/tests/config_timewarp_ventura.py +++ b/tests/config_timewarp_ventura.py @@ -298,7 +298,9 @@ def is_dst() -> bool: f"{TEST_LIBRARY_TIMEWARP}/originals/7/7E9DF2EE-A5B0-4077-80EC-30565221A3B9.jpeg" ), "", - get_local_utc_offset_str("2023-08-21 09:18:13"), + get_local_utc_offset_str(get_file_timestamp( + f"{TEST_LIBRARY_TIMEWARP}/originals/7/7E9DF2EE-A5B0-4077-80EC-30565221A3B9.jpeg" + )), "", ), }, diff --git a/tests/iphoto_test_data.json b/tests/iphoto_test_data.json index 75631e27..773f5793 100644 --- a/tests/iphoto_test_data.json +++ b/tests/iphoto_test_data.json @@ -1,2808 +1,2834 @@ [ - { - "adjustments": {}, - "album_info": [], - "albums": [], - "burst": false, - "burst_album_info": [], - "burst_albums": [], - "burst_default_pick": false, - "burst_key": false, - "burst_photos": [], - "burst_selected": false, - "cloud_guid": "", - "cloud_metadata": {}, - "cloud_owner_hashed_id": "", - "comments": [], - "date": "2020-04-12T10:30:23+00:00", - "date_added": "2023-09-27T13:43:07.850189+00:00", - "date_modified": "2023-09-27T13:43:07.885464+00:00", - "date_trashed": null, - "description": "", - "exif_info": { - "aperture": 11, - "bit_rate": 0.0, - "camera_make": "SONY", - "camera_model": "ILCE-7M3", - "codec": "", - "dict": { - "ApertureValue": 11, - "BrightnessValue": 2.779, - "CaptureDayOfMonth": 12, - "CaptureDayOfWeek": 0, - "CaptureHourOfDay": 10, - "CaptureMinuteOfHour": 30, - "CaptureMonthOfYear": 4, - "CaptureSecondOfMinute": 23, - "CaptureYear": 2020, - "ColorModel": "RGB", - "ColorSpace": 1, - "Contrast": 0, - "Depth": 16, - "ExifVersion": "2.3.1", - "ExposureBiasValue": 0, - "ExposureMode": 1, - "ExposureProgram": 1, - "Flash": 13, - "FocalLenIn35mmFilm": 50, - "FocalLength": 50, - "ISOSpeedRating": 100, - "ImageDate": 0, - "LensMaxMM": 50, - "LensMinMM": 50, - "LensModel": "FE 50mm F1.8", - "LightSource": 0, - "Make": "SONY", - "MaxApertureValue": 1.6960000000000002, - "MeteringMode": 255, - "Model": "ILCE-7M3", - "PixelHeight": 4000, - "PixelWidth": 6000, - "ProfileName": "Display P3", - "Saturation": 0, - "SceneCaptureType": 0, - "Sharpness": 0, - "ShutterSpeed": 0.00625, - "Software": "Adobe Photoshop Lightroom 9.2.1 Classic (Macintosh)", - "WhiteBalance": 0 + { + "adjustments" : {}, + "album_info" : [], + "albums" : [], + "burst" : false, + "burst_album_info" : [], + "burst_albums" : [], + "burst_default_pick" : false, + "burst_key" : false, + "burst_photos" : [], + "burst_selected" : false, + "cloud_guid" : "", + "cloud_metadata" : {}, + "cloud_owner_hashed_id" : "", + "comments" : [], + "date" : "2020-04-12T10:30:23+00:00", + "date_added" : "2023-09-27T13:43:07.850189+00:00", + "date_modified" : "2023-09-27T13:43:07.885464+00:00", + "date_original" : "2020-04-12T10:30:23+00:00", + "date_trashed" : null, + "description" : "", + "exif_info" : { + "aperture" : 11, + "bit_rate" : 0, + "camera_make" : "SONY", + "camera_model" : "ILCE-7M3", + "codec" : "", + "dict" : { + "ApertureValue" : 11, + "BrightnessValue" : 2.779, + "CaptureDayOfMonth" : 12, + "CaptureDayOfWeek" : 0, + "CaptureHourOfDay" : 10, + "CaptureMinuteOfHour" : 30, + "CaptureMonthOfYear" : 4, + "CaptureSecondOfMinute" : 23, + "CaptureYear" : 2020, + "ColorModel" : "RGB", + "ColorSpace" : 1, + "Contrast" : 0, + "Depth" : 16, + "ExifVersion" : "2.3.1", + "ExposureBiasValue" : 0, + "ExposureMode" : 1, + "ExposureProgram" : 1, + "Flash" : 13, + "FocalLenIn35mmFilm" : 50, + "FocalLength" : 50, + "ISOSpeedRating" : 100, + "ImageDate" : 0, + "LensMaxMM" : 50, + "LensMinMM" : 50, + "LensModel" : "FE 50mm F1.8", + "LightSource" : 0, + "Make" : "SONY", + "MaxApertureValue" : 1.696, + "MeteringMode" : 255, + "Model" : "ILCE-7M3", + "PixelHeight" : 4000, + "PixelWidth" : 6000, + "ProfileName" : "Display P3", + "Saturation" : 0, + "SceneCaptureType" : 0, + "Sharpness" : 0, + "ShutterSpeed" : 0.00625, + "Software" : "Adobe Photoshop Lightroom 9.2.1 Classic (Macintosh)", + "WhiteBalance" : 0 + }, + "duration" : 0, + "exposure_bias" : 0, + "flash_fired" : true, + "focal_length" : 50, + "fps" : 0, + "iso" : 100, + "latitude" : 0, + "lens_model" : "FE 50mm F1.8", + "longitude" : 0, + "metering_mode" : 255, + "sample_rate" : 0, + "shutter_speed" : 0.00625, + "software" : "Adobe Photoshop Lightroom 9.2.1 Classic (Macintosh)", + "track_format" : 0, + "white_balance" : 0 }, - "duration": 0.0, - "exposure_bias": 0, - "flash_fired": true, - "focal_length": 50, - "fps": 0.0, - "iso": 100, - "latitude": 0.0, - "lens_model": "FE 50mm F1.8", - "longitude": 0.0, - "metering_mode": 255, - "sample_rate": 0, - "shutter_speed": 0.00625, - "software": "Adobe Photoshop Lightroom 9.2.1 Classic (Macintosh)", - "track_format": 0, - "white_balance": 0 - }, - "external_edit": false, - "face_info": [], - "favorite": false, - "filename": "DSC03584.dng", - "fingerprint": "AR+/+jZz0TvuBm+zF1BqtIneTrsZ", - "folders": {}, - "has_raw": false, - "hasadjustments": true, - "hdr": false, - "height": 6000, - "hidden": false, - "import_info": {}, - "incloud": null, - "intrash": 0, - "iscloudasset": false, - "ismissing": 0, - "ismovie": false, - "isphoto": true, - "israw": true, - "isreference": 0, - "keywords": [], - "labels": [], - "labels_normalized": [], - "latitude": 0.0, - "library": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", - "likes": [], - "live_photo": false, - "location": [ - null, - null - ], - "longitude": 0.0, - "orientation": 8, - "original_filename": "DSC03584.dng", - "original_filesize": 21473824, - "original_height": 4000, - "original_orientation": 0, - "original_width": 6000, - "owner": null, - "panorama": false, - "path": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/DSC03584.dng", - "path_derivatives": [ - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/UD3w1wufQy6UcuzQ31ZF1w/DSC03584.jpg", - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/UD3w1wufQy6UcuzQ31ZF1w/DSC03584_1024.jpg" - ], - "path_edited": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Previews/2023/09/27/20230927-064307/UD3w1wufQy6UcuzQ31ZF1w/DSC03584.jpg", - "path_edited_live_photo": null, - "path_live_photo": null, - "path_raw": null, - "person_info": [], - "persons": [], - "place": {}, - "portrait": false, - "project_info": [], - "rating": 0, - "raw_original": true, - "saved_to_library": null, - "score": { - "behavioral": 0.0, - "curation": 0.0, - "failure": 0.0, - "harmonious_color": 0.0, - "highlight_visibility": 0.0, - "immersiveness": 0.0, - "interaction": 0.0, - "interesting_subject": 0.0, - "intrusive_object_presence": 0.0, - "lively_color": 0.0, - "low_light": 0.0, - "noise": 0.0, - "overall": 0.0, - "pleasant_camera_tilt": 0.0, - "pleasant_composition": 0.0, - "pleasant_lighting": 0.0, - "pleasant_pattern": 0.0, - "pleasant_perspective": 0.0, - "pleasant_post_processing": 0.0, - "pleasant_reflection": 0.0, - "pleasant_symmetry": 0.0, - "promotion": 0.0, - "sharply_focused_subject": 0.0, - "tastefully_blurred": 0.0, - "well_chosen_subject": 0.0, - "well_framed_subject": 0.0, - "well_timed_shot": 0.0 - }, - "screen_recording": false, - "screenshot": false, - "search_info": {}, - "search_info_normalized": {}, - "selfie": false, - "shared": null, - "shared_library": false, - "shared_moment": false, - "slow_mo": false, - "syndicated": null, - "time_lapse": false, - "title": "DSC03584", - "tzoffset": 0, - "uti": "public.jpeg", - "uti_edited": "public.jpeg", - "uti_original": "com.adobe.raw-image", - "uti_raw": "com.adobe.raw-image", - "uuid": "UD3w1wufQy6UcuzQ31ZF1w", - "visible": false, - "width": 4000 - }, - { - "adjustments": {}, - "album_info": [], - "albums": [], - "burst": false, - "burst_album_info": [], - "burst_albums": [], - "burst_default_pick": false, - "burst_key": false, - "burst_photos": [], - "burst_selected": false, - "cloud_guid": "", - "cloud_metadata": {}, - "cloud_owner_hashed_id": "", - "comments": [], - "date": "2020-04-15T10:25:51+00:00", - "date_added": "2023-09-27T13:43:07.886434+00:00", - "date_modified": "2023-08-06T01:16:22+00:00", - "date_trashed": null, - "description": "", - "exif_info": { - "aperture": 4, - "bit_rate": 0.0, - "camera_make": "Canon", - "camera_model": "Canon PowerShot G10", - "codec": "", - "dict": { - "ApertureValue": 4, - "CaptureDayOfMonth": 15, - "CaptureDayOfWeek": 3, - "CaptureHourOfDay": 10, - "CaptureMinuteOfHour": 25, - "CaptureMonthOfYear": 4, - "CaptureSecondOfMinute": 51, - "CaptureYear": 2020, - "ColorModel": "RGB", - "ColorSpace": 1, - "Depth": 16, - "ExifVersion": "2.2.1", - "ExposureBiasValue": 0, - "ExposureMode": 0, - "ExposureProgram": 2, - "Firmware": "Firmware Version 1.04", - "Flash": 16, - "FlashExposureComp": 0, - "FlashPixVersion": "1.0", - "FocalLength": 12.07, - "FocusMode": 1, - "ISOSpeedRating": 80, - "ImageDate": 0, - "LensMaxMM": 30.5, - "LensMinMM": 6.1, - "LensModel": "6.1-30.5 mm", - "Make": "Canon", - "MaxApertureValue": 3.625, - "MeteringMode": 5, - "Model": "Canon PowerShot G10", - "PixelHeight": 3312, - "PixelWidth": 4416, - "ProfileName": "Display P3", - "SceneCaptureType": 0, - "ShutterSpeed": 0.0015625, - "WhiteBalance": 0, - "WhiteBalanceIndex": 0 + "external_edit" : false, + "face_info" : [], + "favorite" : false, + "filename" : "DSC03584.dng", + "fingerprint" : "AR+/+jZz0TvuBm+zF1BqtIneTrsZ", + "folders" : {}, + "has_raw" : false, + "hasadjustments" : true, + "hdr" : false, + "height" : 6000, + "hidden" : false, + "import_info" : {}, + "incloud" : null, + "intrash" : 0, + "iscloudasset" : false, + "ismissing" : 0, + "ismovie" : false, + "isphoto" : true, + "israw" : true, + "isreference" : 0, + "keywords" : [], + "labels" : [], + "labels_normalized" : [], + "latitude" : 0, + "library" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", + "likes" : [], + "live_photo" : false, + "location" : [ + null, + null + ], + "longitude" : 0, + "orientation" : 8, + "original_filename" : "DSC03584.dng", + "original_filesize" : 21473824, + "original_height" : 4000, + "original_orientation" : 0, + "original_width" : 6000, + "owner" : null, + "panorama" : false, + "path" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/DSC03584.dng", + "path_derivatives" : [ + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/UD3w1wufQy6UcuzQ31ZF1w/DSC03584.jpg", + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/UD3w1wufQy6UcuzQ31ZF1w/DSC03584_1024.jpg" + ], + "path_edited" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Previews/2023/09/27/20230927-064307/UD3w1wufQy6UcuzQ31ZF1w/DSC03584.jpg", + "path_edited_live_photo" : null, + "path_live_photo" : null, + "path_raw" : null, + "person_info" : [], + "persons" : [], + "place" : {}, + "portrait" : false, + "project_info" : [], + "rating" : 0, + "raw_original" : true, + "saved_to_library" : null, + "score" : { + "behavioral" : 0, + "curation" : 0, + "failure" : 0, + "harmonious_color" : 0, + "highlight_visibility" : 0, + "immersiveness" : 0, + "interaction" : 0, + "interesting_subject" : 0, + "intrusive_object_presence" : 0, + "lively_color" : 0, + "low_light" : 0, + "noise" : 0, + "overall" : 0, + "pleasant_camera_tilt" : 0, + "pleasant_composition" : 0, + "pleasant_lighting" : 0, + "pleasant_pattern" : 0, + "pleasant_perspective" : 0, + "pleasant_post_processing" : 0, + "pleasant_reflection" : 0, + "pleasant_symmetry" : 0, + "promotion" : 0, + "sharply_focused_subject" : 0, + "tastefully_blurred" : 0, + "well_chosen_subject" : 0, + "well_framed_subject" : 0, + "well_timed_shot" : 0 }, - "duration": 0.0, - "exposure_bias": 0, - "flash_fired": true, - "focal_length": 12.07, - "fps": 0.0, - "iso": 80, - "latitude": 0.0, - "lens_model": "6.1-30.5 mm", - "longitude": 0.0, - "metering_mode": 5, - "sample_rate": 0, - "shutter_speed": 0.0015625, - "software": "", - "track_format": 0, - "white_balance": 0 - }, - "external_edit": false, - "face_info": [], - "favorite": false, - "filename": "IMG_1994.cr2", - "fingerprint": "AcdED4L6F1YMINThWIl6T8vvYsvw", - "folders": {}, - "has_raw": false, - "hasadjustments": true, - "hdr": false, - "height": 3312, - "hidden": false, - "import_info": {}, - "incloud": null, - "intrash": 0, - "iscloudasset": false, - "ismissing": 0, - "ismovie": false, - "isphoto": true, - "israw": true, - "isreference": 0, - "keywords": [], - "labels": [], - "labels_normalized": [], - "latitude": 0.0, - "library": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", - "likes": [], - "live_photo": false, - "location": [ - null, - null - ], - "longitude": 0.0, - "orientation": 1, - "original_filename": "IMG_1994.cr2", - "original_filesize": 16128420, - "original_height": 3312, - "original_orientation": 0, - "original_width": 4416, - "owner": null, - "panorama": false, - "path": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/IMG_1994.cr2", - "path_derivatives": [ - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/TiiIk8KsQn+ZUVyBGno4iA/IMG_1994.jpg", - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/TiiIk8KsQn+ZUVyBGno4iA/IMG_1994_1024.jpg" - ], - "path_edited": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Previews/2023/09/27/20230927-064307/TiiIk8KsQn+ZUVyBGno4iA/IMG_1994.jpg", - "path_edited_live_photo": null, - "path_live_photo": null, - "path_raw": null, - "person_info": [], - "persons": [], - "place": {}, - "portrait": false, - "project_info": [], - "rating": 0, - "raw_original": true, - "saved_to_library": null, - "score": { - "behavioral": 0.0, - "curation": 0.0, - "failure": 0.0, - "harmonious_color": 0.0, - "highlight_visibility": 0.0, - "immersiveness": 0.0, - "interaction": 0.0, - "interesting_subject": 0.0, - "intrusive_object_presence": 0.0, - "lively_color": 0.0, - "low_light": 0.0, - "noise": 0.0, - "overall": 0.0, - "pleasant_camera_tilt": 0.0, - "pleasant_composition": 0.0, - "pleasant_lighting": 0.0, - "pleasant_pattern": 0.0, - "pleasant_perspective": 0.0, - "pleasant_post_processing": 0.0, - "pleasant_reflection": 0.0, - "pleasant_symmetry": 0.0, - "promotion": 0.0, - "sharply_focused_subject": 0.0, - "tastefully_blurred": 0.0, - "well_chosen_subject": 0.0, - "well_framed_subject": 0.0, - "well_timed_shot": 0.0 - }, - "screen_recording": false, - "screenshot": false, - "search_info": {}, - "search_info_normalized": {}, - "selfie": false, - "shared": null, - "shared_library": false, - "shared_moment": false, - "slow_mo": false, - "syndicated": null, - "time_lapse": false, - "title": "IMG_1994", - "tzoffset": 0, - "uti": "public.jpeg", - "uti_edited": "public.jpeg", - "uti_original": "com.canon.cr2-raw-image", - "uti_raw": "com.canon.cr2-raw-image", - "uuid": "TiiIk8KsQn+ZUVyBGno4iA", - "visible": false, - "width": 4416 - }, - { - "adjustments": {}, - "album_info": [], - "albums": [], - "burst": false, - "burst_album_info": [], - "burst_albums": [], - "burst_default_pick": false, - "burst_key": false, - "burst_photos": [], - "burst_selected": false, - "cloud_guid": "", - "cloud_metadata": {}, - "cloud_owner_hashed_id": "", - "comments": [], - "date": "2020-04-15T10:25:51+00:00", - "date_added": "2023-09-27T13:43:07.892120+00:00", - "date_modified": "2023-08-06T01:16:21+00:00", - "date_trashed": null, - "description": "", - "exif_info": { - "aperture": 4, - "bit_rate": 0.0, - "camera_make": "Canon", - "camera_model": "Canon PowerShot G10", - "codec": "", - "dict": { - "ApertureValue": 4, - "CaptureDayOfMonth": 15, - "CaptureDayOfWeek": 3, - "CaptureHourOfDay": 10, - "CaptureMinuteOfHour": 25, - "CaptureMonthOfYear": 4, - "CaptureSecondOfMinute": 51, - "CaptureYear": 2020, - "ColorModel": "RGB", - "ColorSpace": 1, - "Depth": 8, - "ExifVersion": "2.2.1", - "ExposureBiasValue": 0, - "ExposureMode": 0, - "ExposureProgram": 2, - "Firmware": "Firmware Version 1.04", - "Flash": 16, - "FlashExposureComp": 0, - "FlashPixVersion": "1.0", - "FocalLength": 12.07, - "FocusMode": 1, - "ISOSpeedRating": 80, - "ImageDate": 0, - "ImageDescription": " ", - "LensMaxMM": 30.5, - "LensMinMM": 6.1, - "LensModel": "6.1-30.5 mm", - "Make": "Canon", - "MaxApertureValue": 3.625, - "MeteringMode": 5, - "Model": "Canon PowerShot G10", - "PixelHeight": 3312, - "PixelWidth": 4416, - "ProfileName": "sRGB IEC61966-2.1", - "SceneCaptureType": 0, - "ShutterSpeed": 0.0015625, - "WhiteBalance": 0, - "WhiteBalanceIndex": 0 + "screen_recording" : false, + "screenshot" : false, + "search_info" : {}, + "search_info_normalized" : {}, + "selfie" : false, + "shared" : null, + "shared_library" : false, + "shared_moment" : false, + "slow_mo" : false, + "syndicated" : null, + "time_lapse" : false, + "title" : "DSC03584", + "tzname" : "GMT", + "tzoffset" : 0, + "uti" : "public.jpeg", + "uti_edited" : "public.jpeg", + "uti_original" : "com.adobe.raw-image", + "uti_raw" : "com.adobe.raw-image", + "uuid" : "UD3w1wufQy6UcuzQ31ZF1w", + "visible" : false, + "width" : 4000 + }, + { + "adjustments" : {}, + "album_info" : [], + "albums" : [], + "burst" : false, + "burst_album_info" : [], + "burst_albums" : [], + "burst_default_pick" : false, + "burst_key" : false, + "burst_photos" : [], + "burst_selected" : false, + "cloud_guid" : "", + "cloud_metadata" : {}, + "cloud_owner_hashed_id" : "", + "comments" : [], + "date" : "2020-04-15T10:25:51+00:00", + "date_added" : "2023-09-27T13:43:07.886434+00:00", + "date_modified" : "2023-08-06T01:16:22+00:00", + "date_original" : "2020-04-15T10:25:51+00:00", + "date_trashed" : null, + "description" : "", + "exif_info" : { + "aperture" : 4, + "bit_rate" : 0, + "camera_make" : "Canon", + "camera_model" : "Canon PowerShot G10", + "codec" : "", + "dict" : { + "ApertureValue" : 4, + "CaptureDayOfMonth" : 15, + "CaptureDayOfWeek" : 3, + "CaptureHourOfDay" : 10, + "CaptureMinuteOfHour" : 25, + "CaptureMonthOfYear" : 4, + "CaptureSecondOfMinute" : 51, + "CaptureYear" : 2020, + "ColorModel" : "RGB", + "ColorSpace" : 1, + "Depth" : 16, + "ExifVersion" : "2.2.1", + "ExposureBiasValue" : 0, + "ExposureMode" : 0, + "ExposureProgram" : 2, + "Firmware" : "Firmware Version 1.04", + "Flash" : 16, + "FlashExposureComp" : 0, + "FlashPixVersion" : "1.0", + "FocalLength" : 12.07, + "FocusMode" : 1, + "ISOSpeedRating" : 80, + "ImageDate" : 0, + "LensMaxMM" : 30.5, + "LensMinMM" : 6.1, + "LensModel" : "6.1-30.5 mm", + "Make" : "Canon", + "MaxApertureValue" : 3.625, + "MeteringMode" : 5, + "Model" : "Canon PowerShot G10", + "PixelHeight" : 3312, + "PixelWidth" : 4416, + "ProfileName" : "Display P3", + "SceneCaptureType" : 0, + "ShutterSpeed" : 0.0015625, + "WhiteBalance" : 0, + "WhiteBalanceIndex" : 0 + }, + "duration" : 0, + "exposure_bias" : 0, + "flash_fired" : true, + "focal_length" : 12.07, + "fps" : 0, + "iso" : 80, + "latitude" : 0, + "lens_model" : "6.1-30.5 mm", + "longitude" : 0, + "metering_mode" : 5, + "sample_rate" : 0, + "shutter_speed" : 0.0015625, + "software" : "", + "track_format" : 0, + "white_balance" : 0 }, - "duration": 0.0, - "exposure_bias": 0, - "flash_fired": true, - "focal_length": 12.07, - "fps": 0.0, - "iso": 80, - "latitude": 0.0, - "lens_model": "6.1-30.5 mm", - "longitude": 0.0, - "metering_mode": 5, - "sample_rate": 0, - "shutter_speed": 0.0015625, - "software": "", - "track_format": 0, - "white_balance": 0 - }, - "external_edit": false, - "face_info": [], - "favorite": false, - "filename": "IMG_1994.JPG", - "fingerprint": "AT6Ji2L3VO4MblxwJL/B7PjzfzGv", - "folders": {}, - "has_raw": false, - "hasadjustments": false, - "hdr": false, - "height": 3312, - "hidden": false, - "import_info": {}, - "incloud": null, - "intrash": 0, - "iscloudasset": false, - "ismissing": 0, - "ismovie": false, - "isphoto": true, - "israw": false, - "isreference": 0, - "keywords": [], - "labels": [], - "labels_normalized": [], - "latitude": 0.0, - "library": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", - "likes": [], - "live_photo": false, - "location": [ - null, - null - ], - "longitude": 0.0, - "orientation": 1, - "original_filename": "IMG_1994.JPG", - "original_filesize": 2901554, - "original_height": 3312, - "original_orientation": 0, - "original_width": 4416, - "owner": null, - "panorama": false, - "path": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/IMG_1994.JPG", - "path_derivatives": [ - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/ReMuru2aQOWFGSt0%%j7pg/IMG_1994_1024_2.jpg", - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/ReMuru2aQOWFGSt0%%j7pg/IMG_1994_2.jpg" - ], - "path_edited": "", - "path_edited_live_photo": null, - "path_live_photo": null, - "path_raw": null, - "person_info": [], - "persons": [], - "place": {}, - "portrait": false, - "project_info": [], - "rating": 0, - "raw_original": false, - "saved_to_library": null, - "score": { - "behavioral": 0.0, - "curation": 0.0, - "failure": 0.0, - "harmonious_color": 0.0, - "highlight_visibility": 0.0, - "immersiveness": 0.0, - "interaction": 0.0, - "interesting_subject": 0.0, - "intrusive_object_presence": 0.0, - "lively_color": 0.0, - "low_light": 0.0, - "noise": 0.0, - "overall": 0.0, - "pleasant_camera_tilt": 0.0, - "pleasant_composition": 0.0, - "pleasant_lighting": 0.0, - "pleasant_pattern": 0.0, - "pleasant_perspective": 0.0, - "pleasant_post_processing": 0.0, - "pleasant_reflection": 0.0, - "pleasant_symmetry": 0.0, - "promotion": 0.0, - "sharply_focused_subject": 0.0, - "tastefully_blurred": 0.0, - "well_chosen_subject": 0.0, - "well_framed_subject": 0.0, - "well_timed_shot": 0.0 - }, - "screen_recording": false, - "screenshot": false, - "search_info": {}, - "search_info_normalized": {}, - "selfie": false, - "shared": null, - "shared_library": false, - "shared_moment": false, - "slow_mo": false, - "syndicated": null, - "time_lapse": false, - "title": "IMG_1994", - "tzoffset": 0, - "uti": "public.jpeg", - "uti_edited": null, - "uti_original": "public.jpeg", - "uti_raw": null, - "uuid": "ReMuru2aQOWFGSt0%%j7pg", - "visible": false, - "width": 4416 - }, - { - "adjustments": {}, - "album_info": [], - "albums": [], - "burst": false, - "burst_album_info": [], - "burst_albums": [], - "burst_default_pick": false, - "burst_key": false, - "burst_photos": [], - "burst_selected": false, - "cloud_guid": "", - "cloud_metadata": {}, - "cloud_owner_hashed_id": "", - "comments": [], - "date": "2020-04-16T10:42:58+00:00", - "date_added": "2023-09-27T13:43:07.895874+00:00", - "date_modified": "2023-09-27T13:43:07.899301+00:00", - "date_trashed": null, - "description": "", - "exif_info": { - "aperture": 4, - "bit_rate": 0.0, - "camera_make": "Canon", - "camera_model": "Canon PowerShot G10", - "codec": "", - "dict": { - "ApertureValue": 4, - "CaptureDayOfMonth": 16, - "CaptureDayOfWeek": 4, - "CaptureHourOfDay": 10, - "CaptureMinuteOfHour": 42, - "CaptureMonthOfYear": 4, - "CaptureSecondOfMinute": 58, - "CaptureYear": 2020, - "ColorModel": "RGB", - "ColorSpace": 1, - "Depth": 16, - "ExifVersion": "2.2.1", - "ExposureBiasValue": 0, - "ExposureMode": 0, - "ExposureProgram": 2, - "Firmware": "Firmware Version 1.04", - "Flash": 16, - "FlashExposureComp": 0, - "FlashPixVersion": "1.0", - "FocalLength": 6.1, - "FocusMode": 1, - "ISOSpeedRating": 80, - "ImageDate": 0, - "LensMaxMM": 30.5, - "LensMinMM": 6.1, - "LensModel": "6.1-30.5 mm", - "Make": "Canon", - "MaxApertureValue": 2.969, - "MeteringMode": 5, - "Model": "Canon PowerShot G10", - "PixelHeight": 3312, - "PixelWidth": 4416, - "ProfileName": "Display P3", - "SceneCaptureType": 0, - "ShutterSpeed": 0.003125, - "WhiteBalance": 0, - "WhiteBalanceIndex": 0 + "external_edit" : false, + "face_info" : [], + "favorite" : false, + "filename" : "IMG_1994.cr2", + "fingerprint" : "AcdED4L6F1YMINThWIl6T8vvYsvw", + "folders" : {}, + "has_raw" : false, + "hasadjustments" : true, + "hdr" : false, + "height" : 3312, + "hidden" : false, + "import_info" : {}, + "incloud" : null, + "intrash" : 0, + "iscloudasset" : false, + "ismissing" : 0, + "ismovie" : false, + "isphoto" : true, + "israw" : true, + "isreference" : 0, + "keywords" : [], + "labels" : [], + "labels_normalized" : [], + "latitude" : 0, + "library" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", + "likes" : [], + "live_photo" : false, + "location" : [ + null, + null + ], + "longitude" : 0, + "orientation" : 1, + "original_filename" : "IMG_1994.cr2", + "original_filesize" : 16128420, + "original_height" : 3312, + "original_orientation" : 0, + "original_width" : 4416, + "owner" : null, + "panorama" : false, + "path" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/IMG_1994.cr2", + "path_derivatives" : [ + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/TiiIk8KsQn+ZUVyBGno4iA/IMG_1994.jpg", + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/TiiIk8KsQn+ZUVyBGno4iA/IMG_1994_1024.jpg" + ], + "path_edited" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Previews/2023/09/27/20230927-064307/TiiIk8KsQn+ZUVyBGno4iA/IMG_1994.jpg", + "path_edited_live_photo" : null, + "path_live_photo" : null, + "path_raw" : null, + "person_info" : [], + "persons" : [], + "place" : {}, + "portrait" : false, + "project_info" : [], + "rating" : 0, + "raw_original" : true, + "saved_to_library" : null, + "score" : { + "behavioral" : 0, + "curation" : 0, + "failure" : 0, + "harmonious_color" : 0, + "highlight_visibility" : 0, + "immersiveness" : 0, + "interaction" : 0, + "interesting_subject" : 0, + "intrusive_object_presence" : 0, + "lively_color" : 0, + "low_light" : 0, + "noise" : 0, + "overall" : 0, + "pleasant_camera_tilt" : 0, + "pleasant_composition" : 0, + "pleasant_lighting" : 0, + "pleasant_pattern" : 0, + "pleasant_perspective" : 0, + "pleasant_post_processing" : 0, + "pleasant_reflection" : 0, + "pleasant_symmetry" : 0, + "promotion" : 0, + "sharply_focused_subject" : 0, + "tastefully_blurred" : 0, + "well_chosen_subject" : 0, + "well_framed_subject" : 0, + "well_timed_shot" : 0 }, - "duration": 0.0, - "exposure_bias": 0, - "flash_fired": true, - "focal_length": 6.1, - "fps": 0.0, - "iso": 80, - "latitude": 0.0, - "lens_model": "6.1-30.5 mm", - "longitude": 0.0, - "metering_mode": 5, - "sample_rate": 0, - "shutter_speed": 0.003125, - "software": "", - "track_format": 0, - "white_balance": 0 - }, - "external_edit": false, - "face_info": [], - "favorite": false, - "filename": "IMG_1997.cr2", - "fingerprint": "ATALvicayvYaM2vzRgDDJS5cXD/q", - "folders": {}, - "has_raw": false, - "hasadjustments": true, - "hdr": false, - "height": 4416, - "hidden": false, - "import_info": {}, - "incloud": null, - "intrash": 0, - "iscloudasset": false, - "ismissing": 0, - "ismovie": false, - "isphoto": true, - "israw": true, - "isreference": 0, - "keywords": [], - "labels": [], - "labels_normalized": [], - "latitude": 0.0, - "library": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", - "likes": [], - "live_photo": false, - "location": [ - null, - null - ], - "longitude": 0.0, - "orientation": 6, - "original_filename": "IMG_1997.cr2", - "original_filesize": 15921433, - "original_height": 3312, - "original_orientation": 0, - "original_width": 4416, - "owner": null, - "panorama": false, - "path": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/IMG_1997.cr2", - "path_derivatives": [ - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/UaL9+WGLTRSpqLbgUoUsIQ/IMG_1997.jpg", - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/UaL9+WGLTRSpqLbgUoUsIQ/IMG_1997_1024.jpg" - ], - "path_edited": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Previews/2023/09/27/20230927-064307/UaL9+WGLTRSpqLbgUoUsIQ/IMG_1997.jpg", - "path_edited_live_photo": null, - "path_live_photo": null, - "path_raw": null, - "person_info": [], - "persons": [], - "place": {}, - "portrait": false, - "project_info": [], - "rating": 1, - "raw_original": true, - "saved_to_library": null, - "score": { - "behavioral": 0.0, - "curation": 0.0, - "failure": 0.0, - "harmonious_color": 0.0, - "highlight_visibility": 0.0, - "immersiveness": 0.0, - "interaction": 0.0, - "interesting_subject": 0.0, - "intrusive_object_presence": 0.0, - "lively_color": 0.0, - "low_light": 0.0, - "noise": 0.0, - "overall": 0.0, - "pleasant_camera_tilt": 0.0, - "pleasant_composition": 0.0, - "pleasant_lighting": 0.0, - "pleasant_pattern": 0.0, - "pleasant_perspective": 0.0, - "pleasant_post_processing": 0.0, - "pleasant_reflection": 0.0, - "pleasant_symmetry": 0.0, - "promotion": 0.0, - "sharply_focused_subject": 0.0, - "tastefully_blurred": 0.0, - "well_chosen_subject": 0.0, - "well_framed_subject": 0.0, - "well_timed_shot": 0.0 - }, - "screen_recording": false, - "screenshot": false, - "search_info": {}, - "search_info_normalized": {}, - "selfie": false, - "shared": null, - "shared_library": false, - "shared_moment": false, - "slow_mo": false, - "syndicated": null, - "time_lapse": false, - "title": "IMG_1997", - "tzoffset": 0, - "uti": "public.jpeg", - "uti_edited": "public.jpeg", - "uti_original": "com.canon.cr2-raw-image", - "uti_raw": "com.canon.cr2-raw-image", - "uuid": "UaL9+WGLTRSpqLbgUoUsIQ", - "visible": false, - "width": 3312 - }, - { - "adjustments": {}, - "album_info": [], - "albums": [], - "burst": false, - "burst_album_info": [], - "burst_albums": [], - "burst_default_pick": false, - "burst_key": false, - "burst_photos": [], - "burst_selected": false, - "cloud_guid": "", - "cloud_metadata": {}, - "cloud_owner_hashed_id": "", - "comments": [], - "date": "2020-04-16T10:42:58+00:00", - "date_added": "2023-09-27T13:43:07.899632+00:00", - "date_modified": "2023-09-27T13:43:07.902325+00:00", - "date_trashed": null, - "description": "", - "exif_info": { - "aperture": 4, - "bit_rate": 0.0, - "camera_make": "Canon", - "camera_model": "Canon PowerShot G10", - "codec": "", - "dict": { - "ApertureValue": 4, - "CaptureDayOfMonth": 16, - "CaptureDayOfWeek": 4, - "CaptureHourOfDay": 10, - "CaptureMinuteOfHour": 42, - "CaptureMonthOfYear": 4, - "CaptureSecondOfMinute": 58, - "CaptureYear": 2020, - "ColorModel": "RGB", - "ColorSpace": 1, - "Depth": 8, - "ExifVersion": "2.2.1", - "ExposureBiasValue": 0, - "ExposureMode": 0, - "ExposureProgram": 2, - "Firmware": "Firmware Version 1.04", - "Flash": 16, - "FlashExposureComp": 0, - "FlashPixVersion": "1.0", - "FocalLength": 6.1, - "FocusMode": 1, - "ISOSpeedRating": 80, - "ImageDate": 0, - "ImageDescription": " ", - "LensMaxMM": 30.5, - "LensMinMM": 6.1, - "LensModel": "6.1-30.5 mm", - "Make": "Canon", - "MaxApertureValue": 2.969, - "MeteringMode": 5, - "Model": "Canon PowerShot G10", - "PixelHeight": 3312, - "PixelWidth": 4416, - "ProfileName": "sRGB IEC61966-2.1", - "SceneCaptureType": 0, - "ShutterSpeed": 0.003125, - "WhiteBalance": 0, - "WhiteBalanceIndex": 0 + "screen_recording" : false, + "screenshot" : false, + "search_info" : {}, + "search_info_normalized" : {}, + "selfie" : false, + "shared" : null, + "shared_library" : false, + "shared_moment" : false, + "slow_mo" : false, + "syndicated" : null, + "time_lapse" : false, + "title" : "IMG_1994", + "tzname" : "GMT", + "tzoffset" : 0, + "uti" : "public.jpeg", + "uti_edited" : "public.jpeg", + "uti_original" : "com.canon.cr2-raw-image", + "uti_raw" : "com.canon.cr2-raw-image", + "uuid" : "TiiIk8KsQn+ZUVyBGno4iA", + "visible" : false, + "width" : 4416 + }, + { + "adjustments" : {}, + "album_info" : [], + "albums" : [], + "burst" : false, + "burst_album_info" : [], + "burst_albums" : [], + "burst_default_pick" : false, + "burst_key" : false, + "burst_photos" : [], + "burst_selected" : false, + "cloud_guid" : "", + "cloud_metadata" : {}, + "cloud_owner_hashed_id" : "", + "comments" : [], + "date" : "2020-04-15T10:25:51+00:00", + "date_added" : "2023-09-27T13:43:07.892120+00:00", + "date_modified" : "2023-08-06T01:16:21+00:00", + "date_original" : "2020-04-15T10:25:51+00:00", + "date_trashed" : null, + "description" : "", + "exif_info" : { + "aperture" : 4, + "bit_rate" : 0, + "camera_make" : "Canon", + "camera_model" : "Canon PowerShot G10", + "codec" : "", + "dict" : { + "ApertureValue" : 4, + "CaptureDayOfMonth" : 15, + "CaptureDayOfWeek" : 3, + "CaptureHourOfDay" : 10, + "CaptureMinuteOfHour" : 25, + "CaptureMonthOfYear" : 4, + "CaptureSecondOfMinute" : 51, + "CaptureYear" : 2020, + "ColorModel" : "RGB", + "ColorSpace" : 1, + "Depth" : 8, + "ExifVersion" : "2.2.1", + "ExposureBiasValue" : 0, + "ExposureMode" : 0, + "ExposureProgram" : 2, + "Firmware" : "Firmware Version 1.04", + "Flash" : 16, + "FlashExposureComp" : 0, + "FlashPixVersion" : "1.0", + "FocalLength" : 12.07, + "FocusMode" : 1, + "ISOSpeedRating" : 80, + "ImageDate" : 0, + "ImageDescription" : " ", + "LensMaxMM" : 30.5, + "LensMinMM" : 6.1, + "LensModel" : "6.1-30.5 mm", + "Make" : "Canon", + "MaxApertureValue" : 3.625, + "MeteringMode" : 5, + "Model" : "Canon PowerShot G10", + "PixelHeight" : 3312, + "PixelWidth" : 4416, + "ProfileName" : "sRGB IEC61966-2.1", + "SceneCaptureType" : 0, + "ShutterSpeed" : 0.0015625, + "WhiteBalance" : 0, + "WhiteBalanceIndex" : 0 + }, + "duration" : 0, + "exposure_bias" : 0, + "flash_fired" : true, + "focal_length" : 12.07, + "fps" : 0, + "iso" : 80, + "latitude" : 0, + "lens_model" : "6.1-30.5 mm", + "longitude" : 0, + "metering_mode" : 5, + "sample_rate" : 0, + "shutter_speed" : 0.0015625, + "software" : "", + "track_format" : 0, + "white_balance" : 0 }, - "duration": 0.0, - "exposure_bias": 0, - "flash_fired": true, - "focal_length": 6.1, - "fps": 0.0, - "iso": 80, - "latitude": 0.0, - "lens_model": "6.1-30.5 mm", - "longitude": 0.0, - "metering_mode": 5, - "sample_rate": 0, - "shutter_speed": 0.003125, - "software": "", - "track_format": 0, - "white_balance": 0 - }, - "external_edit": false, - "face_info": [], - "favorite": false, - "filename": "IMG_1997.JPG", - "fingerprint": "AdLY396dV18Hg6gS5YMwXpOdemH7", - "folders": {}, - "has_raw": false, - "hasadjustments": false, - "hdr": false, - "height": 4416, - "hidden": false, - "import_info": {}, - "incloud": null, - "intrash": 0, - "iscloudasset": false, - "ismissing": 0, - "ismovie": false, - "isphoto": true, - "israw": false, - "isreference": 0, - "keywords": [], - "labels": [], - "labels_normalized": [], - "latitude": 0.0, - "library": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", - "likes": [], - "live_photo": false, - "location": [ - null, - null - ], - "longitude": 0.0, - "orientation": 6, - "original_filename": "IMG_1997.JPG", - "original_filesize": 2991408, - "original_height": 3312, - "original_orientation": 0, - "original_width": 4416, - "owner": null, - "panorama": false, - "path": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/IMG_1997.JPG", - "path_derivatives": [ - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/wOCT+bugTx2I9gKyidlKUg/IMG_1997_1024_2.jpg", - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/wOCT+bugTx2I9gKyidlKUg/IMG_1997_2.jpg" - ], - "path_edited": "", - "path_edited_live_photo": null, - "path_live_photo": null, - "path_raw": null, - "person_info": [], - "persons": [], - "place": {}, - "portrait": false, - "project_info": [], - "rating": 1, - "raw_original": false, - "saved_to_library": null, - "score": { - "behavioral": 0.0, - "curation": 0.0, - "failure": 0.0, - "harmonious_color": 0.0, - "highlight_visibility": 0.0, - "immersiveness": 0.0, - "interaction": 0.0, - "interesting_subject": 0.0, - "intrusive_object_presence": 0.0, - "lively_color": 0.0, - "low_light": 0.0, - "noise": 0.0, - "overall": 0.0, - "pleasant_camera_tilt": 0.0, - "pleasant_composition": 0.0, - "pleasant_lighting": 0.0, - "pleasant_pattern": 0.0, - "pleasant_perspective": 0.0, - "pleasant_post_processing": 0.0, - "pleasant_reflection": 0.0, - "pleasant_symmetry": 0.0, - "promotion": 0.0, - "sharply_focused_subject": 0.0, - "tastefully_blurred": 0.0, - "well_chosen_subject": 0.0, - "well_framed_subject": 0.0, - "well_timed_shot": 0.0 - }, - "screen_recording": false, - "screenshot": false, - "search_info": {}, - "search_info_normalized": {}, - "selfie": false, - "shared": null, - "shared_library": false, - "shared_moment": false, - "slow_mo": false, - "syndicated": null, - "time_lapse": false, - "title": "IMG_1997", - "tzoffset": 0, - "uti": "public.jpeg", - "uti_edited": null, - "uti_original": "public.jpeg", - "uti_raw": null, - "uuid": "wOCT+bugTx2I9gKyidlKUg", - "visible": false, - "width": 3312 - }, - { - "adjustments": {}, - "album_info": [], - "albums": [], - "burst": false, - "burst_album_info": [], - "burst_albums": [], - "burst_default_pick": false, - "burst_key": false, - "burst_photos": [], - "burst_selected": false, - "cloud_guid": "", - "cloud_metadata": {}, - "cloud_owner_hashed_id": "", - "comments": [], - "date": "2020-09-19T14:36:26+00:00", - "date_added": "2023-09-27T13:43:07.902533+00:00", - "date_modified": "2023-07-25T05:05:15.012613+00:00", - "date_trashed": null, - "description": "", - "exif_info": { - "aperture": 2.2, - "bit_rate": 0.0, - "camera_make": "Apple", - "camera_model": "iPhone 6s", - "codec": "", - "dict": { - "ApertureValue": 2.2, - "BrightnessValue": 9.127, - "CaptureDayOfMonth": 19, - "CaptureDayOfWeek": 6, - "CaptureHourOfDay": 14, - "CaptureMinuteOfHour": 36, - "CaptureMonthOfYear": 9, - "CaptureSecondOfMinute": 26, - "CaptureYear": 2020, - "ColorModel": "RGB", - "ColorSpace": 1, - "Depth": 8, - "ExifVersion": "2.3.1", - "ExposureBiasValue": 0, - "ExposureMode": 0, - "ExposureProgram": 2, - "Flash": 16, - "FlashPixVersion": "1.0", - "FocalLenIn35mmFilm": 38, - "FocalLength": 4.15, - "ISOSpeedRating": 25, - "ImageDate": 0, - "LensModel": "iPhone 6s back camera 4.15mm f/2.2", - "Make": "Apple", - "MeteringMode": 5, - "Model": "iPhone 6s", - "PixelHeight": 4032, - "PixelWidth": 3024, - "ProfileName": "sRGB IEC61966-2.1", - "SceneCaptureType": 0, - "ShutterSpeed": 0.0013004000000000002, - "Software": "13.7", - "WhiteBalance": 0 + "external_edit" : false, + "face_info" : [], + "favorite" : false, + "filename" : "IMG_1994.JPG", + "fingerprint" : "AT6Ji2L3VO4MblxwJL/B7PjzfzGv", + "folders" : {}, + "has_raw" : false, + "hasadjustments" : false, + "hdr" : false, + "height" : 3312, + "hidden" : false, + "import_info" : {}, + "incloud" : null, + "intrash" : 0, + "iscloudasset" : false, + "ismissing" : 0, + "ismovie" : false, + "isphoto" : true, + "israw" : false, + "isreference" : 0, + "keywords" : [], + "labels" : [], + "labels_normalized" : [], + "latitude" : 0, + "library" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", + "likes" : [], + "live_photo" : false, + "location" : [ + null, + null + ], + "longitude" : 0, + "orientation" : 1, + "original_filename" : "IMG_1994.JPG", + "original_filesize" : 2901554, + "original_height" : 3312, + "original_orientation" : 0, + "original_width" : 4416, + "owner" : null, + "panorama" : false, + "path" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/IMG_1994.JPG", + "path_derivatives" : [ + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/ReMuru2aQOWFGSt0%%j7pg/IMG_1994_1024_2.jpg", + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/ReMuru2aQOWFGSt0%%j7pg/IMG_1994_2.jpg" + ], + "path_edited" : "", + "path_edited_live_photo" : null, + "path_live_photo" : null, + "path_raw" : null, + "person_info" : [], + "persons" : [], + "place" : {}, + "portrait" : false, + "project_info" : [], + "rating" : 0, + "raw_original" : false, + "saved_to_library" : null, + "score" : { + "behavioral" : 0, + "curation" : 0, + "failure" : 0, + "harmonious_color" : 0, + "highlight_visibility" : 0, + "immersiveness" : 0, + "interaction" : 0, + "interesting_subject" : 0, + "intrusive_object_presence" : 0, + "lively_color" : 0, + "low_light" : 0, + "noise" : 0, + "overall" : 0, + "pleasant_camera_tilt" : 0, + "pleasant_composition" : 0, + "pleasant_lighting" : 0, + "pleasant_pattern" : 0, + "pleasant_perspective" : 0, + "pleasant_post_processing" : 0, + "pleasant_reflection" : 0, + "pleasant_symmetry" : 0, + "promotion" : 0, + "sharply_focused_subject" : 0, + "tastefully_blurred" : 0, + "well_chosen_subject" : 0, + "well_framed_subject" : 0, + "well_timed_shot" : 0 }, - "duration": 0.0, - "exposure_bias": 0, - "flash_fired": true, - "focal_length": 4.15, - "fps": 0.0, - "iso": 25, - "latitude": 0.0, - "lens_model": "iPhone 6s back camera 4.15mm f/2.2", - "longitude": 0.0, - "metering_mode": 5, - "sample_rate": 0, - "shutter_speed": 0.0013004000000000002, - "software": "13.7", - "track_format": 0, - "white_balance": 0 - }, - "external_edit": false, - "face_info": [], - "favorite": false, - "filename": "IMG_3092.heic", - "fingerprint": "AbQ65MLrRyNJwYcHGqMr6cycEWug", - "folders": {}, - "has_raw": false, - "hasadjustments": false, - "hdr": false, - "height": 4032, - "hidden": false, - "import_info": {}, - "incloud": null, - "intrash": 0, - "iscloudasset": false, - "ismissing": 0, - "ismovie": false, - "isphoto": true, - "israw": false, - "isreference": 0, - "keywords": [], - "labels": [], - "labels_normalized": [], - "latitude": 0.0, - "library": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", - "likes": [], - "live_photo": false, - "location": [ - null, - null - ], - "longitude": 0.0, - "orientation": 1, - "original_filename": "IMG_3092.heic", - "original_filesize": 1877314, - "original_height": 4032, - "original_orientation": 0, - "original_width": 3024, - "owner": null, - "panorama": false, - "path": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/IMG_3092.heic", - "path_derivatives": [ - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/WvY%8CN+RLaDKrD0GQCRoQ/IMG_3092.jpg", - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/WvY%8CN+RLaDKrD0GQCRoQ/IMG_3092_1024.jpg" - ], - "path_edited": "", - "path_edited_live_photo": null, - "path_live_photo": null, - "path_raw": null, - "person_info": [], - "persons": [], - "place": {}, - "portrait": false, - "project_info": [], - "rating": 0, - "raw_original": false, - "saved_to_library": null, - "score": { - "behavioral": 0.0, - "curation": 0.0, - "failure": 0.0, - "harmonious_color": 0.0, - "highlight_visibility": 0.0, - "immersiveness": 0.0, - "interaction": 0.0, - "interesting_subject": 0.0, - "intrusive_object_presence": 0.0, - "lively_color": 0.0, - "low_light": 0.0, - "noise": 0.0, - "overall": 0.0, - "pleasant_camera_tilt": 0.0, - "pleasant_composition": 0.0, - "pleasant_lighting": 0.0, - "pleasant_pattern": 0.0, - "pleasant_perspective": 0.0, - "pleasant_post_processing": 0.0, - "pleasant_reflection": 0.0, - "pleasant_symmetry": 0.0, - "promotion": 0.0, - "sharply_focused_subject": 0.0, - "tastefully_blurred": 0.0, - "well_chosen_subject": 0.0, - "well_framed_subject": 0.0, - "well_timed_shot": 0.0 - }, - "screen_recording": false, - "screenshot": false, - "search_info": {}, - "search_info_normalized": {}, - "selfie": false, - "shared": null, - "shared_library": false, - "shared_moment": false, - "slow_mo": false, - "syndicated": null, - "time_lapse": false, - "title": "IMG_3092", - "tzoffset": 0, - "uti": "public.heic", - "uti_edited": null, - "uti_original": "public.heic", - "uti_raw": null, - "uuid": "WvY%8CN+RLaDKrD0GQCRoQ", - "visible": false, - "width": 3024 - }, - { - "adjustments": {}, - "album_info": [ - { - "folder_list": [], - "folder_names": [], - "parent": null, - "sort_order": 0, - "title": "Pumpkin Farm", - "uuid": "pDZqrEDNTc2Rt9Q1hdvStQ" + "screen_recording" : false, + "screenshot" : false, + "search_info" : {}, + "search_info_normalized" : {}, + "selfie" : false, + "shared" : null, + "shared_library" : false, + "shared_moment" : false, + "slow_mo" : false, + "syndicated" : null, + "time_lapse" : false, + "title" : "IMG_1994", + "tzname" : "GMT", + "tzoffset" : 0, + "uti" : "public.jpeg", + "uti_edited" : null, + "uti_original" : "public.jpeg", + "uti_raw" : null, + "uuid" : "ReMuru2aQOWFGSt0%%j7pg", + "visible" : false, + "width" : 4416 + }, + { + "adjustments" : {}, + "album_info" : [], + "albums" : [], + "burst" : false, + "burst_album_info" : [], + "burst_albums" : [], + "burst_default_pick" : false, + "burst_key" : false, + "burst_photos" : [], + "burst_selected" : false, + "cloud_guid" : "", + "cloud_metadata" : {}, + "cloud_owner_hashed_id" : "", + "comments" : [], + "date" : "2020-04-16T10:42:58+00:00", + "date_added" : "2023-09-27T13:43:07.895874+00:00", + "date_modified" : "2023-09-27T13:43:07.899301+00:00", + "date_original" : "2020-04-16T10:42:58+00:00", + "date_trashed" : null, + "description" : "", + "exif_info" : { + "aperture" : 4, + "bit_rate" : 0, + "camera_make" : "Canon", + "camera_model" : "Canon PowerShot G10", + "codec" : "", + "dict" : { + "ApertureValue" : 4, + "CaptureDayOfMonth" : 16, + "CaptureDayOfWeek" : 4, + "CaptureHourOfDay" : 10, + "CaptureMinuteOfHour" : 42, + "CaptureMonthOfYear" : 4, + "CaptureSecondOfMinute" : 58, + "CaptureYear" : 2020, + "ColorModel" : "RGB", + "ColorSpace" : 1, + "Depth" : 16, + "ExifVersion" : "2.2.1", + "ExposureBiasValue" : 0, + "ExposureMode" : 0, + "ExposureProgram" : 2, + "Firmware" : "Firmware Version 1.04", + "Flash" : 16, + "FlashExposureComp" : 0, + "FlashPixVersion" : "1.0", + "FocalLength" : 6.1, + "FocusMode" : 1, + "ISOSpeedRating" : 80, + "ImageDate" : 0, + "LensMaxMM" : 30.5, + "LensMinMM" : 6.1, + "LensModel" : "6.1-30.5 mm", + "Make" : "Canon", + "MaxApertureValue" : 2.969, + "MeteringMode" : 5, + "Model" : "Canon PowerShot G10", + "PixelHeight" : 3312, + "PixelWidth" : 4416, + "ProfileName" : "Display P3", + "SceneCaptureType" : 0, + "ShutterSpeed" : 0.003125, + "WhiteBalance" : 0, + "WhiteBalanceIndex" : 0 + }, + "duration" : 0, + "exposure_bias" : 0, + "flash_fired" : true, + "focal_length" : 6.1, + "fps" : 0, + "iso" : 80, + "latitude" : 0, + "lens_model" : "6.1-30.5 mm", + "longitude" : 0, + "metering_mode" : 5, + "sample_rate" : 0, + "shutter_speed" : 0.003125, + "software" : "", + "track_format" : 0, + "white_balance" : 0 }, - { - "folder_list": [], - "folder_names": [], - "parent": null, - "sort_order": 0, - "title": "Test Album", - "uuid": "Tn%h%CuhQruD8VQ5zVgy8g" - } - ], - "albums": [ - "Pumpkin Farm", - "Test Album" - ], - "burst": false, - "burst_album_info": [ - { - "folder_list": [], - "folder_names": [], - "parent": null, - "sort_order": 0, - "title": "Pumpkin Farm", - "uuid": "pDZqrEDNTc2Rt9Q1hdvStQ" + "external_edit" : false, + "face_info" : [], + "favorite" : false, + "filename" : "IMG_1997.cr2", + "fingerprint" : "ATALvicayvYaM2vzRgDDJS5cXD/q", + "folders" : {}, + "has_raw" : false, + "hasadjustments" : true, + "hdr" : false, + "height" : 4416, + "hidden" : false, + "import_info" : {}, + "incloud" : null, + "intrash" : 0, + "iscloudasset" : false, + "ismissing" : 0, + "ismovie" : false, + "isphoto" : true, + "israw" : true, + "isreference" : 0, + "keywords" : [], + "labels" : [], + "labels_normalized" : [], + "latitude" : 0, + "library" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", + "likes" : [], + "live_photo" : false, + "location" : [ + null, + null + ], + "longitude" : 0, + "orientation" : 6, + "original_filename" : "IMG_1997.cr2", + "original_filesize" : 15921433, + "original_height" : 3312, + "original_orientation" : 0, + "original_width" : 4416, + "owner" : null, + "panorama" : false, + "path" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/IMG_1997.cr2", + "path_derivatives" : [ + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/UaL9+WGLTRSpqLbgUoUsIQ/IMG_1997.jpg", + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/UaL9+WGLTRSpqLbgUoUsIQ/IMG_1997_1024.jpg" + ], + "path_edited" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Previews/2023/09/27/20230927-064307/UaL9+WGLTRSpqLbgUoUsIQ/IMG_1997.jpg", + "path_edited_live_photo" : null, + "path_live_photo" : null, + "path_raw" : null, + "person_info" : [], + "persons" : [], + "place" : {}, + "portrait" : false, + "project_info" : [], + "rating" : 1, + "raw_original" : true, + "saved_to_library" : null, + "score" : { + "behavioral" : 0, + "curation" : 0, + "failure" : 0, + "harmonious_color" : 0, + "highlight_visibility" : 0, + "immersiveness" : 0, + "interaction" : 0, + "interesting_subject" : 0, + "intrusive_object_presence" : 0, + "lively_color" : 0, + "low_light" : 0, + "noise" : 0, + "overall" : 0, + "pleasant_camera_tilt" : 0, + "pleasant_composition" : 0, + "pleasant_lighting" : 0, + "pleasant_pattern" : 0, + "pleasant_perspective" : 0, + "pleasant_post_processing" : 0, + "pleasant_reflection" : 0, + "pleasant_symmetry" : 0, + "promotion" : 0, + "sharply_focused_subject" : 0, + "tastefully_blurred" : 0, + "well_chosen_subject" : 0, + "well_framed_subject" : 0, + "well_timed_shot" : 0 }, - { - "folder_list": [], - "folder_names": [], - "parent": null, - "sort_order": 0, - "title": "Test Album", - "uuid": "Tn%h%CuhQruD8VQ5zVgy8g" - } - ], - "burst_albums": [ - "Pumpkin Farm", - "Test Album" - ], - "burst_default_pick": false, - "burst_key": false, - "burst_photos": [], - "burst_selected": false, - "cloud_guid": "", - "cloud_metadata": {}, - "cloud_owner_hashed_id": "", - "comments": [], - "date": "2018-09-28T15:35:49+00:00", - "date_added": "2023-09-27T13:43:07.906087+00:00", - "date_modified": "2023-07-25T05:05:15.024575+00:00", - "date_trashed": null, - "description": "Girls with pumpkins", - "exif_info": { - "aperture": 5, - "bit_rate": 0.0, - "camera_make": "Canon", - "camera_model": "Canon EOS 5D Mark IV", - "codec": "", - "dict": { - "ApertureValue": 5, - "Artist": "Alexander Moore", - "CaptureDayOfMonth": 28, - "CaptureDayOfWeek": 5, - "CaptureHourOfDay": 15, - "CaptureMinuteOfHour": 35, - "CaptureMonthOfYear": 9, - "CaptureSecondOfMinute": 49, - "CaptureYear": 2018, - "ColorModel": "RGB", - "ColorSpace": 65535, - "Copyright": "YTC Ltd", - "Depth": 8, - "ExifVersion": "2.3.1", - "ExposureBiasValue": -0.33299999999999996, - "ExposureMode": 0, - "ExposureProgram": 4, - "Flash": 16, - "FlashPixVersion": "1.0", - "FocalLength": 84, - "ISOSpeedRating": 100, - "ImageDate": 0, - "ImageDescription": "Girls with pumpkins", - "LensModel": "EF24-105mm f/4L IS USM", - "Make": "Canon", - "MeteringMode": 5, - "Model": "Canon EOS 5D Mark IV", - "PixelHeight": 1365, - "PixelWidth": 2048, - "ProfileName": "sRGB IEC61966-2.1", - "SceneCaptureType": 0, - "ShutterSpeed": 0.00625, - "Software": "Adobe Photoshop CC 2014 (Windows)", - "WhiteBalance": 0 + "screen_recording" : false, + "screenshot" : false, + "search_info" : {}, + "search_info_normalized" : {}, + "selfie" : false, + "shared" : null, + "shared_library" : false, + "shared_moment" : false, + "slow_mo" : false, + "syndicated" : null, + "time_lapse" : false, + "title" : "IMG_1997", + "tzname" : "GMT", + "tzoffset" : 0, + "uti" : "public.jpeg", + "uti_edited" : "public.jpeg", + "uti_original" : "com.canon.cr2-raw-image", + "uti_raw" : "com.canon.cr2-raw-image", + "uuid" : "UaL9+WGLTRSpqLbgUoUsIQ", + "visible" : false, + "width" : 3312 + }, + { + "adjustments" : {}, + "album_info" : [], + "albums" : [], + "burst" : false, + "burst_album_info" : [], + "burst_albums" : [], + "burst_default_pick" : false, + "burst_key" : false, + "burst_photos" : [], + "burst_selected" : false, + "cloud_guid" : "", + "cloud_metadata" : {}, + "cloud_owner_hashed_id" : "", + "comments" : [], + "date" : "2020-04-16T10:42:58+00:00", + "date_added" : "2023-09-27T13:43:07.899632+00:00", + "date_modified" : "2023-09-27T13:43:07.902325+00:00", + "date_original" : "2020-04-16T10:42:58+00:00", + "date_trashed" : null, + "description" : "", + "exif_info" : { + "aperture" : 4, + "bit_rate" : 0, + "camera_make" : "Canon", + "camera_model" : "Canon PowerShot G10", + "codec" : "", + "dict" : { + "ApertureValue" : 4, + "CaptureDayOfMonth" : 16, + "CaptureDayOfWeek" : 4, + "CaptureHourOfDay" : 10, + "CaptureMinuteOfHour" : 42, + "CaptureMonthOfYear" : 4, + "CaptureSecondOfMinute" : 58, + "CaptureYear" : 2020, + "ColorModel" : "RGB", + "ColorSpace" : 1, + "Depth" : 8, + "ExifVersion" : "2.2.1", + "ExposureBiasValue" : 0, + "ExposureMode" : 0, + "ExposureProgram" : 2, + "Firmware" : "Firmware Version 1.04", + "Flash" : 16, + "FlashExposureComp" : 0, + "FlashPixVersion" : "1.0", + "FocalLength" : 6.1, + "FocusMode" : 1, + "ISOSpeedRating" : 80, + "ImageDate" : 0, + "ImageDescription" : " ", + "LensMaxMM" : 30.5, + "LensMinMM" : 6.1, + "LensModel" : "6.1-30.5 mm", + "Make" : "Canon", + "MaxApertureValue" : 2.969, + "MeteringMode" : 5, + "Model" : "Canon PowerShot G10", + "PixelHeight" : 3312, + "PixelWidth" : 4416, + "ProfileName" : "sRGB IEC61966-2.1", + "SceneCaptureType" : 0, + "ShutterSpeed" : 0.003125, + "WhiteBalance" : 0, + "WhiteBalanceIndex" : 0 + }, + "duration" : 0, + "exposure_bias" : 0, + "flash_fired" : true, + "focal_length" : 6.1, + "fps" : 0, + "iso" : 80, + "latitude" : 0, + "lens_model" : "6.1-30.5 mm", + "longitude" : 0, + "metering_mode" : 5, + "sample_rate" : 0, + "shutter_speed" : 0.003125, + "software" : "", + "track_format" : 0, + "white_balance" : 0 }, - "duration": 0.0, - "exposure_bias": -0.33299999999999996, - "flash_fired": true, - "focal_length": 84, - "fps": 0.0, - "iso": 100, - "latitude": 0.0, - "lens_model": "EF24-105mm f/4L IS USM", - "longitude": 0.0, - "metering_mode": 5, - "sample_rate": 0, - "shutter_speed": 0.00625, - "software": "Adobe Photoshop CC 2014 (Windows)", - "track_format": 0, - "white_balance": 0 - }, - "external_edit": false, - "face_info": [ - { - "center": [ - 1437, - 588 - ], - "center_x": 0.70166015625, - "center_y": 0.43076923076923074, - "face_rect": [ - [ - 1386, - 536 - ], - [ - 1488, - 639 - ] - ], - "mpri_reg_rect": { - "h": 0.0498046875, - "w": 0.07472527472527472, - "x": 1386, - "y": 536 - }, - "mwg_rs_area": { - "h": 0.07472527472527479, - "w": 0.0498046875, - "x": 0.70166015625, - "y": 0.43076923076923074 - }, - "name": "Katie", - "quality": 0.551, - "size": 0.0498046875 + "external_edit" : false, + "face_info" : [], + "favorite" : false, + "filename" : "IMG_1997.JPG", + "fingerprint" : "AdLY396dV18Hg6gS5YMwXpOdemH7", + "folders" : {}, + "has_raw" : false, + "hasadjustments" : false, + "hdr" : false, + "height" : 4416, + "hidden" : false, + "import_info" : {}, + "incloud" : null, + "intrash" : 0, + "iscloudasset" : false, + "ismissing" : 0, + "ismovie" : false, + "isphoto" : true, + "israw" : false, + "isreference" : 0, + "keywords" : [], + "labels" : [], + "labels_normalized" : [], + "latitude" : 0, + "library" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", + "likes" : [], + "live_photo" : false, + "location" : [ + null, + null + ], + "longitude" : 0, + "orientation" : 6, + "original_filename" : "IMG_1997.JPG", + "original_filesize" : 2991408, + "original_height" : 3312, + "original_orientation" : 0, + "original_width" : 4416, + "owner" : null, + "panorama" : false, + "path" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/IMG_1997.JPG", + "path_derivatives" : [ + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/wOCT+bugTx2I9gKyidlKUg/IMG_1997_1024_2.jpg", + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/wOCT+bugTx2I9gKyidlKUg/IMG_1997_2.jpg" + ], + "path_edited" : "", + "path_edited_live_photo" : null, + "path_live_photo" : null, + "path_raw" : null, + "person_info" : [], + "persons" : [], + "place" : {}, + "portrait" : false, + "project_info" : [], + "rating" : 1, + "raw_original" : false, + "saved_to_library" : null, + "score" : { + "behavioral" : 0, + "curation" : 0, + "failure" : 0, + "harmonious_color" : 0, + "highlight_visibility" : 0, + "immersiveness" : 0, + "interaction" : 0, + "interesting_subject" : 0, + "intrusive_object_presence" : 0, + "lively_color" : 0, + "low_light" : 0, + "noise" : 0, + "overall" : 0, + "pleasant_camera_tilt" : 0, + "pleasant_composition" : 0, + "pleasant_lighting" : 0, + "pleasant_pattern" : 0, + "pleasant_perspective" : 0, + "pleasant_post_processing" : 0, + "pleasant_reflection" : 0, + "pleasant_symmetry" : 0, + "promotion" : 0, + "sharply_focused_subject" : 0, + "tastefully_blurred" : 0, + "well_chosen_subject" : 0, + "well_framed_subject" : 0, + "well_timed_shot" : 0 }, - { - "center": [ - 656, - 452 - ], - "center_x": 0.3203125, - "center_y": 0.3311355311355311, - "face_rect": [ - [ - 593, - 389 - ], - [ - 719, - 515 - ] - ], - "mpri_reg_rect": { - "h": 0.0615234375, - "w": 0.09230769230769231, - "x": 593, - "y": 389 - }, - "mwg_rs_area": { - "h": 0.09230769230769231, - "w": 0.0615234375, - "x": 0.3203125, - "y": 0.3311355311355311 - }, - "name": "Suzy", - "quality": 0.777, - "size": 0.0615234375 - } - ], - "favorite": false, - "filename": "Pumkins1.jpg", - "fingerprint": "ARycFuStufh8X0gElU/TpIzq+IjM", - "folders": { - "Pumpkin Farm": [], - "Test Album": [] - }, - "has_raw": false, - "hasadjustments": false, - "hdr": false, - "height": 1365, - "hidden": false, - "import_info": {}, - "incloud": null, - "intrash": 0, - "iscloudasset": false, - "ismissing": 0, - "ismovie": false, - "isphoto": true, - "israw": false, - "isreference": 0, - "keywords": [ - "Katie", - "Suzy" - ], - "labels": [], - "labels_normalized": [], - "latitude": 0.0, - "library": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", - "likes": [], - "live_photo": false, - "location": [ - null, - null - ], - "longitude": 0.0, - "orientation": 1, - "original_filename": "Pumkins1.jpg", - "original_filesize": 557769, - "original_height": 1365, - "original_orientation": 0, - "original_width": 2048, - "owner": null, - "panorama": false, - "path": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/Pumkins1.jpg", - "path_derivatives": [ - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/7NGbu3h6RkGXxBGa9lfMVQ/Pumkins1.jpg", - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/7NGbu3h6RkGXxBGa9lfMVQ/Pumkins1_1024.jpg", - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/7NGbu3h6RkGXxBGa9lfMVQ/Pumkins1_face0.jpg", - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/7NGbu3h6RkGXxBGa9lfMVQ/Pumkins1_face1.jpg" - ], - "path_edited": "", - "path_edited_live_photo": null, - "path_live_photo": null, - "path_raw": null, - "person_info": [ - { - "displayname": "Katie", - "facecount": 2, - "favorite": false, - "feature_less": false, - "keyface": null, - "keyphoto": null, - "name": "Katie", - "sort_order": 0, - "uuid": "d%YZTuXcTQqnfDWsiRmsTw" + "screen_recording" : false, + "screenshot" : false, + "search_info" : {}, + "search_info_normalized" : {}, + "selfie" : false, + "shared" : null, + "shared_library" : false, + "shared_moment" : false, + "slow_mo" : false, + "syndicated" : null, + "time_lapse" : false, + "title" : "IMG_1997", + "tzname" : "GMT", + "tzoffset" : 0, + "uti" : "public.jpeg", + "uti_edited" : null, + "uti_original" : "public.jpeg", + "uti_raw" : null, + "uuid" : "wOCT+bugTx2I9gKyidlKUg", + "visible" : false, + "width" : 3312 + }, + { + "adjustments" : {}, + "album_info" : [], + "albums" : [], + "burst" : false, + "burst_album_info" : [], + "burst_albums" : [], + "burst_default_pick" : false, + "burst_key" : false, + "burst_photos" : [], + "burst_selected" : false, + "cloud_guid" : "", + "cloud_metadata" : {}, + "cloud_owner_hashed_id" : "", + "comments" : [], + "date" : "2020-09-19T14:36:26+00:00", + "date_added" : "2023-09-27T13:43:07.902533+00:00", + "date_modified" : "2023-07-25T05:05:15.012613+00:00", + "date_original" : "2020-09-19T14:36:26+00:00", + "date_trashed" : null, + "description" : "", + "exif_info" : { + "aperture" : 2.2, + "bit_rate" : 0, + "camera_make" : "Apple", + "camera_model" : "iPhone 6s", + "codec" : "", + "dict" : { + "ApertureValue" : 2.2, + "BrightnessValue" : 9.127, + "CaptureDayOfMonth" : 19, + "CaptureDayOfWeek" : 6, + "CaptureHourOfDay" : 14, + "CaptureMinuteOfHour" : 36, + "CaptureMonthOfYear" : 9, + "CaptureSecondOfMinute" : 26, + "CaptureYear" : 2020, + "ColorModel" : "RGB", + "ColorSpace" : 1, + "Depth" : 8, + "ExifVersion" : "2.3.1", + "ExposureBiasValue" : 0, + "ExposureMode" : 0, + "ExposureProgram" : 2, + "Flash" : 16, + "FlashPixVersion" : "1.0", + "FocalLenIn35mmFilm" : 38, + "FocalLength" : 4.15, + "ISOSpeedRating" : 25, + "ImageDate" : 0, + "LensModel" : "iPhone 6s back camera 4.15mm f/2.2", + "Make" : "Apple", + "MeteringMode" : 5, + "Model" : "iPhone 6s", + "PixelHeight" : 4032, + "PixelWidth" : 3024, + "ProfileName" : "sRGB IEC61966-2.1", + "SceneCaptureType" : 0, + "ShutterSpeed" : 0.0013004, + "Software" : "13.7", + "WhiteBalance" : 0 + }, + "duration" : 0, + "exposure_bias" : 0, + "flash_fired" : true, + "focal_length" : 4.15, + "fps" : 0, + "iso" : 25, + "latitude" : 0, + "lens_model" : "iPhone 6s back camera 4.15mm f/2.2", + "longitude" : 0, + "metering_mode" : 5, + "sample_rate" : 0, + "shutter_speed" : 0.0013004, + "software" : "13.7", + "track_format" : 0, + "white_balance" : 0 }, - { - "displayname": "Suzy", - "facecount": 1, - "favorite": false, - "feature_less": false, - "keyface": null, - "keyphoto": null, - "name": "Suzy", - "sort_order": 0, - "uuid": "Elle1Gc1RpCfTTDamY8ZGA" - } - ], - "persons": [ - "Katie", - "Suzy" - ], - "place": {}, - "portrait": false, - "project_info": [], - "rating": 0, - "raw_original": false, - "saved_to_library": null, - "score": { - "behavioral": 0.0, - "curation": 0.0, - "failure": 0.0, - "harmonious_color": 0.0, - "highlight_visibility": 0.0, - "immersiveness": 0.0, - "interaction": 0.0, - "interesting_subject": 0.0, - "intrusive_object_presence": 0.0, - "lively_color": 0.0, - "low_light": 0.0, - "noise": 0.0, - "overall": 0.0, - "pleasant_camera_tilt": 0.0, - "pleasant_composition": 0.0, - "pleasant_lighting": 0.0, - "pleasant_pattern": 0.0, - "pleasant_perspective": 0.0, - "pleasant_post_processing": 0.0, - "pleasant_reflection": 0.0, - "pleasant_symmetry": 0.0, - "promotion": 0.0, - "sharply_focused_subject": 0.0, - "tastefully_blurred": 0.0, - "well_chosen_subject": 0.0, - "well_framed_subject": 0.0, - "well_timed_shot": 0.0 - }, - "screen_recording": false, - "screenshot": false, - "search_info": {}, - "search_info_normalized": {}, - "selfie": false, - "shared": null, - "shared_library": false, - "shared_moment": false, - "slow_mo": false, - "syndicated": null, - "time_lapse": false, - "title": "Can we carry this?", - "tzoffset": 0, - "uti": "public.jpeg", - "uti_edited": null, - "uti_original": "public.jpeg", - "uti_raw": null, - "uuid": "7NGbu3h6RkGXxBGa9lfMVQ", - "visible": false, - "width": 2048 - }, - { - "adjustments": {}, - "album_info": [ - { - "folder_list": [], - "folder_names": [], - "parent": null, - "sort_order": 0, - "title": "Pumpkin Farm", - "uuid": "pDZqrEDNTc2Rt9Q1hdvStQ" - } - ], - "albums": [ - "Pumpkin Farm" - ], - "burst": false, - "burst_album_info": [ - { - "folder_list": [], - "folder_names": [], - "parent": null, - "sort_order": 0, - "title": "Pumpkin Farm", - "uuid": "pDZqrEDNTc2Rt9Q1hdvStQ" - } - ], - "burst_albums": [ - "Pumpkin Farm" - ], - "burst_default_pick": false, - "burst_key": false, - "burst_photos": [], - "burst_selected": false, - "cloud_guid": "", - "cloud_metadata": {}, - "cloud_owner_hashed_id": "", - "comments": [], - "date": "2018-09-28T16:07:07+00:00", - "date_added": "2023-09-27T13:43:07.915819+00:00", - "date_modified": "2023-07-25T05:05:15.024885+00:00", - "date_trashed": null, - "description": "Girl holding pumpkin", - "exif_info": { - "aperture": 6.3, - "bit_rate": 0.0, - "camera_make": "Canon", - "camera_model": "Canon EOS 5D Mark IV", - "codec": "", - "dict": { - "ApertureValue": 6.3, - "Artist": "Alexander Moore", - "CaptureDayOfMonth": 28, - "CaptureDayOfWeek": 5, - "CaptureHourOfDay": 16, - "CaptureMinuteOfHour": 7, - "CaptureMonthOfYear": 9, - "CaptureSecondOfMinute": 7, - "CaptureYear": 2018, - "ColorModel": "RGB", - "ColorSpace": 65535, - "Copyright": "YTC Ltd", - "Depth": 8, - "ExifVersion": "2.3.1", - "ExposureMode": 0, - "ExposureProgram": 4, - "Flash": 16, - "FlashPixVersion": "1.0", - "FocalLength": 45, - "ISOSpeedRating": 100, - "ImageDate": 0, - "ImageDescription": "Girl holding pumpkin", - "LensModel": "EF24-105mm f/4L IS USM", - "Make": "Canon", - "MeteringMode": 5, - "Model": "Canon EOS 5D Mark IV", - "PixelHeight": 2048, - "PixelWidth": 1365, - "ProfileName": "sRGB IEC61966-2.1", - "SceneCaptureType": 0, - "ShutterSpeed": 0.00625, - "Software": "Adobe Photoshop CC 2014 (Windows)", - "WhiteBalance": 0 + "external_edit" : false, + "face_info" : [], + "favorite" : false, + "filename" : "IMG_3092.heic", + "fingerprint" : "AbQ65MLrRyNJwYcHGqMr6cycEWug", + "folders" : {}, + "has_raw" : false, + "hasadjustments" : false, + "hdr" : false, + "height" : 4032, + "hidden" : false, + "import_info" : {}, + "incloud" : null, + "intrash" : 0, + "iscloudasset" : false, + "ismissing" : 0, + "ismovie" : false, + "isphoto" : true, + "israw" : false, + "isreference" : 0, + "keywords" : [], + "labels" : [], + "labels_normalized" : [], + "latitude" : 0, + "library" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", + "likes" : [], + "live_photo" : false, + "location" : [ + null, + null + ], + "longitude" : 0, + "orientation" : 1, + "original_filename" : "IMG_3092.heic", + "original_filesize" : 1877314, + "original_height" : 4032, + "original_orientation" : 0, + "original_width" : 3024, + "owner" : null, + "panorama" : false, + "path" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/IMG_3092.heic", + "path_derivatives" : [ + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/WvY%8CN+RLaDKrD0GQCRoQ/IMG_3092.jpg", + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/WvY%8CN+RLaDKrD0GQCRoQ/IMG_3092_1024.jpg" + ], + "path_edited" : "", + "path_edited_live_photo" : null, + "path_live_photo" : null, + "path_raw" : null, + "person_info" : [], + "persons" : [], + "place" : {}, + "portrait" : false, + "project_info" : [], + "rating" : 0, + "raw_original" : false, + "saved_to_library" : null, + "score" : { + "behavioral" : 0, + "curation" : 0, + "failure" : 0, + "harmonious_color" : 0, + "highlight_visibility" : 0, + "immersiveness" : 0, + "interaction" : 0, + "interesting_subject" : 0, + "intrusive_object_presence" : 0, + "lively_color" : 0, + "low_light" : 0, + "noise" : 0, + "overall" : 0, + "pleasant_camera_tilt" : 0, + "pleasant_composition" : 0, + "pleasant_lighting" : 0, + "pleasant_pattern" : 0, + "pleasant_perspective" : 0, + "pleasant_post_processing" : 0, + "pleasant_reflection" : 0, + "pleasant_symmetry" : 0, + "promotion" : 0, + "sharply_focused_subject" : 0, + "tastefully_blurred" : 0, + "well_chosen_subject" : 0, + "well_framed_subject" : 0, + "well_timed_shot" : 0 }, - "duration": 0.0, - "exposure_bias": 0.0, - "flash_fired": true, - "focal_length": 45, - "fps": 0.0, - "iso": 100, - "latitude": 0.0, - "lens_model": "EF24-105mm f/4L IS USM", - "longitude": 0.0, - "metering_mode": 5, - "sample_rate": 0, - "shutter_speed": 0.00625, - "software": "Adobe Photoshop CC 2014 (Windows)", - "track_format": 0, - "white_balance": 0 - }, - "external_edit": false, - "face_info": [ - { - "center": [ - 824, - 529 - ], - "center_x": 0.6040293040293041, - "center_y": 0.25830078125, - "face_rect": [ - [ - 638, - 343 - ], - [ - 1010, - 715 - ] - ], - "mpri_reg_rect": { - "h": 0.27252747252747256, - "w": 0.18164062500000003, - "x": 638, - "y": 343 - }, - "mwg_rs_area": { - "h": 0.181640625, - "w": 0.27252747252747256, - "x": 0.6040293040293041, - "y": 0.25830078125 - }, - "name": "Katie", - "quality": 0, - "size": 0.27252747252747256 - } - ], - "favorite": false, - "filename": "Pumkins2.jpg", - "fingerprint": "AfI6TRt/oe/cPE1tmyo/P/OudGvQ", - "folders": { - "Pumpkin Farm": [] - }, - "has_raw": false, - "hasadjustments": false, - "hdr": false, - "height": 2048, - "hidden": false, - "import_info": {}, - "incloud": null, - "intrash": 0, - "iscloudasset": false, - "ismissing": 0, - "ismovie": false, - "isphoto": true, - "israw": false, - "isreference": 0, - "keywords": [ - "Katie" - ], - "labels": [], - "labels_normalized": [], - "latitude": 0.0, - "library": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", - "likes": [], - "live_photo": false, - "location": [ - null, - null - ], - "longitude": 0.0, - "orientation": 1, - "original_filename": "Pumkins2.jpg", - "original_filesize": 544761, - "original_height": 2048, - "original_orientation": 0, - "original_width": 1365, - "owner": null, - "panorama": false, - "path": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/Pumkins2.jpg", - "path_derivatives": [ - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/L0ddFwSDTmGwDZBWpnLF4A/Pumkins2.jpg", - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/L0ddFwSDTmGwDZBWpnLF4A/Pumkins2_1024.jpg", - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/L0ddFwSDTmGwDZBWpnLF4A/Pumkins2_face0.jpg" - ], - "path_edited": "", - "path_edited_live_photo": null, - "path_live_photo": null, - "path_raw": null, - "person_info": [ - { - "displayname": "Katie", - "facecount": 2, - "favorite": false, - "feature_less": false, - "keyface": null, - "keyphoto": null, - "name": "Katie", - "sort_order": 0, - "uuid": "d%YZTuXcTQqnfDWsiRmsTw" - } - ], - "persons": [ - "Katie" - ], - "place": {}, - "portrait": false, - "project_info": [], - "rating": 4, - "raw_original": false, - "saved_to_library": null, - "score": { - "behavioral": 0.0, - "curation": 0.0, - "failure": 0.0, - "harmonious_color": 0.0, - "highlight_visibility": 0.0, - "immersiveness": 0.0, - "interaction": 0.0, - "interesting_subject": 0.0, - "intrusive_object_presence": 0.0, - "lively_color": 0.0, - "low_light": 0.0, - "noise": 0.0, - "overall": 0.0, - "pleasant_camera_tilt": 0.0, - "pleasant_composition": 0.0, - "pleasant_lighting": 0.0, - "pleasant_pattern": 0.0, - "pleasant_perspective": 0.0, - "pleasant_post_processing": 0.0, - "pleasant_reflection": 0.0, - "pleasant_symmetry": 0.0, - "promotion": 0.0, - "sharply_focused_subject": 0.0, - "tastefully_blurred": 0.0, - "well_chosen_subject": 0.0, - "well_framed_subject": 0.0, - "well_timed_shot": 0.0 - }, - "screen_recording": false, - "screenshot": false, - "search_info": {}, - "search_info_normalized": {}, - "selfie": false, - "shared": null, - "shared_library": false, - "shared_moment": false, - "slow_mo": false, - "syndicated": null, - "time_lapse": false, - "title": "I found one!", - "tzoffset": 0, - "uti": "public.jpeg", - "uti_edited": null, - "uti_original": "public.jpeg", - "uti_raw": null, - "uuid": "L0ddFwSDTmGwDZBWpnLF4A", - "visible": false, - "width": 1365 - }, - { - "adjustments": {}, - "album_info": [ - { - "folder_list": [], - "folder_names": [], - "parent": null, - "sort_order": 0, - "title": "Pumpkin Farm", - "uuid": "pDZqrEDNTc2Rt9Q1hdvStQ" - } - ], - "albums": [ - "Pumpkin Farm" - ], - "burst": false, - "burst_album_info": [ - { - "folder_list": [], - "folder_names": [], - "parent": null, - "sort_order": 0, - "title": "Pumpkin Farm", - "uuid": "pDZqrEDNTc2Rt9Q1hdvStQ" - } - ], - "burst_albums": [ - "Pumpkin Farm" - ], - "burst_default_pick": false, - "burst_key": false, - "burst_photos": [], - "burst_selected": false, - "cloud_guid": "", - "cloud_metadata": {}, - "cloud_owner_hashed_id": "", - "comments": [], - "date": "2018-09-28T16:09:33+00:00", - "date_added": "2023-09-27T13:43:07.919802+00:00", - "date_modified": "2023-07-25T05:05:15.025223+00:00", - "date_trashed": null, - "description": "Kids in pumpkin field", - "exif_info": { - "aperture": 4, - "bit_rate": 0.0, - "camera_make": "Canon", - "camera_model": "Canon EOS 5D Mark IV", - "codec": "", - "dict": { - "ApertureValue": 4, - "Artist": "Alexander Moore", - "CaptureDayOfMonth": 28, - "CaptureDayOfWeek": 5, - "CaptureHourOfDay": 16, - "CaptureMinuteOfHour": 9, - "CaptureMonthOfYear": 9, - "CaptureSecondOfMinute": 33, - "CaptureYear": 2018, - "ColorModel": "RGB", - "ColorSpace": 65535, - "Copyright": "YTC Ltd", - "Depth": 8, - "ExifVersion": "2.3.1", - "ExposureMode": 0, - "ExposureProgram": 4, - "Flash": 16, - "FlashPixVersion": "1.0", - "FocalLength": 65, - "ISOSpeedRating": 100, - "ImageDate": 0, - "ImageDescription": "Kids in pumpkin field", - "LensModel": "EF24-105mm f/4L IS USM", - "Make": "Canon", - "MeteringMode": 5, - "Model": "Canon EOS 5D Mark IV", - "PixelHeight": 2048, - "PixelWidth": 1365, - "ProfileName": "sRGB IEC61966-2.1", - "SceneCaptureType": 0, - "ShutterSpeed": 0.005, - "Software": "Adobe Photoshop CC 2014 (Windows)", - "WhiteBalance": 0 + "screen_recording" : false, + "screenshot" : false, + "search_info" : {}, + "search_info_normalized" : {}, + "selfie" : false, + "shared" : null, + "shared_library" : false, + "shared_moment" : false, + "slow_mo" : false, + "syndicated" : null, + "time_lapse" : false, + "title" : "IMG_3092", + "tzname" : "GMT", + "tzoffset" : 0, + "uti" : "public.heic", + "uti_edited" : null, + "uti_original" : "public.heic", + "uti_raw" : null, + "uuid" : "WvY%8CN+RLaDKrD0GQCRoQ", + "visible" : false, + "width" : 3024 + }, + { + "adjustments" : {}, + "album_info" : [ + { + "folder_list" : [], + "folder_names" : [], + "parent" : null, + "sort_order" : 0, + "title" : "Pumpkin Farm", + "uuid" : "pDZqrEDNTc2Rt9Q1hdvStQ" + }, + { + "folder_list" : [], + "folder_names" : [], + "parent" : null, + "sort_order" : 0, + "title" : "Test Album", + "uuid" : "Tn%h%CuhQruD8VQ5zVgy8g" + } + ], + "albums" : [ + "Pumpkin Farm", + "Test Album" + ], + "burst" : false, + "burst_album_info" : [ + { + "folder_list" : [], + "folder_names" : [], + "parent" : null, + "sort_order" : 0, + "title" : "Pumpkin Farm", + "uuid" : "pDZqrEDNTc2Rt9Q1hdvStQ" + }, + { + "folder_list" : [], + "folder_names" : [], + "parent" : null, + "sort_order" : 0, + "title" : "Test Album", + "uuid" : "Tn%h%CuhQruD8VQ5zVgy8g" + } + ], + "burst_albums" : [ + "Pumpkin Farm", + "Test Album" + ], + "burst_default_pick" : false, + "burst_key" : false, + "burst_photos" : [], + "burst_selected" : false, + "cloud_guid" : "", + "cloud_metadata" : {}, + "cloud_owner_hashed_id" : "", + "comments" : [], + "date" : "2018-09-28T15:35:49+00:00", + "date_added" : "2023-09-27T13:43:07.906087+00:00", + "date_modified" : "2023-07-25T05:05:15.024575+00:00", + "date_original" : "2018-09-28T15:35:49+00:00", + "date_trashed" : null, + "description" : "Girls with pumpkins", + "exif_info" : { + "aperture" : 5, + "bit_rate" : 0, + "camera_make" : "Canon", + "camera_model" : "Canon EOS 5D Mark IV", + "codec" : "", + "dict" : { + "ApertureValue" : 5, + "Artist" : "Alexander Moore", + "CaptureDayOfMonth" : 28, + "CaptureDayOfWeek" : 5, + "CaptureHourOfDay" : 15, + "CaptureMinuteOfHour" : 35, + "CaptureMonthOfYear" : 9, + "CaptureSecondOfMinute" : 49, + "CaptureYear" : 2018, + "ColorModel" : "RGB", + "ColorSpace" : 65535, + "Copyright" : "YTC Ltd", + "Depth" : 8, + "ExifVersion" : "2.3.1", + "ExposureBiasValue" : -0.333, + "ExposureMode" : 0, + "ExposureProgram" : 4, + "Flash" : 16, + "FlashPixVersion" : "1.0", + "FocalLength" : 84, + "ISOSpeedRating" : 100, + "ImageDate" : 0, + "ImageDescription" : "Girls with pumpkins", + "LensModel" : "EF24-105mm f/4L IS USM", + "Make" : "Canon", + "MeteringMode" : 5, + "Model" : "Canon EOS 5D Mark IV", + "PixelHeight" : 1365, + "PixelWidth" : 2048, + "ProfileName" : "sRGB IEC61966-2.1", + "SceneCaptureType" : 0, + "ShutterSpeed" : 0.00625, + "Software" : "Adobe Photoshop CC 2014 (Windows)", + "WhiteBalance" : 0 + }, + "duration" : 0, + "exposure_bias" : -0.333, + "flash_fired" : true, + "focal_length" : 84, + "fps" : 0, + "iso" : 100, + "latitude" : 0, + "lens_model" : "EF24-105mm f/4L IS USM", + "longitude" : 0, + "metering_mode" : 5, + "sample_rate" : 0, + "shutter_speed" : 0.00625, + "software" : "Adobe Photoshop CC 2014 (Windows)", + "track_format" : 0, + "white_balance" : 0 }, - "duration": 0.0, - "exposure_bias": 0.0, - "flash_fired": true, - "focal_length": 65, - "fps": 0.0, - "iso": 100, - "latitude": 0.0, - "lens_model": "EF24-105mm f/4L IS USM", - "longitude": 0.0, - "metering_mode": 5, - "sample_rate": 0, - "shutter_speed": 0.005, - "software": "Adobe Photoshop CC 2014 (Windows)", - "track_format": 0, - "white_balance": 0 - }, - "external_edit": false, - "face_info": [], - "favorite": false, - "filename": "Pumpkins3.jpg", - "fingerprint": "AboErdmtX3P6n9mTRoOaciWELmae", - "folders": { - "Pumpkin Farm": [] - }, - "has_raw": false, - "hasadjustments": false, - "hdr": false, - "height": 2048, - "hidden": false, - "import_info": {}, - "incloud": null, - "intrash": 0, - "iscloudasset": false, - "ismissing": 0, - "ismovie": false, - "isphoto": true, - "israw": false, - "isreference": 0, - "keywords": [ - "Katie", - "Suzy" - ], - "labels": [], - "labels_normalized": [], - "latitude": 0.0, - "library": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", - "likes": [], - "live_photo": false, - "location": [ - null, - null - ], - "longitude": 0.0, - "orientation": 1, - "original_filename": "Pumpkins3.jpg", - "original_filesize": 591671, - "original_height": 2048, - "original_orientation": 0, - "original_width": 1365, - "owner": null, - "panorama": false, - "path": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/Pumpkins3.jpg", - "path_derivatives": [ - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/TeSYQT5HRJ6R6uGZRm+VOQ/Pumpkins3.jpg", - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/TeSYQT5HRJ6R6uGZRm+VOQ/Pumpkins3_1024.jpg" - ], - "path_edited": "", - "path_edited_live_photo": null, - "path_live_photo": null, - "path_raw": null, - "person_info": [], - "persons": [], - "place": {}, - "portrait": false, - "project_info": [], - "rating": 0, - "raw_original": false, - "saved_to_library": null, - "score": { - "behavioral": 0.0, - "curation": 0.0, - "failure": 0.0, - "harmonious_color": 0.0, - "highlight_visibility": 0.0, - "immersiveness": 0.0, - "interaction": 0.0, - "interesting_subject": 0.0, - "intrusive_object_presence": 0.0, - "lively_color": 0.0, - "low_light": 0.0, - "noise": 0.0, - "overall": 0.0, - "pleasant_camera_tilt": 0.0, - "pleasant_composition": 0.0, - "pleasant_lighting": 0.0, - "pleasant_pattern": 0.0, - "pleasant_perspective": 0.0, - "pleasant_post_processing": 0.0, - "pleasant_reflection": 0.0, - "pleasant_symmetry": 0.0, - "promotion": 0.0, - "sharply_focused_subject": 0.0, - "tastefully_blurred": 0.0, - "well_chosen_subject": 0.0, - "well_framed_subject": 0.0, - "well_timed_shot": 0.0 - }, - "screen_recording": false, - "screenshot": false, - "search_info": {}, - "search_info_normalized": {}, - "selfie": false, - "shared": null, - "shared_library": false, - "shared_moment": false, - "slow_mo": false, - "syndicated": null, - "time_lapse": false, - "title": "Pumpkins3", - "tzoffset": 0, - "uti": "public.jpeg", - "uti_edited": null, - "uti_original": "public.jpeg", - "uti_raw": null, - "uuid": "TeSYQT5HRJ6R6uGZRm+VOQ", - "visible": false, - "width": 1365 - }, - { - "adjustments": {}, - "album_info": [], - "albums": [], - "burst": false, - "burst_album_info": [], - "burst_albums": [], - "burst_default_pick": false, - "burst_key": false, - "burst_photos": [], - "burst_selected": false, - "cloud_guid": "", - "cloud_metadata": {}, - "cloud_owner_hashed_id": "", - "comments": [], - "date": "2018-10-13T09:18:12+00:00", - "date_added": "2023-09-27T13:43:07.927110+00:00", - "date_modified": "2023-09-27T13:46:03.293684+00:00", - "date_trashed": null, - "description": "", - "exif_info": { - "aperture": 4, - "bit_rate": 0.0, - "camera_make": "NIKON CORPORATION", - "camera_model": "NIKON D7000", - "codec": "", - "dict": { - "Altitude": 2.6, - "ApertureValue": 4, - "Artist": "Jeff Hitchcock", - "CaptureDayOfMonth": 13, - "CaptureDayOfWeek": 6, - "CaptureHourOfDay": 9, - "CaptureMinuteOfHour": 18, - "CaptureMonthOfYear": 10, - "CaptureSecondOfMinute": 12, - "CaptureYear": 2018, - "ColorModel": "RGB", - "ColorSpace": 65535, - "Contrast": 0, - "Copyright": "Copyright 2018 Jeff Hitchcock, Some Rights Reserved", - "Depth": 8, - "ExifVersion": "2.3.1", - "ExposureBiasValue": -1.6669999999999998, - "ExposureMode": 1, - "ExposureProgram": 1, - "Flash": 16, - "FlashPixVersion": "1.0", - "FocalLength": 22, - "GPSVersion": "2.3.0.0", - "ISOSpeedRating": 200, - "ImageDate": 0, - "Latitude": 51.50357167, - "LensModel": "12.0-24.0 mm f/4.0", - "LightSource": 0, - "Longitude": -0.1318055, - "Make": "NIKON CORPORATION", - "MeteringMode": 5, - "Model": "NIKON D7000", - "PixelHeight": 1356, - "PixelWidth": 2047, - "ProfileName": "sRGB IEC61966-2.1", - "Saturation": 0, - "SceneCaptureType": 0, - "Sharpness": 0, - "ShutterSpeed": 0.0005, - "Software": "Adobe Photoshop Lightroom Classic 8.1 (Macintosh)", - "WhiteBalance": 0 + "external_edit" : false, + "face_info" : [ + { + "center" : [ + 1437, + 588 + ], + "center_x" : 0.70166015625, + "center_y" : 0.430769230769231, + "face_rect" : [ + [ + 1386, + 536 + ], + [ + 1488, + 639 + ] + ], + "mpri_reg_rect" : { + "h" : 0.0498046875, + "w" : 0.0747252747252747, + "x" : 1386, + "y" : 536 + }, + "mwg_rs_area" : { + "h" : 0.0747252747252748, + "w" : 0.0498046875, + "x" : 0.70166015625, + "y" : 0.430769230769231 + }, + "name" : "Katie", + "quality" : 0.551, + "size" : 0.0498046875 + }, + { + "center" : [ + 656, + 452 + ], + "center_x" : 0.3203125, + "center_y" : 0.331135531135531, + "face_rect" : [ + [ + 593, + 389 + ], + [ + 719, + 515 + ] + ], + "mpri_reg_rect" : { + "h" : 0.0615234375, + "w" : 0.0923076923076923, + "x" : 593, + "y" : 389 + }, + "mwg_rs_area" : { + "h" : 0.0923076923076923, + "w" : 0.0615234375, + "x" : 0.3203125, + "y" : 0.331135531135531 + }, + "name" : "Suzy", + "quality" : 0.777, + "size" : 0.0615234375 + } + ], + "favorite" : false, + "filename" : "Pumkins1.jpg", + "fingerprint" : "ARycFuStufh8X0gElU/TpIzq+IjM", + "folders" : { + "Pumpkin Farm" : [], + "Test Album" : [] }, - "duration": 0.0, - "exposure_bias": -1.6669999999999998, - "flash_fired": true, - "focal_length": 22, - "fps": 0.0, - "iso": 200, - "latitude": 51.50357167, - "lens_model": "12.0-24.0 mm f/4.0", - "longitude": -0.1318055, - "metering_mode": 5, - "sample_rate": 0, - "shutter_speed": 0.0005, - "software": "Adobe Photoshop Lightroom Classic 8.1 (Macintosh)", - "track_format": 0, - "white_balance": 0 - }, - "external_edit": false, - "face_info": [], - "favorite": false, - "filename": "St James Park.jpg", - "fingerprint": "AWndU36/Yw91sWvr89QbnUFH7BDp", - "folders": {}, - "has_raw": false, - "hasadjustments": true, - "hdr": false, - "height": 1356, - "hidden": false, - "import_info": {}, - "incloud": null, - "intrash": 0, - "iscloudasset": false, - "ismissing": 0, - "ismovie": false, - "isphoto": true, - "israw": false, - "isreference": 0, - "keywords": [ - "England", - "London", - "London 2018", - "St. James's Park", - "UK", - "United Kingdom" - ], - "labels": [], - "labels_normalized": [], - "latitude": 0.0, - "library": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", - "likes": [], - "live_photo": false, - "location": [ - 51.50357167, - -0.1318055 - ], - "longitude": 0.0, - "orientation": 1, - "original_filename": "St James Park.jpg", - "original_filesize": 1266130, - "original_height": 1356, - "original_orientation": 0, - "original_width": 2047, - "owner": null, - "panorama": false, - "path": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/St James Park.jpg", - "path_derivatives": [ - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/QtE4HvHhSnO2W8bmbzWRSg/St James Park.jpg", - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/QtE4HvHhSnO2W8bmbzWRSg/St James Park_1024.jpg" - ], - "path_edited": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Previews/2023/09/27/20230927-064307/QtE4HvHhSnO2W8bmbzWRSg/St. James's Park.jpg", - "path_edited_live_photo": null, - "path_live_photo": null, - "path_raw": null, - "person_info": [], - "persons": [], - "place": {}, - "portrait": false, - "project_info": [], - "rating": 0, - "raw_original": false, - "saved_to_library": null, - "score": { - "behavioral": 0.0, - "curation": 0.0, - "failure": 0.0, - "harmonious_color": 0.0, - "highlight_visibility": 0.0, - "immersiveness": 0.0, - "interaction": 0.0, - "interesting_subject": 0.0, - "intrusive_object_presence": 0.0, - "lively_color": 0.0, - "low_light": 0.0, - "noise": 0.0, - "overall": 0.0, - "pleasant_camera_tilt": 0.0, - "pleasant_composition": 0.0, - "pleasant_lighting": 0.0, - "pleasant_pattern": 0.0, - "pleasant_perspective": 0.0, - "pleasant_post_processing": 0.0, - "pleasant_reflection": 0.0, - "pleasant_symmetry": 0.0, - "promotion": 0.0, - "sharply_focused_subject": 0.0, - "tastefully_blurred": 0.0, - "well_chosen_subject": 0.0, - "well_framed_subject": 0.0, - "well_timed_shot": 0.0 - }, - "screen_recording": false, - "screenshot": false, - "search_info": {}, - "search_info_normalized": {}, - "selfie": false, - "shared": null, - "shared_library": false, - "shared_moment": false, - "slow_mo": false, - "syndicated": null, - "time_lapse": false, - "title": "St. James's Park", - "tzoffset": 0, - "uti": "public.jpeg", - "uti_edited": "public.jpeg", - "uti_original": "public.jpeg", - "uti_raw": null, - "uuid": "QtE4HvHhSnO2W8bmbzWRSg", - "visible": false, - "width": 2047 - }, - { - "adjustments": {}, - "album_info": [], - "albums": [], - "burst": false, - "burst_album_info": [], - "burst_albums": [], - "burst_default_pick": false, - "burst_key": false, - "burst_photos": [], - "burst_selected": false, - "cloud_guid": "", - "cloud_metadata": {}, - "cloud_owner_hashed_id": "", - "comments": [], - "date": "2019-07-04T16:24:01+00:00", - "date_added": "2023-09-27T13:43:07.933525+00:00", - "date_modified": "2024-02-25T01:02:18.085828+00:00", - "date_trashed": null, - "description": "Wedding tulips", - "exif_info": { - "aperture": 3.6, - "bit_rate": 0.0, - "camera_make": "FUJIFILM", - "camera_model": "X-T1", - "codec": "", - "dict": { - "ApertureValue": 3.6, - "CaptureDayOfMonth": 4, - "CaptureDayOfWeek": 4, - "CaptureHourOfDay": 16, - "CaptureMinuteOfHour": 24, - "CaptureMonthOfYear": 7, - "CaptureSecondOfMinute": 1, - "CaptureYear": 2019, - "ColorModel": "RGB", - "ColorSpace": 65535, - "Depth": 8, - "ExifVersion": "2.3.1", - "ExposureMode": 1, - "ExposureProgram": 1, - "Flash": 0, - "FlashPixVersion": "1.0", - "FocalLength": 20.5, - "ISOSpeedRating": 400, - "ImageDate": 0, - "ImageDescription": "Wedding tulips", - "LensModel": "XF18-55mmF2.8-4 R LM OIS", - "LightSource": 0, - "Make": "FUJIFILM", - "MeteringMode": 3, - "Model": "X-T1", - "PixelHeight": 1365, - "PixelWidth": 2047, - "ProfileName": "sRGB IEC61966-2.1", - "SceneCaptureType": 0, - "Sharpness": 2, - "ShutterSpeed": 0.01666667, - "Software": "Adobe Photoshop Lightroom Classic 8.2 (Macintosh)", - "WhiteBalance": 0 + "has_raw" : false, + "hasadjustments" : false, + "hdr" : false, + "height" : 1365, + "hidden" : false, + "import_info" : {}, + "incloud" : null, + "intrash" : 0, + "iscloudasset" : false, + "ismissing" : 0, + "ismovie" : false, + "isphoto" : true, + "israw" : false, + "isreference" : 0, + "keywords" : [ + "Katie", + "Suzy" + ], + "labels" : [], + "labels_normalized" : [], + "latitude" : 0, + "library" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", + "likes" : [], + "live_photo" : false, + "location" : [ + null, + null + ], + "longitude" : 0, + "orientation" : 1, + "original_filename" : "Pumkins1.jpg", + "original_filesize" : 557769, + "original_height" : 1365, + "original_orientation" : 0, + "original_width" : 2048, + "owner" : null, + "panorama" : false, + "path" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/Pumkins1.jpg", + "path_derivatives" : [ + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/7NGbu3h6RkGXxBGa9lfMVQ/Pumkins1.jpg", + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/7NGbu3h6RkGXxBGa9lfMVQ/Pumkins1_1024.jpg", + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/7NGbu3h6RkGXxBGa9lfMVQ/Pumkins1_face0.jpg", + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/7NGbu3h6RkGXxBGa9lfMVQ/Pumkins1_face1.jpg" + ], + "path_edited" : "", + "path_edited_live_photo" : null, + "path_live_photo" : null, + "path_raw" : null, + "person_info" : [ + { + "displayname" : "Katie", + "facecount" : 2, + "favorite" : false, + "feature_less" : false, + "keyface" : null, + "keyphoto" : null, + "name" : "Katie", + "sort_order" : 0, + "uuid" : "d%YZTuXcTQqnfDWsiRmsTw" + }, + { + "displayname" : "Suzy", + "facecount" : 1, + "favorite" : false, + "feature_less" : false, + "keyface" : null, + "keyphoto" : null, + "name" : "Suzy", + "sort_order" : 0, + "uuid" : "Elle1Gc1RpCfTTDamY8ZGA" + } + ], + "persons" : [ + "Katie", + "Suzy" + ], + "place" : {}, + "portrait" : false, + "project_info" : [], + "rating" : 0, + "raw_original" : false, + "saved_to_library" : null, + "score" : { + "behavioral" : 0, + "curation" : 0, + "failure" : 0, + "harmonious_color" : 0, + "highlight_visibility" : 0, + "immersiveness" : 0, + "interaction" : 0, + "interesting_subject" : 0, + "intrusive_object_presence" : 0, + "lively_color" : 0, + "low_light" : 0, + "noise" : 0, + "overall" : 0, + "pleasant_camera_tilt" : 0, + "pleasant_composition" : 0, + "pleasant_lighting" : 0, + "pleasant_pattern" : 0, + "pleasant_perspective" : 0, + "pleasant_post_processing" : 0, + "pleasant_reflection" : 0, + "pleasant_symmetry" : 0, + "promotion" : 0, + "sharply_focused_subject" : 0, + "tastefully_blurred" : 0, + "well_chosen_subject" : 0, + "well_framed_subject" : 0, + "well_timed_shot" : 0 }, - "duration": 0.0, - "exposure_bias": 0.0, - "flash_fired": false, - "focal_length": 20.5, - "fps": 0.0, - "iso": 400, - "latitude": 0.0, - "lens_model": "XF18-55mmF2.8-4 R LM OIS", - "longitude": 0.0, - "metering_mode": 3, - "sample_rate": 0, - "shutter_speed": 0.01666667, - "software": "Adobe Photoshop Lightroom Classic 8.2 (Macintosh)", - "track_format": 0, - "white_balance": 0 - }, - "external_edit": false, - "face_info": [], - "favorite": false, - "filename": "Tulips.jpg", - "fingerprint": "AeP9PDNMP3/jWnc1cCMYBTsSSn2O", - "folders": {}, - "has_raw": false, - "hasadjustments": false, - "hdr": false, - "height": 2047, - "hidden": false, - "import_info": {}, - "incloud": null, - "intrash": 0, - "iscloudasset": false, - "ismissing": 0, - "ismovie": false, - "isphoto": true, - "israw": false, - "isreference": 0, - "keywords": [ - "Digital Nomad", - "Indoor", - "Reiseblogger", - "Stock Photography", - "Top Shot", - "close up", - "colorful", - "design", - "display", - "fake", - "flower", - "flowers", - "outdoor", - "photography", - "plastic", - "stock photo", - "vibrant", - "wedding" - ], - "labels": [], - "labels_normalized": [], - "latitude": 0.0, - "library": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", - "likes": [], - "live_photo": false, - "location": [ - null, - null - ], - "longitude": 0.0, - "orientation": 8, - "original_filename": "Tulips.jpg", - "original_filesize": 516378, - "original_height": 1365, - "original_orientation": 0, - "original_width": 2047, - "owner": null, - "panorama": false, - "path": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/Tulips.jpg", - "path_derivatives": [ - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/E5FQ%pg4SRyKPi4dk6rUrg/Tulips.jpg", - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/E5FQ%pg4SRyKPi4dk6rUrg/Tulips_1024.jpg" - ], - "path_edited": "", - "path_edited_live_photo": null, - "path_live_photo": null, - "path_raw": null, - "person_info": [], - "persons": [], - "place": {}, - "portrait": false, - "project_info": [], - "rating": 0, - "raw_original": false, - "saved_to_library": null, - "score": { - "behavioral": 0.0, - "curation": 0.0, - "failure": 0.0, - "harmonious_color": 0.0, - "highlight_visibility": 0.0, - "immersiveness": 0.0, - "interaction": 0.0, - "interesting_subject": 0.0, - "intrusive_object_presence": 0.0, - "lively_color": 0.0, - "low_light": 0.0, - "noise": 0.0, - "overall": 0.0, - "pleasant_camera_tilt": 0.0, - "pleasant_composition": 0.0, - "pleasant_lighting": 0.0, - "pleasant_pattern": 0.0, - "pleasant_perspective": 0.0, - "pleasant_post_processing": 0.0, - "pleasant_reflection": 0.0, - "pleasant_symmetry": 0.0, - "promotion": 0.0, - "sharply_focused_subject": 0.0, - "tastefully_blurred": 0.0, - "well_chosen_subject": 0.0, - "well_framed_subject": 0.0, - "well_timed_shot": 0.0 - }, - "screen_recording": false, - "screenshot": false, - "search_info": {}, - "search_info_normalized": {}, - "selfie": false, - "shared": null, - "shared_library": false, - "shared_moment": false, - "slow_mo": false, - "syndicated": null, - "time_lapse": false, - "title": "Tulips tied together at a flower shop", - "tzoffset": 0, - "uti": "public.jpeg", - "uti_edited": null, - "uti_original": "public.jpeg", - "uti_raw": null, - "uuid": "E5FQ%pg4SRyKPi4dk6rUrg", - "visible": false, - "width": 1365 - }, - { - "adjustments": {}, - "album_info": [], - "albums": [], - "burst": false, - "burst_album_info": [], - "burst_albums": [], - "burst_default_pick": false, - "burst_key": false, - "burst_photos": [], - "burst_selected": false, - "cloud_guid": "", - "cloud_metadata": {}, - "cloud_owner_hashed_id": "", - "comments": [], - "date": "2019-04-15T14:40:24+00:00", - "date_added": "2023-09-27T13:43:07.941678+00:00", - "date_modified": "2023-10-08T21:28:21.569424+00:00", - "date_trashed": null, - "description": "Bride Wedding day", - "exif_info": { - "aperture": 2.2, - "bit_rate": 0.0, - "camera_make": "NIKON CORPORATION", - "camera_model": "NIKON D810", - "codec": "", - "dict": { - "ApertureValue": 2.2, - "CaptureDayOfMonth": 15, - "CaptureDayOfWeek": 1, - "CaptureHourOfDay": 14, - "CaptureMinuteOfHour": 40, - "CaptureMonthOfYear": 4, - "CaptureSecondOfMinute": 24, - "CaptureYear": 2019, - "ColorModel": "RGB", - "ColorSpace": 65535, - "Depth": 8, - "ExifVersion": "2.3.1", - "ExposureMode": 0, - "ExposureProgram": 3, - "Flash": 13, - "FlashPixVersion": "1.0", - "FocalLength": 100, - "ISOSpeedRating": 160, - "ImageDate": 0, - "ImageDescription": "Bride Wedding day", - "LensModel": "100.0 mm f/2.0", - "LightSource": 0, - "Make": "NIKON CORPORATION", - "MeteringMode": 3, - "Model": "NIKON D810", - "PixelHeight": 1367, - "PixelWidth": 2048, - "ProfileName": "sRGB IEC61966-2.1", - "SceneCaptureType": 0, - "ShutterSpeed": 0.001, - "Software": "PortraitPro Studio Max 17", - "WhiteBalance": 0 + "screen_recording" : false, + "screenshot" : false, + "search_info" : {}, + "search_info_normalized" : {}, + "selfie" : false, + "shared" : null, + "shared_library" : false, + "shared_moment" : false, + "slow_mo" : false, + "syndicated" : null, + "time_lapse" : false, + "title" : "Can we carry this?", + "tzname" : "GMT", + "tzoffset" : 0, + "uti" : "public.jpeg", + "uti_edited" : null, + "uti_original" : "public.jpeg", + "uti_raw" : null, + "uuid" : "7NGbu3h6RkGXxBGa9lfMVQ", + "visible" : false, + "width" : 2048 + }, + { + "adjustments" : {}, + "album_info" : [ + { + "folder_list" : [], + "folder_names" : [], + "parent" : null, + "sort_order" : 0, + "title" : "Pumpkin Farm", + "uuid" : "pDZqrEDNTc2Rt9Q1hdvStQ" + } + ], + "albums" : [ + "Pumpkin Farm" + ], + "burst" : false, + "burst_album_info" : [ + { + "folder_list" : [], + "folder_names" : [], + "parent" : null, + "sort_order" : 0, + "title" : "Pumpkin Farm", + "uuid" : "pDZqrEDNTc2Rt9Q1hdvStQ" + } + ], + "burst_albums" : [ + "Pumpkin Farm" + ], + "burst_default_pick" : false, + "burst_key" : false, + "burst_photos" : [], + "burst_selected" : false, + "cloud_guid" : "", + "cloud_metadata" : {}, + "cloud_owner_hashed_id" : "", + "comments" : [], + "date" : "2018-09-28T16:07:07+00:00", + "date_added" : "2023-09-27T13:43:07.915819+00:00", + "date_modified" : "2023-07-25T05:05:15.024885+00:00", + "date_original" : "2018-09-28T16:07:07+00:00", + "date_trashed" : null, + "description" : "Girl holding pumpkin", + "exif_info" : { + "aperture" : 6.3, + "bit_rate" : 0, + "camera_make" : "Canon", + "camera_model" : "Canon EOS 5D Mark IV", + "codec" : "", + "dict" : { + "ApertureValue" : 6.3, + "Artist" : "Alexander Moore", + "CaptureDayOfMonth" : 28, + "CaptureDayOfWeek" : 5, + "CaptureHourOfDay" : 16, + "CaptureMinuteOfHour" : 7, + "CaptureMonthOfYear" : 9, + "CaptureSecondOfMinute" : 7, + "CaptureYear" : 2018, + "ColorModel" : "RGB", + "ColorSpace" : 65535, + "Copyright" : "YTC Ltd", + "Depth" : 8, + "ExifVersion" : "2.3.1", + "ExposureMode" : 0, + "ExposureProgram" : 4, + "Flash" : 16, + "FlashPixVersion" : "1.0", + "FocalLength" : 45, + "ISOSpeedRating" : 100, + "ImageDate" : 0, + "ImageDescription" : "Girl holding pumpkin", + "LensModel" : "EF24-105mm f/4L IS USM", + "Make" : "Canon", + "MeteringMode" : 5, + "Model" : "Canon EOS 5D Mark IV", + "PixelHeight" : 2048, + "PixelWidth" : 1365, + "ProfileName" : "sRGB IEC61966-2.1", + "SceneCaptureType" : 0, + "ShutterSpeed" : 0.00625, + "Software" : "Adobe Photoshop CC 2014 (Windows)", + "WhiteBalance" : 0 + }, + "duration" : 0, + "exposure_bias" : 0, + "flash_fired" : true, + "focal_length" : 45, + "fps" : 0, + "iso" : 100, + "latitude" : 0, + "lens_model" : "EF24-105mm f/4L IS USM", + "longitude" : 0, + "metering_mode" : 5, + "sample_rate" : 0, + "shutter_speed" : 0.00625, + "software" : "Adobe Photoshop CC 2014 (Windows)", + "track_format" : 0, + "white_balance" : 0 }, - "duration": 0.0, - "exposure_bias": 0.0, - "flash_fired": true, - "focal_length": 100, - "fps": 0.0, - "iso": 160, - "latitude": 0.0, - "lens_model": "100.0 mm f/2.0", - "longitude": 0.0, - "metering_mode": 3, - "sample_rate": 0, - "shutter_speed": 0.001, - "software": "PortraitPro Studio Max 17", - "track_format": 0, - "white_balance": 0 - }, - "external_edit": false, - "face_info": [ - { - "center": [ - 633, - 565 - ], - "center_x": 0.4234113712374582, - "center_y": 0.41331382589612287, - "face_rect": [ - [ - 395, - 326 - ], - [ - 871, - 803 - ] - ], - "mpri_reg_rect": { - "h": 0.3183946488294314, - "w": 0.34820775420629113, - "x": 395, - "y": 326 - }, - "mwg_rs_area": { - "h": 0.34820775420629113, - "w": 0.3183946488294314, - "x": 0.4234113712374582, - "y": 0.41331382589612287 - }, - "name": "Maria", - "quality": 0.0, - "size": 0.3183946488294314 - } - ], - "favorite": false, - "filename": "wedding.jpg", - "fingerprint": "AUEhMKp/s3KRJODYIA+xnthkxkdG", - "folders": {}, - "has_raw": false, - "hasadjustments": true, - "hdr": false, - "height": 1367, - "hidden": false, - "import_info": {}, - "incloud": null, - "intrash": 0, - "iscloudasset": false, - "ismissing": 0, - "ismovie": false, - "isphoto": true, - "israw": false, - "isreference": 0, - "keywords": [ - "wedding" - ], - "labels": [], - "labels_normalized": [], - "latitude": 0.0, - "library": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", - "likes": [], - "live_photo": false, - "location": [ - null, - null - ], - "longitude": 0.0, - "orientation": 1, - "original_filename": "wedding.jpg", - "original_filesize": 463959, - "original_height": 1367, - "original_orientation": 0, - "original_width": 2048, - "owner": null, - "panorama": false, - "path": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/wedding.jpg", - "path_derivatives": [ - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/RgISIEPbThGVoco5LyiLjQ/wedding.jpg", - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/RgISIEPbThGVoco5LyiLjQ/wedding_1024.jpg", - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/RgISIEPbThGVoco5LyiLjQ/wedding_face0.jpg" - ], - "path_edited": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Previews/2023/09/27/20230927-064307/RgISIEPbThGVoco5LyiLjQ/wedding.jpg", - "path_edited_live_photo": null, - "path_live_photo": null, - "path_raw": null, - "person_info": [ - { - "displayname": "Maria", - "facecount": 1, - "favorite": false, - "feature_less": false, - "keyface": null, - "keyphoto": null, - "name": "Maria", - "sort_order": 0, - "uuid": "%tGXoQmpROOwqHjuSMqbHg" - } - ], - "persons": [ - "Maria" - ], - "place": {}, - "portrait": false, - "project_info": [], - "rating": 5, - "raw_original": false, - "saved_to_library": null, - "score": { - "behavioral": 0.0, - "curation": 0.0, - "failure": 0.0, - "harmonious_color": 0.0, - "highlight_visibility": 0.0, - "immersiveness": 0.0, - "interaction": 0.0, - "interesting_subject": 0.0, - "intrusive_object_presence": 0.0, - "lively_color": 0.0, - "low_light": 0.0, - "noise": 0.0, - "overall": 0.0, - "pleasant_camera_tilt": 0.0, - "pleasant_composition": 0.0, - "pleasant_lighting": 0.0, - "pleasant_pattern": 0.0, - "pleasant_perspective": 0.0, - "pleasant_post_processing": 0.0, - "pleasant_reflection": 0.0, - "pleasant_symmetry": 0.0, - "promotion": 0.0, - "sharply_focused_subject": 0.0, - "tastefully_blurred": 0.0, - "well_chosen_subject": 0.0, - "well_framed_subject": 0.0, - "well_timed_shot": 0.0 - }, - "screen_recording": false, - "screenshot": false, - "search_info": {}, - "search_info_normalized": {}, - "selfie": false, - "shared": null, - "shared_library": false, - "shared_moment": false, - "slow_mo": false, - "syndicated": null, - "time_lapse": false, - "title": "wedding", - "tzoffset": 0, - "uti": "public.jpeg", - "uti_edited": "public.jpeg", - "uti_original": "public.jpeg", - "uti_raw": null, - "uuid": "RgISIEPbThGVoco5LyiLjQ", - "visible": false, - "width": 1495 - }, - { - "adjustments": {}, - "album_info": [ - { - "folder_list": [ - "dmCBXs4sSXaZ8nEJV+AM%A", - "NtsvmxOMR6WM3nYJy5X3ow" - ], - "folder_names": [ - "Folder1", - "SubFolder2" - ], - "parent": "NtsvmxOMR6WM3nYJy5X3ow", - "sort_order": 0, - "title": "AlbumInFolder", - "uuid": "dtiURL7dQ%+oltqjyqD3pQ" + "external_edit" : false, + "face_info" : [ + { + "center" : [ + 824, + 529 + ], + "center_x" : 0.604029304029304, + "center_y" : 0.25830078125, + "face_rect" : [ + [ + 638, + 343 + ], + [ + 1010, + 715 + ] + ], + "mpri_reg_rect" : { + "h" : 0.272527472527473, + "w" : 0.181640625, + "x" : 638, + "y" : 343 + }, + "mwg_rs_area" : { + "h" : 0.181640625, + "w" : 0.272527472527473, + "x" : 0.604029304029304, + "y" : 0.25830078125 + }, + "name" : "Katie", + "quality" : 0, + "size" : 0.272527472527473 + } + ], + "favorite" : false, + "filename" : "Pumkins2.jpg", + "fingerprint" : "AfI6TRt/oe/cPE1tmyo/P/OudGvQ", + "folders" : { + "Pumpkin Farm" : [] }, - { - "folder_list": [], - "folder_names": [], - "parent": null, - "sort_order": 0, - "title": "Last Import", - "uuid": "lastImportAlbum" - } - ], - "albums": [ - "AlbumInFolder", - "Last Import" - ], - "burst": false, - "burst_album_info": [ - { - "folder_list": [ - "dmCBXs4sSXaZ8nEJV+AM%A", - "NtsvmxOMR6WM3nYJy5X3ow" - ], - "folder_names": [ - "Folder1", - "SubFolder2" - ], - "parent": "NtsvmxOMR6WM3nYJy5X3ow", - "sort_order": 0, - "title": "AlbumInFolder", - "uuid": "dtiURL7dQ%+oltqjyqD3pQ" + "has_raw" : false, + "hasadjustments" : false, + "hdr" : false, + "height" : 2048, + "hidden" : false, + "import_info" : {}, + "incloud" : null, + "intrash" : 0, + "iscloudasset" : false, + "ismissing" : 0, + "ismovie" : false, + "isphoto" : true, + "israw" : false, + "isreference" : 0, + "keywords" : [ + "Katie" + ], + "labels" : [], + "labels_normalized" : [], + "latitude" : 0, + "library" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", + "likes" : [], + "live_photo" : false, + "location" : [ + null, + null + ], + "longitude" : 0, + "orientation" : 1, + "original_filename" : "Pumkins2.jpg", + "original_filesize" : 544761, + "original_height" : 2048, + "original_orientation" : 0, + "original_width" : 1365, + "owner" : null, + "panorama" : false, + "path" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/Pumkins2.jpg", + "path_derivatives" : [ + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/L0ddFwSDTmGwDZBWpnLF4A/Pumkins2.jpg", + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/L0ddFwSDTmGwDZBWpnLF4A/Pumkins2_1024.jpg", + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/L0ddFwSDTmGwDZBWpnLF4A/Pumkins2_face0.jpg" + ], + "path_edited" : "", + "path_edited_live_photo" : null, + "path_live_photo" : null, + "path_raw" : null, + "person_info" : [ + { + "displayname" : "Katie", + "facecount" : 2, + "favorite" : false, + "feature_less" : false, + "keyface" : null, + "keyphoto" : null, + "name" : "Katie", + "sort_order" : 0, + "uuid" : "d%YZTuXcTQqnfDWsiRmsTw" + } + ], + "persons" : [ + "Katie" + ], + "place" : {}, + "portrait" : false, + "project_info" : [], + "rating" : 4, + "raw_original" : false, + "saved_to_library" : null, + "score" : { + "behavioral" : 0, + "curation" : 0, + "failure" : 0, + "harmonious_color" : 0, + "highlight_visibility" : 0, + "immersiveness" : 0, + "interaction" : 0, + "interesting_subject" : 0, + "intrusive_object_presence" : 0, + "lively_color" : 0, + "low_light" : 0, + "noise" : 0, + "overall" : 0, + "pleasant_camera_tilt" : 0, + "pleasant_composition" : 0, + "pleasant_lighting" : 0, + "pleasant_pattern" : 0, + "pleasant_perspective" : 0, + "pleasant_post_processing" : 0, + "pleasant_reflection" : 0, + "pleasant_symmetry" : 0, + "promotion" : 0, + "sharply_focused_subject" : 0, + "tastefully_blurred" : 0, + "well_chosen_subject" : 0, + "well_framed_subject" : 0, + "well_timed_shot" : 0 }, - { - "folder_list": [], - "folder_names": [], - "parent": null, - "sort_order": 0, - "title": "Last Import", - "uuid": "lastImportAlbum" - } - ], - "burst_albums": [ - "AlbumInFolder", - "Last Import" - ], - "burst_default_pick": false, - "burst_key": false, - "burst_photos": [], - "burst_selected": false, - "cloud_guid": "", - "cloud_metadata": {}, - "cloud_owner_hashed_id": "", - "comments": [], - "date": "2017-06-20T17:18:56+00:00", - "date_added": "2023-09-27T13:49:45.763211+00:00", - "date_modified": "2023-07-25T05:05:15.073773+00:00", - "date_trashed": null, - "description": "Elder Park⁩, ⁨Adelaide⁩, ⁨Australia", - "exif_info": { - "aperture": 2.2, - "bit_rate": 0.0, - "camera_make": "Apple", - "camera_model": "iPhone 6s", - "codec": "", - "dict": { - "Altitude": 61, - "ApertureValue": 2.2, - "BrightnessValue": -0.8009999999999999, - "CaptureDayOfMonth": 20, - "CaptureDayOfWeek": 2, - "CaptureHourOfDay": 17, - "CaptureMinuteOfHour": 18, - "CaptureMonthOfYear": 6, - "CaptureSecondOfMinute": 56, - "CaptureYear": 2017, - "ColorModel": "RGB", - "ColorSpace": 1, - "Depth": 8, - "ExifVersion": "2.2.1", - "ExposureBiasValue": 0, - "ExposureMode": 0, - "ExposureProgram": 2, - "Flash": 16, - "FlashPixVersion": "1.0", - "FocalLenIn35mmFilm": 48, - "FocalLength": 4.15, - "ISOSpeedRating": 320, - "ImageDate": 0, - "ImageDescription": "⁨Elder Park⁩, ⁨Adelaide⁩, ⁨Australia⁩", - "Latitude": -34.91889167000001, - "LensModel": "iPhone 6s back camera 4.15mm f/2.2", - "Longitude": 138.59686167, - "Make": "Apple", - "MeteringMode": 3, - "Model": "iPhone 6s", - "PixelHeight": 2754, - "PixelWidth": 2754, - "ProfileName": "sRGB IEC61966-2.1", - "SceneCaptureType": 0, - "ShutterSpeed": 0.05882353, - "Software": "Photos 3.0", - "WhiteBalance": 0 + "screen_recording" : false, + "screenshot" : false, + "search_info" : {}, + "search_info_normalized" : {}, + "selfie" : false, + "shared" : null, + "shared_library" : false, + "shared_moment" : false, + "slow_mo" : false, + "syndicated" : null, + "time_lapse" : false, + "title" : "I found one!", + "tzname" : "GMT", + "tzoffset" : 0, + "uti" : "public.jpeg", + "uti_edited" : null, + "uti_original" : "public.jpeg", + "uti_raw" : null, + "uuid" : "L0ddFwSDTmGwDZBWpnLF4A", + "visible" : false, + "width" : 1365 + }, + { + "adjustments" : {}, + "album_info" : [ + { + "folder_list" : [], + "folder_names" : [], + "parent" : null, + "sort_order" : 0, + "title" : "Pumpkin Farm", + "uuid" : "pDZqrEDNTc2Rt9Q1hdvStQ" + } + ], + "albums" : [ + "Pumpkin Farm" + ], + "burst" : false, + "burst_album_info" : [ + { + "folder_list" : [], + "folder_names" : [], + "parent" : null, + "sort_order" : 0, + "title" : "Pumpkin Farm", + "uuid" : "pDZqrEDNTc2Rt9Q1hdvStQ" + } + ], + "burst_albums" : [ + "Pumpkin Farm" + ], + "burst_default_pick" : false, + "burst_key" : false, + "burst_photos" : [], + "burst_selected" : false, + "cloud_guid" : "", + "cloud_metadata" : {}, + "cloud_owner_hashed_id" : "", + "comments" : [], + "date" : "2018-09-28T16:09:33+00:00", + "date_added" : "2023-09-27T13:43:07.919802+00:00", + "date_modified" : "2023-07-25T05:05:15.025223+00:00", + "date_original" : "2018-09-28T16:09:33+00:00", + "date_trashed" : null, + "description" : "Kids in pumpkin field", + "exif_info" : { + "aperture" : 4, + "bit_rate" : 0, + "camera_make" : "Canon", + "camera_model" : "Canon EOS 5D Mark IV", + "codec" : "", + "dict" : { + "ApertureValue" : 4, + "Artist" : "Alexander Moore", + "CaptureDayOfMonth" : 28, + "CaptureDayOfWeek" : 5, + "CaptureHourOfDay" : 16, + "CaptureMinuteOfHour" : 9, + "CaptureMonthOfYear" : 9, + "CaptureSecondOfMinute" : 33, + "CaptureYear" : 2018, + "ColorModel" : "RGB", + "ColorSpace" : 65535, + "Copyright" : "YTC Ltd", + "Depth" : 8, + "ExifVersion" : "2.3.1", + "ExposureMode" : 0, + "ExposureProgram" : 4, + "Flash" : 16, + "FlashPixVersion" : "1.0", + "FocalLength" : 65, + "ISOSpeedRating" : 100, + "ImageDate" : 0, + "ImageDescription" : "Kids in pumpkin field", + "LensModel" : "EF24-105mm f/4L IS USM", + "Make" : "Canon", + "MeteringMode" : 5, + "Model" : "Canon EOS 5D Mark IV", + "PixelHeight" : 2048, + "PixelWidth" : 1365, + "ProfileName" : "sRGB IEC61966-2.1", + "SceneCaptureType" : 0, + "ShutterSpeed" : 0.005, + "Software" : "Adobe Photoshop CC 2014 (Windows)", + "WhiteBalance" : 0 + }, + "duration" : 0, + "exposure_bias" : 0, + "flash_fired" : true, + "focal_length" : 65, + "fps" : 0, + "iso" : 100, + "latitude" : 0, + "lens_model" : "EF24-105mm f/4L IS USM", + "longitude" : 0, + "metering_mode" : 5, + "sample_rate" : 0, + "shutter_speed" : 0.005, + "software" : "Adobe Photoshop CC 2014 (Windows)", + "track_format" : 0, + "white_balance" : 0 + }, + "external_edit" : false, + "face_info" : [], + "favorite" : false, + "filename" : "Pumpkins3.jpg", + "fingerprint" : "AboErdmtX3P6n9mTRoOaciWELmae", + "folders" : { + "Pumpkin Farm" : [] }, - "duration": 0.0, - "exposure_bias": 0, - "flash_fired": true, - "focal_length": 4.15, - "fps": 0.0, - "iso": 320, - "latitude": -34.91889167000001, - "lens_model": "iPhone 6s back camera 4.15mm f/2.2", - "longitude": 138.59686167, - "metering_mode": 3, - "sample_rate": 0, - "shutter_speed": 0.05882353, - "software": "Photos 3.0", - "track_format": 0, - "white_balance": 0 - }, - "external_edit": false, - "face_info": [], - "favorite": false, - "filename": "IMG_4547.jpg", - "fingerprint": "AcrntWs8LmFJvDyxMB5XCKyKFMEN", - "folders": { - "AlbumInFolder": [ - "Folder1", - "SubFolder2" + "has_raw" : false, + "hasadjustments" : false, + "hdr" : false, + "height" : 2048, + "hidden" : false, + "import_info" : {}, + "incloud" : null, + "intrash" : 0, + "iscloudasset" : false, + "ismissing" : 0, + "ismovie" : false, + "isphoto" : true, + "israw" : false, + "isreference" : 0, + "keywords" : [ + "Katie", + "Suzy" + ], + "labels" : [], + "labels_normalized" : [], + "latitude" : 0, + "library" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", + "likes" : [], + "live_photo" : false, + "location" : [ + null, + null + ], + "longitude" : 0, + "orientation" : 1, + "original_filename" : "Pumpkins3.jpg", + "original_filesize" : 591671, + "original_height" : 2048, + "original_orientation" : 0, + "original_width" : 1365, + "owner" : null, + "panorama" : false, + "path" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/Pumpkins3.jpg", + "path_derivatives" : [ + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/TeSYQT5HRJ6R6uGZRm+VOQ/Pumpkins3.jpg", + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/TeSYQT5HRJ6R6uGZRm+VOQ/Pumpkins3_1024.jpg" + ], + "path_edited" : "", + "path_edited_live_photo" : null, + "path_live_photo" : null, + "path_raw" : null, + "person_info" : [], + "persons" : [], + "place" : {}, + "portrait" : false, + "project_info" : [], + "rating" : 0, + "raw_original" : false, + "saved_to_library" : null, + "score" : { + "behavioral" : 0, + "curation" : 0, + "failure" : 0, + "harmonious_color" : 0, + "highlight_visibility" : 0, + "immersiveness" : 0, + "interaction" : 0, + "interesting_subject" : 0, + "intrusive_object_presence" : 0, + "lively_color" : 0, + "low_light" : 0, + "noise" : 0, + "overall" : 0, + "pleasant_camera_tilt" : 0, + "pleasant_composition" : 0, + "pleasant_lighting" : 0, + "pleasant_pattern" : 0, + "pleasant_perspective" : 0, + "pleasant_post_processing" : 0, + "pleasant_reflection" : 0, + "pleasant_symmetry" : 0, + "promotion" : 0, + "sharply_focused_subject" : 0, + "tastefully_blurred" : 0, + "well_chosen_subject" : 0, + "well_framed_subject" : 0, + "well_timed_shot" : 0 + }, + "screen_recording" : false, + "screenshot" : false, + "search_info" : {}, + "search_info_normalized" : {}, + "selfie" : false, + "shared" : null, + "shared_library" : false, + "shared_moment" : false, + "slow_mo" : false, + "syndicated" : null, + "time_lapse" : false, + "title" : "Pumpkins3", + "tzname" : "GMT", + "tzoffset" : 0, + "uti" : "public.jpeg", + "uti_edited" : null, + "uti_original" : "public.jpeg", + "uti_raw" : null, + "uuid" : "TeSYQT5HRJ6R6uGZRm+VOQ", + "visible" : false, + "width" : 1365 + }, + { + "adjustments" : {}, + "album_info" : [], + "albums" : [], + "burst" : false, + "burst_album_info" : [], + "burst_albums" : [], + "burst_default_pick" : false, + "burst_key" : false, + "burst_photos" : [], + "burst_selected" : false, + "cloud_guid" : "", + "cloud_metadata" : {}, + "cloud_owner_hashed_id" : "", + "comments" : [], + "date" : "2018-10-13T09:18:12+00:00", + "date_added" : "2023-09-27T13:43:07.927110+00:00", + "date_modified" : "2023-09-27T13:46:03.293684+00:00", + "date_original" : "2018-10-13T09:18:12+00:00", + "date_trashed" : null, + "description" : "", + "exif_info" : { + "aperture" : 4, + "bit_rate" : 0, + "camera_make" : "NIKON CORPORATION", + "camera_model" : "NIKON D7000", + "codec" : "", + "dict" : { + "Altitude" : 2.6, + "ApertureValue" : 4, + "Artist" : "Jeff Hitchcock", + "CaptureDayOfMonth" : 13, + "CaptureDayOfWeek" : 6, + "CaptureHourOfDay" : 9, + "CaptureMinuteOfHour" : 18, + "CaptureMonthOfYear" : 10, + "CaptureSecondOfMinute" : 12, + "CaptureYear" : 2018, + "ColorModel" : "RGB", + "ColorSpace" : 65535, + "Contrast" : 0, + "Copyright" : "Copyright 2018 Jeff Hitchcock, Some Rights Reserved", + "Depth" : 8, + "ExifVersion" : "2.3.1", + "ExposureBiasValue" : -1.667, + "ExposureMode" : 1, + "ExposureProgram" : 1, + "Flash" : 16, + "FlashPixVersion" : "1.0", + "FocalLength" : 22, + "GPSVersion" : "2.3.0.0", + "ISOSpeedRating" : 200, + "ImageDate" : 0, + "Latitude" : 51.50357167, + "LensModel" : "12.0-24.0 mm f/4.0", + "LightSource" : 0, + "Longitude" : -0.1318055, + "Make" : "NIKON CORPORATION", + "MeteringMode" : 5, + "Model" : "NIKON D7000", + "PixelHeight" : 1356, + "PixelWidth" : 2047, + "ProfileName" : "sRGB IEC61966-2.1", + "Saturation" : 0, + "SceneCaptureType" : 0, + "Sharpness" : 0, + "ShutterSpeed" : 0.0005, + "Software" : "Adobe Photoshop Lightroom Classic 8.1 (Macintosh)", + "WhiteBalance" : 0 + }, + "duration" : 0, + "exposure_bias" : -1.667, + "flash_fired" : true, + "focal_length" : 22, + "fps" : 0, + "iso" : 200, + "latitude" : 51.50357167, + "lens_model" : "12.0-24.0 mm f/4.0", + "longitude" : -0.1318055, + "metering_mode" : 5, + "sample_rate" : 0, + "shutter_speed" : 0.0005, + "software" : "Adobe Photoshop Lightroom Classic 8.1 (Macintosh)", + "track_format" : 0, + "white_balance" : 0 + }, + "external_edit" : false, + "face_info" : [], + "favorite" : false, + "filename" : "St James Park.jpg", + "fingerprint" : "AWndU36/Yw91sWvr89QbnUFH7BDp", + "folders" : {}, + "has_raw" : false, + "hasadjustments" : true, + "hdr" : false, + "height" : 1356, + "hidden" : false, + "import_info" : {}, + "incloud" : null, + "intrash" : 0, + "iscloudasset" : false, + "ismissing" : 0, + "ismovie" : false, + "isphoto" : true, + "israw" : false, + "isreference" : 0, + "keywords" : [ + "England", + "London", + "London 2018", + "St. James's Park", + "UK", + "United Kingdom" + ], + "labels" : [], + "labels_normalized" : [], + "latitude" : 0, + "library" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", + "likes" : [], + "live_photo" : false, + "location" : [ + 51.50357167, + -0.1318055 ], - "Last Import": [] - }, - "has_raw": false, - "hasadjustments": false, - "hdr": false, - "height": 2754, - "hidden": false, - "import_info": {}, - "incloud": null, - "intrash": 0, - "iscloudasset": false, - "ismissing": 0, - "ismovie": false, - "isphoto": true, - "israw": false, - "isreference": 0, - "keywords": [], - "labels": [], - "labels_normalized": [], - "latitude": 0.0, - "library": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", - "likes": [], - "live_photo": false, - "location": [ - -34.91889167000001, - 138.59686167 - ], - "longitude": 0.0, - "orientation": 1, - "original_filename": "IMG_4547.jpg", - "original_filesize": 1477654, - "original_height": 2754, - "original_orientation": 0, - "original_width": 2754, - "owner": null, - "panorama": false, - "path": "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064945/IMG_4547.jpg", - "path_derivatives": [ - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064945/QwWcnIjYRUOOiAt0h6RYWg/IMG_4547.jpg", - "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064945/QwWcnIjYRUOOiAt0h6RYWg/IMG_4547_1024.jpg" - ], - "path_edited": "", - "path_edited_live_photo": null, - "path_live_photo": null, - "path_raw": null, - "person_info": [], - "persons": [], - "place": {}, - "portrait": false, - "project_info": [], - "rating": 0, - "raw_original": false, - "saved_to_library": null, - "score": { - "behavioral": 0.0, - "curation": 0.0, - "failure": 0.0, - "harmonious_color": 0.0, - "highlight_visibility": 0.0, - "immersiveness": 0.0, - "interaction": 0.0, - "interesting_subject": 0.0, - "intrusive_object_presence": 0.0, - "lively_color": 0.0, - "low_light": 0.0, - "noise": 0.0, - "overall": 0.0, - "pleasant_camera_tilt": 0.0, - "pleasant_composition": 0.0, - "pleasant_lighting": 0.0, - "pleasant_pattern": 0.0, - "pleasant_perspective": 0.0, - "pleasant_post_processing": 0.0, - "pleasant_reflection": 0.0, - "pleasant_symmetry": 0.0, - "promotion": 0.0, - "sharply_focused_subject": 0.0, - "tastefully_blurred": 0.0, - "well_chosen_subject": 0.0, - "well_framed_subject": 0.0, - "well_timed_shot": 0.0 - }, - "screen_recording": false, - "screenshot": false, - "search_info": {}, - "search_info_normalized": {}, - "selfie": false, - "shared": null, - "shared_library": false, - "shared_moment": false, - "slow_mo": false, - "syndicated": null, - "time_lapse": false, - "title": "Elder Park", - "tzoffset": 0, - "uti": "public.jpeg", - "uti_edited": null, - "uti_original": "public.jpeg", - "uti_raw": null, - "uuid": "QwWcnIjYRUOOiAt0h6RYWg", - "visible": false, - "width": 2754 - } + "longitude" : 0, + "orientation" : 1, + "original_filename" : "St James Park.jpg", + "original_filesize" : 1266130, + "original_height" : 1356, + "original_orientation" : 0, + "original_width" : 2047, + "owner" : null, + "panorama" : false, + "path" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/St James Park.jpg", + "path_derivatives" : [ + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/QtE4HvHhSnO2W8bmbzWRSg/St James Park.jpg", + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/QtE4HvHhSnO2W8bmbzWRSg/St James Park_1024.jpg" + ], + "path_edited" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Previews/2023/09/27/20230927-064307/QtE4HvHhSnO2W8bmbzWRSg/St. James's Park.jpg", + "path_edited_live_photo" : null, + "path_live_photo" : null, + "path_raw" : null, + "person_info" : [], + "persons" : [], + "place" : {}, + "portrait" : false, + "project_info" : [], + "rating" : 0, + "raw_original" : false, + "saved_to_library" : null, + "score" : { + "behavioral" : 0, + "curation" : 0, + "failure" : 0, + "harmonious_color" : 0, + "highlight_visibility" : 0, + "immersiveness" : 0, + "interaction" : 0, + "interesting_subject" : 0, + "intrusive_object_presence" : 0, + "lively_color" : 0, + "low_light" : 0, + "noise" : 0, + "overall" : 0, + "pleasant_camera_tilt" : 0, + "pleasant_composition" : 0, + "pleasant_lighting" : 0, + "pleasant_pattern" : 0, + "pleasant_perspective" : 0, + "pleasant_post_processing" : 0, + "pleasant_reflection" : 0, + "pleasant_symmetry" : 0, + "promotion" : 0, + "sharply_focused_subject" : 0, + "tastefully_blurred" : 0, + "well_chosen_subject" : 0, + "well_framed_subject" : 0, + "well_timed_shot" : 0 + }, + "screen_recording" : false, + "screenshot" : false, + "search_info" : {}, + "search_info_normalized" : {}, + "selfie" : false, + "shared" : null, + "shared_library" : false, + "shared_moment" : false, + "slow_mo" : false, + "syndicated" : null, + "time_lapse" : false, + "title" : "St. James's Park", + "tzname" : "GMT", + "tzoffset" : 0, + "uti" : "public.jpeg", + "uti_edited" : "public.jpeg", + "uti_original" : "public.jpeg", + "uti_raw" : null, + "uuid" : "QtE4HvHhSnO2W8bmbzWRSg", + "visible" : false, + "width" : 2047 + }, + { + "adjustments" : {}, + "album_info" : [], + "albums" : [], + "burst" : false, + "burst_album_info" : [], + "burst_albums" : [], + "burst_default_pick" : false, + "burst_key" : false, + "burst_photos" : [], + "burst_selected" : false, + "cloud_guid" : "", + "cloud_metadata" : {}, + "cloud_owner_hashed_id" : "", + "comments" : [], + "date" : "2019-07-04T16:24:01+00:00", + "date_added" : "2023-09-27T13:43:07.933525+00:00", + "date_modified" : "2024-02-25T01:02:18.085828+00:00", + "date_original" : "2019-07-04T16:24:01+00:00", + "date_trashed" : null, + "description" : "Wedding tulips", + "exif_info" : { + "aperture" : 3.6, + "bit_rate" : 0, + "camera_make" : "FUJIFILM", + "camera_model" : "X-T1", + "codec" : "", + "dict" : { + "ApertureValue" : 3.6, + "CaptureDayOfMonth" : 4, + "CaptureDayOfWeek" : 4, + "CaptureHourOfDay" : 16, + "CaptureMinuteOfHour" : 24, + "CaptureMonthOfYear" : 7, + "CaptureSecondOfMinute" : 1, + "CaptureYear" : 2019, + "ColorModel" : "RGB", + "ColorSpace" : 65535, + "Depth" : 8, + "ExifVersion" : "2.3.1", + "ExposureMode" : 1, + "ExposureProgram" : 1, + "Flash" : 0, + "FlashPixVersion" : "1.0", + "FocalLength" : 20.5, + "ISOSpeedRating" : 400, + "ImageDate" : 0, + "ImageDescription" : "Wedding tulips", + "LensModel" : "XF18-55mmF2.8-4 R LM OIS", + "LightSource" : 0, + "Make" : "FUJIFILM", + "MeteringMode" : 3, + "Model" : "X-T1", + "PixelHeight" : 1365, + "PixelWidth" : 2047, + "ProfileName" : "sRGB IEC61966-2.1", + "SceneCaptureType" : 0, + "Sharpness" : 2, + "ShutterSpeed" : 0.01666667, + "Software" : "Adobe Photoshop Lightroom Classic 8.2 (Macintosh)", + "WhiteBalance" : 0 + }, + "duration" : 0, + "exposure_bias" : 0, + "flash_fired" : false, + "focal_length" : 20.5, + "fps" : 0, + "iso" : 400, + "latitude" : 0, + "lens_model" : "XF18-55mmF2.8-4 R LM OIS", + "longitude" : 0, + "metering_mode" : 3, + "sample_rate" : 0, + "shutter_speed" : 0.01666667, + "software" : "Adobe Photoshop Lightroom Classic 8.2 (Macintosh)", + "track_format" : 0, + "white_balance" : 0 + }, + "external_edit" : false, + "face_info" : [], + "favorite" : false, + "filename" : "Tulips.jpg", + "fingerprint" : "AeP9PDNMP3/jWnc1cCMYBTsSSn2O", + "folders" : {}, + "has_raw" : false, + "hasadjustments" : false, + "hdr" : false, + "height" : 2047, + "hidden" : false, + "import_info" : {}, + "incloud" : null, + "intrash" : 0, + "iscloudasset" : false, + "ismissing" : 0, + "ismovie" : false, + "isphoto" : true, + "israw" : false, + "isreference" : 0, + "keywords" : [ + "Digital Nomad", + "Indoor", + "Reiseblogger", + "Stock Photography", + "Top Shot", + "close up", + "colorful", + "design", + "display", + "fake", + "flower", + "flowers", + "outdoor", + "photography", + "plastic", + "stock photo", + "vibrant", + "wedding" + ], + "labels" : [], + "labels_normalized" : [], + "latitude" : 0, + "library" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", + "likes" : [], + "live_photo" : false, + "location" : [ + null, + null + ], + "longitude" : 0, + "orientation" : 8, + "original_filename" : "Tulips.jpg", + "original_filesize" : 516378, + "original_height" : 1365, + "original_orientation" : 0, + "original_width" : 2047, + "owner" : null, + "panorama" : false, + "path" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/Tulips.jpg", + "path_derivatives" : [ + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/E5FQ%pg4SRyKPi4dk6rUrg/Tulips.jpg", + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/E5FQ%pg4SRyKPi4dk6rUrg/Tulips_1024.jpg" + ], + "path_edited" : "", + "path_edited_live_photo" : null, + "path_live_photo" : null, + "path_raw" : null, + "person_info" : [], + "persons" : [], + "place" : {}, + "portrait" : false, + "project_info" : [], + "rating" : 0, + "raw_original" : false, + "saved_to_library" : null, + "score" : { + "behavioral" : 0, + "curation" : 0, + "failure" : 0, + "harmonious_color" : 0, + "highlight_visibility" : 0, + "immersiveness" : 0, + "interaction" : 0, + "interesting_subject" : 0, + "intrusive_object_presence" : 0, + "lively_color" : 0, + "low_light" : 0, + "noise" : 0, + "overall" : 0, + "pleasant_camera_tilt" : 0, + "pleasant_composition" : 0, + "pleasant_lighting" : 0, + "pleasant_pattern" : 0, + "pleasant_perspective" : 0, + "pleasant_post_processing" : 0, + "pleasant_reflection" : 0, + "pleasant_symmetry" : 0, + "promotion" : 0, + "sharply_focused_subject" : 0, + "tastefully_blurred" : 0, + "well_chosen_subject" : 0, + "well_framed_subject" : 0, + "well_timed_shot" : 0 + }, + "screen_recording" : false, + "screenshot" : false, + "search_info" : {}, + "search_info_normalized" : {}, + "selfie" : false, + "shared" : null, + "shared_library" : false, + "shared_moment" : false, + "slow_mo" : false, + "syndicated" : null, + "time_lapse" : false, + "title" : "Tulips tied together at a flower shop", + "tzname" : "GMT", + "tzoffset" : 0, + "uti" : "public.jpeg", + "uti_edited" : null, + "uti_original" : "public.jpeg", + "uti_raw" : null, + "uuid" : "E5FQ%pg4SRyKPi4dk6rUrg", + "visible" : false, + "width" : 1365 + }, + { + "adjustments" : {}, + "album_info" : [], + "albums" : [], + "burst" : false, + "burst_album_info" : [], + "burst_albums" : [], + "burst_default_pick" : false, + "burst_key" : false, + "burst_photos" : [], + "burst_selected" : false, + "cloud_guid" : "", + "cloud_metadata" : {}, + "cloud_owner_hashed_id" : "", + "comments" : [], + "date" : "2019-04-15T14:40:24+00:00", + "date_added" : "2023-09-27T13:43:07.941678+00:00", + "date_modified" : "2023-10-08T21:28:21.569424+00:00", + "date_original" : "2019-04-15T14:40:24+00:00", + "date_trashed" : null, + "description" : "Bride Wedding day", + "exif_info" : { + "aperture" : 2.2, + "bit_rate" : 0, + "camera_make" : "NIKON CORPORATION", + "camera_model" : "NIKON D810", + "codec" : "", + "dict" : { + "ApertureValue" : 2.2, + "CaptureDayOfMonth" : 15, + "CaptureDayOfWeek" : 1, + "CaptureHourOfDay" : 14, + "CaptureMinuteOfHour" : 40, + "CaptureMonthOfYear" : 4, + "CaptureSecondOfMinute" : 24, + "CaptureYear" : 2019, + "ColorModel" : "RGB", + "ColorSpace" : 65535, + "Depth" : 8, + "ExifVersion" : "2.3.1", + "ExposureMode" : 0, + "ExposureProgram" : 3, + "Flash" : 13, + "FlashPixVersion" : "1.0", + "FocalLength" : 100, + "ISOSpeedRating" : 160, + "ImageDate" : 0, + "ImageDescription" : "Bride Wedding day", + "LensModel" : "100.0 mm f/2.0", + "LightSource" : 0, + "Make" : "NIKON CORPORATION", + "MeteringMode" : 3, + "Model" : "NIKON D810", + "PixelHeight" : 1367, + "PixelWidth" : 2048, + "ProfileName" : "sRGB IEC61966-2.1", + "SceneCaptureType" : 0, + "ShutterSpeed" : 0.001, + "Software" : "PortraitPro Studio Max 17", + "WhiteBalance" : 0 + }, + "duration" : 0, + "exposure_bias" : 0, + "flash_fired" : true, + "focal_length" : 100, + "fps" : 0, + "iso" : 160, + "latitude" : 0, + "lens_model" : "100.0 mm f/2.0", + "longitude" : 0, + "metering_mode" : 3, + "sample_rate" : 0, + "shutter_speed" : 0.001, + "software" : "PortraitPro Studio Max 17", + "track_format" : 0, + "white_balance" : 0 + }, + "external_edit" : false, + "face_info" : [ + { + "center" : [ + 633, + 565 + ], + "center_x" : 0.423411371237458, + "center_y" : 0.413313825896123, + "face_rect" : [ + [ + 395, + 326 + ], + [ + 871, + 803 + ] + ], + "mpri_reg_rect" : { + "h" : 0.318394648829431, + "w" : 0.348207754206291, + "x" : 395, + "y" : 326 + }, + "mwg_rs_area" : { + "h" : 0.348207754206291, + "w" : 0.318394648829431, + "x" : 0.423411371237458, + "y" : 0.413313825896123 + }, + "name" : "Maria", + "quality" : 0, + "size" : 0.318394648829431 + } + ], + "favorite" : false, + "filename" : "wedding.jpg", + "fingerprint" : "AUEhMKp/s3KRJODYIA+xnthkxkdG", + "folders" : {}, + "has_raw" : false, + "hasadjustments" : true, + "hdr" : false, + "height" : 1367, + "hidden" : false, + "import_info" : {}, + "incloud" : null, + "intrash" : 0, + "iscloudasset" : false, + "ismissing" : 0, + "ismovie" : false, + "isphoto" : true, + "israw" : false, + "isreference" : 0, + "keywords" : [ + "wedding" + ], + "labels" : [], + "labels_normalized" : [], + "latitude" : 0, + "library" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", + "likes" : [], + "live_photo" : false, + "location" : [ + null, + null + ], + "longitude" : 0, + "orientation" : 1, + "original_filename" : "wedding.jpg", + "original_filesize" : 463959, + "original_height" : 1367, + "original_orientation" : 0, + "original_width" : 2048, + "owner" : null, + "panorama" : false, + "path" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064307/wedding.jpg", + "path_derivatives" : [ + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/RgISIEPbThGVoco5LyiLjQ/wedding.jpg", + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/RgISIEPbThGVoco5LyiLjQ/wedding_1024.jpg", + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064307/RgISIEPbThGVoco5LyiLjQ/wedding_face0.jpg" + ], + "path_edited" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Previews/2023/09/27/20230927-064307/RgISIEPbThGVoco5LyiLjQ/wedding.jpg", + "path_edited_live_photo" : null, + "path_live_photo" : null, + "path_raw" : null, + "person_info" : [ + { + "displayname" : "Maria", + "facecount" : 1, + "favorite" : false, + "feature_less" : false, + "keyface" : null, + "keyphoto" : null, + "name" : "Maria", + "sort_order" : 0, + "uuid" : "%tGXoQmpROOwqHjuSMqbHg" + } + ], + "persons" : [ + "Maria" + ], + "place" : {}, + "portrait" : false, + "project_info" : [], + "rating" : 5, + "raw_original" : false, + "saved_to_library" : null, + "score" : { + "behavioral" : 0, + "curation" : 0, + "failure" : 0, + "harmonious_color" : 0, + "highlight_visibility" : 0, + "immersiveness" : 0, + "interaction" : 0, + "interesting_subject" : 0, + "intrusive_object_presence" : 0, + "lively_color" : 0, + "low_light" : 0, + "noise" : 0, + "overall" : 0, + "pleasant_camera_tilt" : 0, + "pleasant_composition" : 0, + "pleasant_lighting" : 0, + "pleasant_pattern" : 0, + "pleasant_perspective" : 0, + "pleasant_post_processing" : 0, + "pleasant_reflection" : 0, + "pleasant_symmetry" : 0, + "promotion" : 0, + "sharply_focused_subject" : 0, + "tastefully_blurred" : 0, + "well_chosen_subject" : 0, + "well_framed_subject" : 0, + "well_timed_shot" : 0 + }, + "screen_recording" : false, + "screenshot" : false, + "search_info" : {}, + "search_info_normalized" : {}, + "selfie" : false, + "shared" : null, + "shared_library" : false, + "shared_moment" : false, + "slow_mo" : false, + "syndicated" : null, + "time_lapse" : false, + "title" : "wedding", + "tzname" : "GMT", + "tzoffset" : 0, + "uti" : "public.jpeg", + "uti_edited" : "public.jpeg", + "uti_original" : "public.jpeg", + "uti_raw" : null, + "uuid" : "RgISIEPbThGVoco5LyiLjQ", + "visible" : false, + "width" : 1495 + }, + { + "adjustments" : {}, + "album_info" : [ + { + "folder_list" : [ + "dmCBXs4sSXaZ8nEJV+AM%A", + "NtsvmxOMR6WM3nYJy5X3ow" + ], + "folder_names" : [ + "Folder1", + "SubFolder2" + ], + "parent" : "NtsvmxOMR6WM3nYJy5X3ow", + "sort_order" : 0, + "title" : "AlbumInFolder", + "uuid" : "dtiURL7dQ%+oltqjyqD3pQ" + }, + { + "folder_list" : [], + "folder_names" : [], + "parent" : null, + "sort_order" : 0, + "title" : "Last Import", + "uuid" : "lastImportAlbum" + } + ], + "albums" : [ + "AlbumInFolder", + "Last Import" + ], + "burst" : false, + "burst_album_info" : [ + { + "folder_list" : [ + "dmCBXs4sSXaZ8nEJV+AM%A", + "NtsvmxOMR6WM3nYJy5X3ow" + ], + "folder_names" : [ + "Folder1", + "SubFolder2" + ], + "parent" : "NtsvmxOMR6WM3nYJy5X3ow", + "sort_order" : 0, + "title" : "AlbumInFolder", + "uuid" : "dtiURL7dQ%+oltqjyqD3pQ" + }, + { + "folder_list" : [], + "folder_names" : [], + "parent" : null, + "sort_order" : 0, + "title" : "Last Import", + "uuid" : "lastImportAlbum" + } + ], + "burst_albums" : [ + "AlbumInFolder", + "Last Import" + ], + "burst_default_pick" : false, + "burst_key" : false, + "burst_photos" : [], + "burst_selected" : false, + "cloud_guid" : "", + "cloud_metadata" : {}, + "cloud_owner_hashed_id" : "", + "comments" : [], + "date" : "2017-06-20T17:18:56+00:00", + "date_added" : "2023-09-27T13:49:45.763211+00:00", + "date_modified" : "2023-07-25T05:05:15.073773+00:00", + "date_original" : "2017-06-20T17:18:56+00:00", + "date_trashed" : null, + "description" : "Elder Park⁩, ⁨Adelaide⁩, ⁨Australia", + "exif_info" : { + "aperture" : 2.2, + "bit_rate" : 0, + "camera_make" : "Apple", + "camera_model" : "iPhone 6s", + "codec" : "", + "dict" : { + "Altitude" : 61, + "ApertureValue" : 2.2, + "BrightnessValue" : -0.801, + "CaptureDayOfMonth" : 20, + "CaptureDayOfWeek" : 2, + "CaptureHourOfDay" : 17, + "CaptureMinuteOfHour" : 18, + "CaptureMonthOfYear" : 6, + "CaptureSecondOfMinute" : 56, + "CaptureYear" : 2017, + "ColorModel" : "RGB", + "ColorSpace" : 1, + "Depth" : 8, + "ExifVersion" : "2.2.1", + "ExposureBiasValue" : 0, + "ExposureMode" : 0, + "ExposureProgram" : 2, + "Flash" : 16, + "FlashPixVersion" : "1.0", + "FocalLenIn35mmFilm" : 48, + "FocalLength" : 4.15, + "ISOSpeedRating" : 320, + "ImageDate" : 0, + "ImageDescription" : "⁨Elder Park⁩, ⁨Adelaide⁩, ⁨Australia⁩", + "Latitude" : -34.91889167, + "LensModel" : "iPhone 6s back camera 4.15mm f/2.2", + "Longitude" : 138.59686167, + "Make" : "Apple", + "MeteringMode" : 3, + "Model" : "iPhone 6s", + "PixelHeight" : 2754, + "PixelWidth" : 2754, + "ProfileName" : "sRGB IEC61966-2.1", + "SceneCaptureType" : 0, + "ShutterSpeed" : 0.05882353, + "Software" : "Photos 3.0", + "WhiteBalance" : 0 + }, + "duration" : 0, + "exposure_bias" : 0, + "flash_fired" : true, + "focal_length" : 4.15, + "fps" : 0, + "iso" : 320, + "latitude" : -34.91889167, + "lens_model" : "iPhone 6s back camera 4.15mm f/2.2", + "longitude" : 138.59686167, + "metering_mode" : 3, + "sample_rate" : 0, + "shutter_speed" : 0.05882353, + "software" : "Photos 3.0", + "track_format" : 0, + "white_balance" : 0 + }, + "external_edit" : false, + "face_info" : [], + "favorite" : false, + "filename" : "IMG_4547.jpg", + "fingerprint" : "AcrntWs8LmFJvDyxMB5XCKyKFMEN", + "folders" : { + "AlbumInFolder" : [ + "Folder1", + "SubFolder2" + ], + "Last Import" : [] + }, + "has_raw" : false, + "hasadjustments" : false, + "hdr" : false, + "height" : 2754, + "hidden" : false, + "import_info" : {}, + "incloud" : null, + "intrash" : 0, + "iscloudasset" : false, + "ismissing" : 0, + "ismovie" : false, + "isphoto" : true, + "israw" : false, + "isreference" : 0, + "keywords" : [], + "labels" : [], + "labels_normalized" : [], + "latitude" : 0, + "library" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary", + "likes" : [], + "live_photo" : false, + "location" : [ + -34.91889167, + 138.59686167 + ], + "longitude" : 0, + "orientation" : 1, + "original_filename" : "IMG_4547.jpg", + "original_filesize" : 1477654, + "original_height" : 2754, + "original_orientation" : 0, + "original_width" : 2754, + "owner" : null, + "panorama" : false, + "path" : "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Masters/2023/09/27/20230927-064945/IMG_4547.jpg", + "path_derivatives" : [ + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064945/QwWcnIjYRUOOiAt0h6RYWg/IMG_4547.jpg", + "IPHOTO_LIBRARY_ROOT/Test-iPhoto-9.6.1.photolibrary/Thumbnails/2023/09/27/20230927-064945/QwWcnIjYRUOOiAt0h6RYWg/IMG_4547_1024.jpg" + ], + "path_edited" : "", + "path_edited_live_photo" : null, + "path_live_photo" : null, + "path_raw" : null, + "person_info" : [], + "persons" : [], + "place" : {}, + "portrait" : false, + "project_info" : [], + "rating" : 0, + "raw_original" : false, + "saved_to_library" : null, + "score" : { + "behavioral" : 0, + "curation" : 0, + "failure" : 0, + "harmonious_color" : 0, + "highlight_visibility" : 0, + "immersiveness" : 0, + "interaction" : 0, + "interesting_subject" : 0, + "intrusive_object_presence" : 0, + "lively_color" : 0, + "low_light" : 0, + "noise" : 0, + "overall" : 0, + "pleasant_camera_tilt" : 0, + "pleasant_composition" : 0, + "pleasant_lighting" : 0, + "pleasant_pattern" : 0, + "pleasant_perspective" : 0, + "pleasant_post_processing" : 0, + "pleasant_reflection" : 0, + "pleasant_symmetry" : 0, + "promotion" : 0, + "sharply_focused_subject" : 0, + "tastefully_blurred" : 0, + "well_chosen_subject" : 0, + "well_framed_subject" : 0, + "well_timed_shot" : 0 + }, + "screen_recording" : false, + "screenshot" : false, + "search_info" : {}, + "search_info_normalized" : {}, + "selfie" : false, + "shared" : null, + "shared_library" : false, + "shared_moment" : false, + "slow_mo" : false, + "syndicated" : null, + "time_lapse" : false, + "title" : "Elder Park", + "tzname" : "GMT", + "tzoffset" : 0, + "uti" : "public.jpeg", + "uti_edited" : null, + "uti_original" : "public.jpeg", + "uti_raw" : null, + "uuid" : "QwWcnIjYRUOOiAt0h6RYWg", + "visible" : false, + "width" : 2754 + } ] diff --git a/tests/test_cli_import.py b/tests/test_cli_import.py index b1f83107..55cdc4ef 100644 --- a/tests/test_cli_import.py +++ b/tests/test_cli_import.py @@ -1601,6 +1601,46 @@ def test_import_exportdb(tmp_path): assert "AlbumInFolder" in photo.albums +@pytest.mark.test_import +def test_import_exportdb_datetime(tmp_path): + """Test osxphotos import with --exportdb option to verify date/time is set correctly""" + + # first, export an image + runner = CliRunner() + result = runner.invoke( + export, + [ + "--verbose", + str(tmp_path), + "--name", + "IMG_1693.tif", # has an invalid date in the library so photo.date == 1970-01-01 00:00:00+00:00 + "--library", + TEST_EXPORT_LIBRARY, + ], + ) + assert result.exit_code == 0 + + # now import that exported photo with --exportdb + result = runner.invoke( + import_main, + [ + str(tmp_path), + "--glob", + "IMG_1693.tif", + "--verbose", + "--exportdb", + str(tmp_path), + ], + terminal_width=TERMINAL_WIDTH, + ) + assert result.exit_code == 0 + assert "Setting metadata and location from export database" in result.output + results = parse_import_output(result.output) + photosdb = PhotosDB() + photo = photosdb.query(QueryOptions(uuid=[results["IMG_1693.tif"]]))[0] + assert photo.date == datetime.datetime(1970, 1, 1) + + @pytest.mark.test_import def test_import_exportdb_exportdir(tmp_path): """Test osxphotos import with --exportdb option and --exportdir""" diff --git a/tests/test_iphoto.py b/tests/test_iphoto.py index 56ade6fe..94e611db 100644 --- a/tests/test_iphoto.py +++ b/tests/test_iphoto.py @@ -4,6 +4,7 @@ import datetime import json +import logging import os import pathlib from typing import Any @@ -16,12 +17,14 @@ from osxphotos.exiftool import get_exiftool_path from osxphotos.iphoto import iPhotoPhotoInfo, is_iphoto_library +logger = logging.getLogger("osxphotos") + IPHOTO_LIBRARY = "tests/Test-iPhoto-9.6.1.photolibrary" PHOTO_LIBRARY = "tests/Test-10.15.7.photoslibrary" ALBUM_TITLES = ["Test Album", "Pumpkin Farm", "Last Import", "AlbumInFolder"] # Test data for iPhoto library -# Created with `osxphotos query --library tests/Test-iPhoto-9.6.1.photolibrary --json > tests/iphoto_test_data.json` +# Created with `osxphotos query --library tests/Test-iPhoto-9.6.1.photolibrary --json | json_pp > tests/iphoto_test_data.json` # Then replace the path to the library with `IPHOTO_LIBRARY_ROOT` TEST_DATA = "tests/iphoto_test_data.json" @@ -48,6 +51,57 @@ def recursive_str_replace( return dict_data +def compare_dicts( + dict1: dict[Any, Any], + dict2: dict[Any, Any], + tolerance: float = 0.0001, + ignore_keys: None | list[Any] = None, +): + """Compare two dictionaries recursively with tolerance for floats""" + for key in dict1.keys() | dict2.keys(): + if ignore_keys and key in ignore_keys: + continue + val1 = dict1.get(key) + val2 = dict2.get(key) + if isinstance(val1, dict) and isinstance(val2, dict): + if not compare_dicts(val1, val2, tolerance, ignore_keys): + return False + elif isinstance(val1, (list, tuple)) and isinstance(val2, (list, tuple)): + if len(val1) != len(val2): + logger.warning( + f"List/tuple lengths do not match for key: {key}, val1: {val1}, val2: {val2}" + ) + return False + for v1, v2 in zip(val1, val2): + if isinstance(v1, (int, float)) and isinstance(v2, (int, float)): + if abs(v1 - v2) >= tolerance: + logger.warning( + f"Difference exceeds tolerance for key: {key}, val1: {v1}, val2: {v2}" + ) + return False + elif isinstance(v1, dict) and isinstance(v2, dict): + if not compare_dicts(v1, v2, tolerance): + return False + else: + if v1 != v2: + logger.warning( + f"Values do not match for key: {key}, val1: {v1}, val2: {v2}" + ) + return False + elif isinstance(val1, (int, float)) and isinstance(val2, (int, float)): + if abs(val1 - val2) >= tolerance: + logger.warning( + f"Difference exceeds tolerance for key: {key}, val1: {val1}, val2: {val2}" + ) + return False + elif val1 != val2: + logger.warning( + f"Values do not match for key: {key}, val1: {val1}, val2: {val2}" + ) + return False + return True + + @pytest.fixture(scope="module") def iphotodb() -> iPhotoDB: """Test instance of the iPhotoDB class""" @@ -188,10 +242,8 @@ def test_iphoto_info(iphotodb: iPhotoDB, photo_dict: dict[str, Any]): uuid = photo_dict["uuid"] photo = iphotodb.get_photo(uuid) - for key, value in json.loads(photo.json(shallow=False)).items(): - if key != "fingerprint": - # fingerprint not implemented on linux - assert value == photo_dict[key] + + assert compare_dicts(json.loads(photo.json(shallow=False)), photo_dict) @pytest.mark.skipif(exiftool is None, reason="exiftool not installed") diff --git a/tests/test_timezones.py b/tests/test_timezones.py index 0fe247bf..d865f31e 100644 --- a/tests/test_timezones.py +++ b/tests/test_timezones.py @@ -51,6 +51,22 @@ def test_timezone_invalid_offset(): Timezone(1.23) # Invalid offset input +@pytest.mark.skipif(not is_macos, reason="macOS only") +def test_timezone_offset_by_date(): + """Test Timezone.offset_by_date method.""" + tz = Timezone("America/New_York") + assert tz.offset_for_date(datetime.datetime(2021, 1, 1)) == -18000 + assert tz.offset_for_date(datetime.datetime(2021, 6, 1)) == -14400 + + +@pytest.mark.skipif(not is_macos, reason="macOS only") +def test_timezone_offset_str_for_date(): + """Test Timezone.offset_by_date method.""" + tz = Timezone("America/New_York") + assert tz.offset_str_for_date(datetime.datetime(2021, 1, 1)) == "-05:00" + assert tz.offset_str_for_date(datetime.datetime(2021, 6, 1)) == "-04:00" + + def test_format_offset(): """Test the formatting of time offset to string.""" # Testing UTC -4 hours (in seconds: -4 * 3600 = -14400)