github Xentraxx/GooglePhotosTakeoutHelper_Neo v6.4.0

3 hours ago

New Features

  • Preserve Google Photos captions/descriptions in EXIF (native JPEG writer, consolidated ExifTool writes) — Takeout JSON sidecars carry each item's caption (the note typed onto a photo/video in Google Photos) in the description field, but GPTH previously only read these sidecars for photoTakenTime/GPS and never preserved the caption — once the sidecar was gone, so was the caption. extractAllFromJson/extractAllFromJsonCached (Step 4) now also capture description from the same combined JSON read used for date/GPS (no extra file I/O), subject to the same issue #139 own-sidecar guard so a caption is never borrowed from an unrelated photo's sidecar. MediaEntity gained a description field (mirroring gpsCoordinates: not serialized to progress.json, since it's cheap to re-extract on resume). Step 7 embeds the caption into EXIF ImageDescription (tag 0x010E), with routing that never spawns an extra ExifTool invocation for a caption: JPEG files are written natively with the built-in Dart writer (image package — no ExifTool call at all, even when ExifTool is installed; the write shares the file's single native metadata pass), and only fall back to ExifTool (queued into the file's existing tag batch) if the native write fails; all other formats (PNG, HEIC, videos) queue the caption into the file's single already-queued ExifTool write. An entity with only a caption and no date/GPS is no longer skipped by Step 7. Captions are embedded as UTF-8 bytes and survive alongside embedded thumbnails and JFIF headers (issue #132-safe). The XMP-dc:Description tag remains fully implemented but is currently not written (captions go to EXIF only); see README "Caption/Description Metadata Writing".

What's Changed

  • Preserve Google Photos captions/descriptions in EXIF/XMP by @nathanzm in #151

New Contributors

Full Changelog: v6.3.0...v6.4.0

Don't miss a new GooglePhotosTakeoutHelper_Neo release

NewReleases is sending notifications on new releases.