Takeout JSON
EN

supplemental-metadata.json Meaning: What Is in the File

supplemental-metadata.json is the Google Takeout file with one photo's date taken (photoTakenTime), GPS (geoData) and caption. Every field and name variant.

supplemental-metadata.json is the small text file Google Takeout puts next to each photo and video, for example IMG_5512.HEIC.supplemental-metadata.json. It holds what Google Photos knew about that file: the date it was taken, the GPS location, the caption and the original filename. It is not a virus and not a broken photo. Keep it until its date and location are written into the photo, because most apps never read it.

Since 2024 it is the name for the sidecar that older exports called IMG_5512.HEIC.json. The contents are the same. Only the name is longer. On Windows, where File Explorer hides the .json ending, people often call these files "supplemental JPEG data"; what is supplemental JPEG data answers that question and whether you can delete them.

What "supplemental metadata" means

Metadata is information about a photo: when, where, which camera. "Supplemental" means extra. It is the information that Google Photos kept in its own database, not inside the image file.

Many photos carry a date inside them already, in their EXIF data. Screenshots, images saved from chats, scans, and any photo whose date or place you corrected in Google Photos do not. For those, the supplemental metadata file is the only record of when and where the photo was taken. What are the JSON files in Google Takeout has the longer background.

What is inside the file

Open one in Notepad (Windows) or TextEdit (Mac). It is plain text. A shortened example:

{
  "title": "IMG_5512.HEIC",
  "description": "Grandma's 80th",
  "creationTime": { "timestamp": "1690213412", "formatted": "Jul 24, 2023, 3:43:32 PM UTC" },
  "photoTakenTime": { "timestamp": "1689438227", "formatted": "Jul 15, 2023, 4:23:47 PM UTC" },
  "geoData": { "latitude": 48.8584, "longitude": 2.2945, "altitude": 35.0 },
  "geoDataExif": { "latitude": 48.8584, "longitude": 2.2945, "altitude": 35.0 }
}
  • title: the original filename. Useful when Takeout shortened the real filename.
  • photoTakenTime: the date the photo was taken, as Google Photos showed it, including a date you fixed by hand. This is the date to use. More in photoTakenTime explained.
  • creationTime: when the file was uploaded to Google. For a scan of an old print, this can be decades after the real date.
  • geoData: the location as Google Photos knew it, including a place you set by hand.
  • geoDataExif: the location that was in the file's own EXIF when it was uploaded.
  • description: your caption, if you typed one.
  • people and favorited: tagged names and starred photos, when present.

The timestamps are Unix seconds, counted from 1 January 1970, in UTC. A photo with no location has 0.0 for both latitude and longitude. Treat that as "no location", not as a real place. See restoring GPS from Takeout.

What does jpg.supplemental-metadata.json mean?

The part before .supplemental-metadata.json is the full name of the photo it belongs to. IMG_2034.jpg.supplemental-metadata.json belongs to IMG_2034.jpg. VID_0412.mp4.supplemental-metadata.json belongs to the video VID_0412.mp4. The .jpg in the middle is not a second extension of the JSON file. It is part of the photo's name. The two files must stay in the same folder for any tool to pair them.

Why the name changed in 2024

For years the sidecar for IMG_5512.HEIC was IMG_5512.HEIC.json. Every script matched on it. In 2024 Google switched to IMG_5512.HEIC.supplemental-metadata.json. Same fields, longer name. An old export on a drive somewhere uses the old name, and a folder that mixes both exports contains both.

Anything that looks for <photo>.json now finds nothing. Some tools report "no sidecar found" for every file. Others fall back silently to the file date, which is the download date, so the photos come out wrong with no error. That silent failure is behind many "the fix did not work" posts.

Why some names are cut off

Google cuts the part of the sidecar name before .json at 46 characters, so the whole name is at most 51 characters. With the old short .json suffix that rarely mattered. With .supplemental-metadata added, any photo name longer than 24 characters loses part of its suffix:

