Takeout JSON
EN

ExifTool and supplemental-metadata.json: Why Your Command Skips Photos

Google renamed Takeout sidecars to .supplemental-metadata.json in 2024, so older ExifTool commands skip photos. The patterns that match, including cut-off names.

If your ExifTool command for Google Takeout runs but changes nothing, it is almost always the sidecar name. Around 2024 Google renamed the .json files from IMG_1234.jpg.json to IMG_1234.jpg.supplemental-metadata.json. Commands written before that use -tagsfromfile "%d/%F.json", find no file, print a warning and move on. Use "%d/%F.supplemental-metadata.json" instead, and handle the cut-off and duplicate names, which neither pattern matches.

The symptom

You run a command from a forum post and see lines like:

Warning: Error opening file - Takeout/Google Photos/Photos from 2019/IMG_1234.jpg.json
Warning: No writable tags set from Takeout/Google Photos/Photos from 2019/IMG_1234.jpg.json
    0 image files updated

ExifTool built the sidecar name from the photo name, looked for it, and did not find it. It does not search for similar names. Nothing was damaged, and nothing was fixed.

The sidecar names you will meet

PhotoSidecar%F pattern that matches
IMG_1234.jpgIMG_1234.jpg.json (before 2024)%d/%F.json
IMG_1234.jpgIMG_1234.jpg.supplemental-metadata.json%d/%F.supplemental-metadata.json
PXL_20240311_183022711.jpgPXL_20240311_183022711.jpg.supplemental-metada.jsonnone, the name is cut off
IMG_1234(1).jpgIMG_1234.jpg.supplemental-metadata(1).jsonnone, the counter moved
IMG_1234-edited.jpgnone, it shares the original'snone

Google cuts the sidecar name at 46 characters before .json. Any photo name longer than 24 characters is affected, which includes every Pixel photo (PXL_...) and many screenshots.

Step 1: Check which style your export uses

In the Mac or Linux terminal, in the folder that holds Takeout:

find Takeout -name '*.supplemental-metadata.json' | wc -l
find Takeout -name '*.json' ! -name '*.supplemental-metadata.json' | wc -l

On Windows, search File Explorer for supplemental-metadata in the Takeout folder. Exports can mix both styles if you combine old and new downloads.

Step 2: Use the matching pattern

For new exports:

exiftool -r -d %s -tagsfromfile "%d/%F.supplemental-metadata.json" "-DateTimeOriginal<PhotoTakenTimeTimestamp" "-FileModifyDate<PhotoTakenTimeTimestamp" -ext jpg -ext jpeg -ext heic -ext png -overwrite_original "Takeout/Google Photos"

For old exports, replace .supplemental-metadata.json with .json. For a mix, run both. A photo whose sidecar is missing under one name is simply skipped in that pass.

Step 3: Rename the cut-off and duplicate sidecars

For the rows in the table with "none", rename the sidecars to the full name first. The Bash script in ExifTool for Google Takeout (Step 3) does all three cases: it moves the (1) counter, restores cut-off names by matching the first 46 characters, and turns old-style names into new-style ones, so one pattern then fits every file. We tested it on a sample export with each case.

Edited copies need a separate pass that copies the date from the original; that is in the same guide.

Step 4: List what is still missing

exiftool -r -if 'not $DateTimeOriginal' -p '$Directory/$FileName' -ext jpg -ext jpeg -ext heic -ext png "Takeout/Google Photos"

What is left are usually photos with no sidecar at all, see some photos have no JSON.

Is the sidecar content different too?

No. Only the name changed. Inside, the fields are the same: photoTakenTime.timestamp for the date, geoData for the place, description for the caption. ExifTool reads them as PhotoTakenTimeTimestamp, GeoDataLatitude, GeoDataLongitude and Description. Supplemental-metadata.json explained goes through every field.

Skip the patterns entirely

Takeout JSON Metadata Fixer for Windows and Mac looks for every naming style Google has used, including the cut-off and (1) names, and falls back to matching by prefix when a name is truncated. It writes the date taken, GPS and file dates, and tells you at the end which files it could not match. You drop in the zip files; no unzipping, no patterns. The first 500 photos are free.

For general date edits with buttons instead of commands, see ExifTool GUI for Windows.