What is in a Takeout JSON file
For IMG_1234.jpg Google adds a file such as IMG_1234.jpg.supplemental-metadata.json (exports before 2024: IMG_1234.jpg.json). The fields that matter:
| Field | Meaning | Used here |
|---|---|---|
title | the original file name | to match files whose names were shortened |
photoTakenTime.timestamp | when the photo was taken, seconds since 1970 in UTC | the date written |
creationTime.timestamp | when it was uploaded to Google Photos | only if the taken time is missing |
geoData | latitude, longitude, altitude as shown in Google Photos (0,0 means none) | GPS for JPEG and HEIC photos without a location |
geoDataExif | the location that was in the original file | fallback for GPS |
description, people, url | caption, face tags, link | not written into the photos |
Album folders also contain a metadata.json (album title and date). It is not a photo's JSON file and is kept as it is.
How Google names the JSON files
| Photo | JSON file | Why |
|---|---|---|
IMG_1234.jpg | IMG_1234.jpg.supplemental-metadata.json | current naming |
Screenshot_20231027_123303_Facebook.jpg | …Facebook.jpg.supple.json | JSON names are cut to 51 characters |
PXL_20230809_203449253.LONG_EXPOSURE-02.ORIGINA.jpg | …LONG_EXPOSURE-02.ORIGIN.json | long photo names are cut too (to 51 characters) |
IMG_1234(1).jpg | IMG_1234.jpg.supplemental-metadata(1).json or IMG_1234.jpg(1).json | second file with the same name in one folder |
IMG_1234-edited.jpg | none — uses IMG_1234.jpg's JSON | edited copy |
IMG_4488.MP4 | none — uses IMG_4488.HEIC's JSON | Live Photo video |
The tool tries these rules from the most literal to the loosest, inside the same folder across all ZIP parts, and says in the report which rule matched each file.
Applying the metadata
- Drop all ZIP parts above. You see how many photos were matched and which were not.
- Pick a time zone and the options, then Fix and save.
- Extract the result. JPEG and HEIC photos carry the date and location in EXIF. MP4 and MOV videos carry the date in their header. Every file carries it as its file date.
Frequently asked questions
Can I just delete the JSON files?
Only after their dates are applied. Photos without their own EXIF date — screenshots, WhatsApp images, edited copies, many videos — have their real date only in the JSON file. The fixed archive leaves the JSON files out by default; tick Keep the .json files to keep them.
Why does a photo have no JSON file?
Edited copies and Live Photo videos never get one (the tool gives them the original's date). Others are usually in a ZIP part you did not add, or Google skipped them. The Not matched tab lists them.
What happens to photos and videos without a JSON file?
If the file name holds a date, that date is used: IMG_20190704_150000.jpg, VID_20190101_101010.mp4, PXL_20190809_203449253.jpg (Pixel, in UTC), Screenshot_20190305-101010.png, 20190704_150000.jpg (Samsung) and WhatsApp's IMG-20190812-WA0003.jpg. Names are read in the time zone you picked. A name date only fills a file that has no date inside — camera data is never replaced by it — and WhatsApp names give only the day, so those get a file date (noon) and nothing inside. The report marks them "from name"; untick the option to leave such files as they are. Files without a JSON file and without a date in the name keep their bytes and their ZIP date.
Which files get their date written inside?
JPEG photos get the date (and, if missing, the location) written into their EXIF data, the place photo apps read first. HEIC photos get the same in their EXIF block when they have one, as iPhone photos do; a HEIC without an EXIF block gets the file date only. MP4, MOV, M4V and 3GP videos get the date in their movie and track headers — the "creation time" video apps read — changed in place, without re-encoding. PNG, GIF, WebP, AVI, MKV and other formats are not modified: they get the date as their file date (the "modified" date) when you extract the fixed ZIP.
Which time zone are the dates in?
Google stores the moment a photo was taken in UTC. The tool converts it to the time zone you choose — your computer's zone by default — and also writes the UTC offset (OffsetTimeOriginal) so apps can show the exact moment. Video headers store UTC by definition, so videos get the exact moment and apps show it in their own zone. Photos taken while travelling will show the time in the zone you picked, not the local time of the trip.
Are my photos uploaded?
No. The ZIP files are read by your browser on your own computer and the fixed archive is written there too. Nothing is sent to a server — you can disconnect from the internet after the page has loaded and it still works.