Each photo in a Google Photos Takeout export usually has a JSON "sidecar" with fields such as photoTakenTime.timestamp (seconds since 1970, UTC) and geoData (latitude, longitude, altitude). Matching the right JSON to the right photo is the hard part, because Takeout's file names are inconsistent:
IMG_1234.jpg.json– the classic form;IMG_1234.jpg.supplemental-metadata.json– used by newer exports;- Long names are cut short, e.g.
Screenshot_20190704-101112_WhatsApp_Business_M.jsonor…PORTRAIT.jpg.supplement.json; - Duplicates: the photo is
IMG_1234(1).jpgbut its JSON isIMG_1234.jpg(1).json; - Edited copies such as
IMG_1234-edited.jpghave no JSON of their own and use the original's; - Live/motion photo videos often share the still photo's JSON.
The fixer handles all of these, uses the title field inside the JSON to settle ambiguous truncated names, and ignores album files like metadata.json. The timestamp is written as local time of your computer (or UTC if you choose) with the matching EXIF offset tag.
How it works
- Download your Google Photos export from Google Takeout (one or more .zip parts).
- Open the fixer and select all the zip parts (or the extracted folder). JSON files are often in a different part than their photo – selecting all parts lets the tool match them.
- Click Fix metadata. You get a new ZIP with the same folders; your original files are not changed. A CSV report lists every file and what was done.
Everything runs in your browser: photos are not uploaded. The free version handles up to 500 files per run; the planned Pro version (not on sale yet) removes the limit and fixes video dates.