Takeout JSON

immich-go vs Takeout JSON Metadata Fixer: When You Need Which

immich-go uploads a Google Takeout into an Immich server and is the right tool for that. Takeout JSON Metadata Fixer writes the metadata into the files themselves. They solve different problems, and sometimes you want both.

If your destination is Immich, use immich-go. It was written for that, it is free and open source, and it does things a general fixer cannot, like creating your albums on the server and tagging the people Google recognised. This page is not going to talk you out of it.

The comparison matters because the two tools do different things, and people reach for the wrong one. immich-go moves your library into Immich and hands Immich the metadata. Takeout JSON Metadata Fixer writes the metadata into the photo files and leaves you with a folder that works anywhere. Which one you need depends on where the photos are going, and whether they will ever go anywhere else.

What immich-go does

immich-go is "an open-source tool designed to streamline uploading large photo collections to your self-hosted Immich server." It is licensed under the AGPL. You download a single binary for Windows, macOS, Linux or FreeBSD; no NodeJS, no Docker. It is a command-line tool, and its own installation guide lists "basic command line knowledge" as a prerequisite. You need a running Immich server and an API key.

Its from-google-photos command reads the Takeout, either the zips or an extracted folder, and runs what its docs call a "puzzle solver" to match each media file to its JSON, because "Google Photos has a notoriously complex way of naming files, especially when you have edited photos, bursts, or duplicates." From the JSON it takes the capture date, GPS coordinates and description and applies them to the asset in Immich. With --sync-albums it recreates your albums. With --people-tag it creates people/Name tags. It can import archived, trashed and partner-shared photos on request, upload files that matched no JSON with --include-unmatched, skip files already on the server by checksum, and stack RAW+JPEG pairs and bursts.

What the docs do not describe is writing any of that into the file. The date and GPS go to the Immich asset. The JPEG itself, as far as the documentation says, is uploaded as it came out of Takeout.

What Takeout JSON Metadata Fixer does

It reads every sidecar and writes the date, time and location into the photo or video itself, handling the truncated names, (1) duplicates, edited copies and UTC timestamps along the way. Then it organises: renames with date and place, sorts into year/month or place folders, converts HEIC to JPG with the metadata kept, keeps Live Photo pairs together, converts old AVI and MOV to MP4, and lets you set the date and place by hand where there was no JSON. It is a desktop app with no command line, it runs offline with no account, and the first 1000 photos are free.

It does not talk to Immich. It produces a clean folder. What you do with the folder is up to you.

Side by side

immich-goTakeout JSON Metadata Fixer
PriceFree, open source (AGPL)First 1000 photos free; Premium USD 19.99 once
InstallDownload a binary from GitHub releases; needs a running Immich server and API keyMac App Store, Microsoft Store, Windows installer, .deb / .rpm
Needs the command lineYesNo
Runs offline, photos stay on your computerUploads to your own Immich server, wherever that isYes, nothing leaves the machine
Truncated sidecar names and (1) duplicates"Puzzle solver" matches edited photos, bursts and duplicates; truncated names not named in the docsBoth built in
Edited copies with no sidecar of their ownHandled by the puzzle solverBuilt in
Writes date and GPS into the fileNot described; metadata is applied to the Immich assetYes, EXIF in JPG, HEIC, PNG and videos
HEIC to JPG with metadata keptNoYes
Renames with the placeNoYes
Folders by placeNo (albums in Immich instead)Yes: year/month, year, or by place
Sets date and place by handNoYes, per photo or folder
Albums and people tags into ImmichYesNo
LanguagesNot statedEnglish, German, French, Spanish, Italian, Portuguese (Brazil), Japanese, Korean, Chinese (Simplified)
Windows / Mac / LinuxAll three plus FreeBSDAll three

When you need immich-go

You run Immich and you want your Google albums, descriptions and people tags to land there. Nothing else does that. It handles very large libraries, it can resume, it avoids re-uploading what is already on the server, and it reads from the zips directly, extracted or not. If Immich is the final home of your photos and you are comfortable typing a command with a server address and an API key, this is the tool, and it costs nothing.

When you need Takeout JSON Metadata Fixer

The photos are going somewhere that reads EXIF and not a database. Apple Photos, Windows, Lightroom, a Synology or QNAP NAS, a USB drive, an Android phone, or a plain folder you intend to keep for twenty years. None of those can ask Immich what the date was. The date has to be in the file.

You want the files themselves to make sense: named by date and place, sorted into folders, HEIC converted so a Windows PC opens them. immich-go does not touch the files.

You have photos with no JSON and want to fix them by hand, or you want to see and check the result before it goes anywhere.

You do not want a terminal.

When you want both

This is more common than it sounds. Run Takeout JSON Metadata Fixer first, so every file carries its own date and GPS. Then upload the result to Immich with immich-go's from-folder command, or with the Immich app. Immich reads the EXIF it finds. The benefit is that if you ever leave Immich, or restore from a backup of the raw files, the dates are still there. The cost is that you lose the Google album and people mapping that from-google-photos would have given you, unless you also keep the original Takeout and run immich-go against it for albums alone.

If you already imported with immich-go and some photos came in with no location, why immich-go is missing geotags explains the two causes. For the whole Immich path, from export to timeline, see Google Photos export to Immich.

For the other tools in this space, see Google Takeout metadata tools compared and GooglePhotosTakeoutHelper vs Takeout JSON Metadata Fixer.

Checked on 18 September 2026: immich-go claims are from the README, installation guide, technical details and upload commands overview in the simulot/immich-go GitHub repository, and its licence from the repository listing. Takeout JSON Metadata Fixer claims are from our own listing copy for version 1.5.1.