FixMyTakeout

Album folders in a Takeout export: the same photo three times

A photo that is in two albums is exported three times: once in its Photos from 2022 folder and once in each album folder, each copy with its own JSON. Import the export as it comes and, unless your photo app removes duplicates itself, your library can hold every album photo twice or more. Drop the album folders and you lose the albums.

As at 29 September 2026.

Year folderPhotos from 2022 (or Fotos von 2022, Foto da 2022)
Album folderNamed after the album, a sibling of the year folders
Album's own JSONmetadata.json, localized; not a photo's

Year folders and album folders

The original GooglePhotosTakeoutHelper recognizes a year folder with the pattern Photos from followed by a year from 1800 to 2099. GPTH_Neo widens the prefix to Fotos del, Fotos von, Foto da and Foto_s van; FixMyTakeout accepts those plus Fotos de and Photos de. Everything else at that level is an album folder, named as you named the album, including spaces and punctuation.

An album folder holds the album's own description file, metadata.json in an English-language account and métadonnées.json, Metadaten.json, metadati.json and so on in others. Its shape has changed over the years: old exports wrap everything in albumData, later ones put title, access, date and geoData at the top level, and 2025 exports can be as small as {"title": "basement finishing"}, sometimes with an enrichments list of narrative text and named locations and a sharedAlbumComments list. Because it has no photoTakenTime, FixMyTakeout knows it is not a photo's JSON and skips it, whatever it is called.

One photo, several copies

CopyFolderReported in
130917ad28385b5a-photo.jpgPhotos from 2022immich-go issue #380
130917ad28385b5a-photo.jpgAmsterdam 2022immich-go issue #380
130917ad28385b5a-photo.jpg1 anno fa (Italian for "one year ago")immich-go issue #380

The same export shows how the copies are spread across zip parts: that photo's JSON was in part 003 and the photo in part 004, and the album's metadata.json turned up in both part 001 and part 009. So an album folder is not even guaranteed to be whole inside one zip.

Sometimes an album folder holds nothing but JSON. GPTH_Neo issue #133, filed in July 2026, describes album folders containing only the sidecars, with the actual media living only in the year folder; the fix in 6.1.9 reattaches those orphan JSONs to year-folder files by title and capture year. FixMyTakeout leaves a JSON with no photo beside it alone; the year-folder copy has its own JSON and is fixed from that.

Layout from immich-go #380 and GPTH_Neo #133.

Untitled albums

An album you never named exports under a localized placeholder, often with a number: Sans titre(9), Unbenannt(109). GPTH_Neo keeps the list of placeholders for each language in its constants. immich-go's documentation notes the limit: "All untitled albums can be stored into the same folder. Therefore it's impossible to rebuild original albums." If you had many unnamed albums, expect their photos to arrive mixed together under one such folder.

Keep the albums, skip the second copies

FixMyTakeout keeps the folder layout exactly as exported, so Photos from 2022/ and Amsterdam 2022/ both appear in the output zips, and importers that turn folders into albums (the Immich CLI's --album flag, for one) still see the album names.

The option "Leave out album-folder copies of photos that are already in a Photos from year folder" removes the repeats. A file in an album folder is treated as a copy when a file with the same name and the same size in bytes exists in any year folder of the same export. The album folder itself, and any photo that exists only there, stays. With the option on, the summary shows how many copies were left out; with it off, every copy is fixed and written, so a photo in two albums comes out three times, each with the same date and place.

Which to choose: turn the option on when the output is going into a photo library, where each repeat is another item to scroll past or clean up later. Leave it off when the output is going to a plain drive or NAS folder and you want each album folder to be complete on its own.

Two things the option does not do. It does not compare the pixels, so two genuinely different photos that happen to share a name and a byte count would be treated as a copy, so leave the option off if that worries you. And it does not write album membership into the files; the folder is the album.

Check what was left out

  1. Before running, note how many files the summary reports and how many are album copies.
  2. After running, open fixmytakeout-report.csv and sort by file. With the option on, each name should appear once in a year folder; with it off, you will see the same name under each album's folder.
  3. Unzip a part and confirm the album folders are present and that a photo you know was in an album is in its year folder.