PhotoSidecar in the export
IMG_5512.HEIC (13 characters)IMG_5512.HEIC.supplemental-metadata.json
20240311_183022.jpg (19)20240311_183022.jpg.supplemental-metadata.json
PXL_20240311_183022711.jpg (26)PXL_20240311_183022711.jpg.supplemental-metada.json
PXL_20240311_183022711.MP.jpg (29)PXL_20240311_183022711.MP.jpg.supplemental-met.json
Screenshot_20240311-183022_WhatsApp.jpg (39)Screenshot_20240311-183022_WhatsApp.jpg.supple.json

The file is not damaged. Only the name is short. The reliable rule for a script: the sidecar name without .json is the start of <photo name>.supplemental-metadata. Very long filenames can be cut into the photo name itself, which is why the title field is worth reading. Why Takeout files have strange names sums up all the naming rules.

Where the (1) goes

Google Photos allows two files with the same name, and Takeout has to put them in one folder. It adds a counter to the second: IMG_5512.HEIC and IMG_5512(1).HEIC. The counter on the sidecar moves to the end, just before .json: IMG_5512.HEIC.supplemental-metadata(1).json. In old exports it was IMG_5512.HEIC(1).json.

So a tool must take the photo name, remove the (1), build the sidecar name, and put the (1) back just before .json. Combined with the 46-character cut, this produces the hardest names to match.

Edited copies have no sidecar of their own

Photos edited inside Google Photos come out as two files: IMG_5512.HEIC and IMG_5512-edited.HEIC. There is usually one sidecar, for the original name. A careful tool strips -edited and reuses the original's sidecar. More in Takeout duplicates and edited versions.

Can I delete supplemental-metadata.json?

Yes, but only after its date and location are inside the photo. If you delete the files first, that information is gone, and the only way back is a new Takeout export. The safe order: merge the data into the photos, check a few, then delete. If you import into Immich or PhotoPrism, keep them until that import is done, because those tools can read the sidecars. Can I delete JSON files from Google Takeout? has the steps.

Which apps read it?

Apple Photos, Windows Photos, File Explorer, Finder and phone galleries do not. They read only what is inside the image file. Google Photos does not read it either if you upload the folder again. Immich (through immich-go), PhotoPrism and some other self-hosted tools can read Takeout sidecars during import.

How to put the data back into the photo

Writing the sidecar data into the photo's EXIF is called merging.

With free command-line tools. exiftool can do it, once per naming style:

exiftool -r -d %s -tagsfromfile "%d/%F.supplemental-metadata.json" "-DateTimeOriginal<PhotoTakenTimeTimestamp" -ext jpg -ext heic -overwrite_original .
exiftool -r -d %s -tagsfromfile "%d/%F.json" "-DateTimeOriginal<PhotoTakenTimeTimestamp" -ext jpg -ext heic -overwrite_original .

These commands miss the cut-off names and the moved (1) counters. The exiftool guide shows how to catch them. GooglePhotosTakeoutHelper (GPTH Neo) and immich-go have the matching built in and are free.

With a desktop app, on Windows or Mac. Takeout JSON Metadata Fixer handles every case above without configuration:

  1. Install it from the Microsoft Store, the Mac App Store or the site.
  2. Choose the Takeout zips or the unpacked folder.
  3. Choose an output folder, run a dry run, then run.

For each photo it tries the 2024 name, the old name, the moved (1) counter, and finally the cut-off names. Edited copies borrow the original's sidecar. It writes the date and GPS into the file and reports how many photos matched a sidecar. The first 500 photos are free.

Frequently asked questions

What is supplemental metadata JSON in Google Takeout?

It is the sidecar file with one photo's date taken, location, caption and original name, written by Google Takeout next to the photo.

What is the supplemental metadata JSON file's meaning for my photos?

Without it, most of your photos would have no real date after the export. It is the record Google kept outside the image.

Is supplemental-metadata.json different from the old .json?

No. The fields are the same: title, photoTakenTime, creationTime, geoData, geoDataExif and so on. Only the filename changed.

My photo has no supplemental-metadata file. Why?

Live Photo clips often have none, some old uploads have none, and a cut-off name can look missing. Why some photos have no JSON file lists the cases.

Can I rename the sidecars back to the old style?

Yes, and it makes old scripts work again. Do it on a copy first.

Using ExifTool with these files? ExifTool and supplemental-metadata.json shows the patterns that match.