Google Takeout JSON Files, Explained
You exported your library from Google Photos and got thousands of mysterious .json files mixed in with your pictures. They look like clutter you should sweep away. They're not junk — they hold your real photo dates, and if you delete them before merging, those dates are gone.
What the JSON sidecar files contain
So what are the JSON files in Google Takeout? Each photo in your export often ships with a small JSON "sidecar" file sitting next to it. Inside is the metadata Google kept in its own database: photoTakenTime, a Unix timestamp of when the photo was really taken; creationTime; any description or caption you wrote on the photo; and often a geoData block with the GPS latitude and longitude.
Meanwhile, the image file itself frequently carries export-day dates. That's why a Takeout library imported anywhere else piles up on the day you downloaded it: the real dates are sitting right there in the sidecars, but nothing reads them automatically.
The naming mess
If every sidecar followed one naming rule, matching them to photos would be trivial. They don't. Older exports name the sidecar IMG_2034.jpg.json. Newer exports use IMG_2034.jpg.supplemental-metadata.json. And long filenames get truncated inside the JSON name — Google cuts around the 46-character mark, so the sidecar's name may not contain the photo's full filename at all.
Duplicates are the classic trap. When your export contains both IMG_2034.jpg and a duplicate, the sidecar for IMG_2034(1).jpg is usually named IMG_2034.jpg(1).json — the (1) moves position, landing after the extension instead of before it. Tools that match names naively pair the wrong sidecar with the wrong photo, silently, and you end up with confidently wrong dates instead of obviously missing ones.
Can I just delete the JSON files?
No — not until their metadata has been merged into the photos and verified. Until then, the sidecars are usually the only place your real taken dates, captions, and GPS data exist; delete them first and there's nothing left to merge. Once you've written the metadata into the image files and spot-checked a sample — do the dates match what you remember? — the sidecars have done their job and are safe to remove.
How to merge the metadata back
Free power-user route: ExifTool can be scripted to read each sidecar and write photoTakenTime into the photo's EXIF date fields. It's free and reliable, and it's technical — the matching logic for truncated names and duplicates is on you. We've collected the commands in our ExifTool batch guide.
Free open-source route: Google Photos Takeout Helper (GPTH) is a free, open-source tool built for exactly this job. You run it locally on your extracted export.
Paid desktop fixers exist too, with friendlier interfaces than a terminal, typically as paid installs.
And it's the problem we're building PhotoDate around: open your extracted Takeout folder in the browser and it matches sidecars to photos — including the duplicate and truncation cases — automatically. Nothing uploads; your photos never leave your computer. Early access is free.
Frequently asked questions
What is supplemental-metadata.json?
It's the sidecar file newer Google Takeout exports attach to each photo, named like IMG_2034.jpg.supplemental-metadata.json. It contains the metadata Google stored in its database: the real taken date (photoTakenTime), creation time, your description, and often GPS coordinates. Older exports use the shorter IMG_2034.jpg.json naming for the same thing.
Can I delete the JSON files in Google Takeout?
Not until their metadata has been merged into your photos and verified. The sidecars are usually the only place your real taken dates, captions, and GPS data survive the export. Once you've merged them and spot-checked the results, they're safe to remove.
Why does Google put photo dates in JSON files instead of the photos?
Google Photos keeps dates, descriptions, and location data in its own database rather than rewriting your image files. When Takeout exports your library, that database metadata comes out as separate JSON sidecars, while the image file itself frequently carries export-day dates.
Which JSON field has the real photo date?
photoTakenTime.timestamp. It's a Unix epoch value recording when the photo was actually taken, and it's the field to write into the photo's EXIF date-taken metadata so every app sorts it correctly.
Buried in Takeout JSON files?
Join the free early access and merge the sidecar dates back into your photos, privately, in your browser.
Join free early access