Takeout JSON

Why Do My Google Takeout Files Have Such Strange Names?

Truncated sidecar names, (1) counters in odd places and 46-character cut-offs. Here is what the naming actually means.

Google's naming looks arbitrary, but the rules are consistent once you see them.

Older exports named a sidecar IMG_3391.HEIC.json. From 2024 the name became IMG_3391.HEIC.supplemental-metadata.json. On top of that, Google cuts sidecar names off at 46 characters, so a Pixel photo called PXL_20230721_092530123.jpg ends up paired with PXL_20230721_092530123.jpg.supplemental-m.json. And when two photos share a name, the counter goes in a different place on the sidecar than on the photo: IMG_3391(1).HEIC pairs with IMG_3391.HEIC.supplemental-metadata(1).json.

This is exactly why hand-written exiftool commands and older scripts miss files. A pattern built for one of these styles skips the others silently. The photo is left untouched and nothing tells you.

The app was built around these cases specifically. It matches all three naming styles, the 46-character truncation and the counter placement, then writes the date and GPS into each photo. At the end it lists every file it could not pair, so you get a real answer instead of a folder you have to spot-check. The first 500 photos are free, which is enough to confirm the matching on a folder you know.