Takeout JSON

Google Photos to a Synology NAS With Correct Dates

How to move a Google Takeout export onto a Synology NAS so Synology Photos shows the right dates, with a folder layout that stays useful.

You copied your Takeout folder to the NAS, opened Synology Photos, and the timeline is a wall of photos on the copy date. There are thousands of .json files mixed in, and the album folders have duplicated half your library.

The NAS is doing what it is told. The files need fixing before they go on it.

How Synology Photos dates a photo

Synology Photos indexes each file and reads the date from EXIF DateTimeOriginal for images and from the container metadata for videos. If neither is present, it uses the file's modified time. It ignores Google's .json sidecars and lists them as unsupported, or hides them.

Copying files over SMB or through File Station sets the modified time to the copy time on many setups, and the unzip already did that on your computer. So any photo whose EXIF was missing now shows the day you copied it.

The same applies to Photo Station on older DSM, and to any other indexer you point at the share, such as Plex or Immich running in Container Manager.

Do the metadata work on your computer first

Your NAS is slow at anything that touches tens of thousands of small files. Do the fixing on your desktop, then copy a finished folder across once.

Unzip all Takeout parts into one folder. Then write the sidecar dates into the files. With exiftool:

exiftool -r -d %s -tagsfromfile "%d/%F.supplemental-metadata.json" \
  "-DateTimeOriginal<PhotoTakenTimeTimestamp" "-FileModifyDate<PhotoTakenTimeTimestamp" \
  "-GPSLatitude<GeoDataLatitude" "-GPSLatitudeRef<GeoDataLatitude" \
  "-GPSLongitude<GeoDataLongitude" "-GPSLongitudeRef<GeoDataLongitude" \
  -ext jpg -ext heic -ext png -overwrite_original .

Repeat for videos with the QuickTime date tags, and handle truncated and (1) sidecar names separately. The full procedure is in the exiftool guide. GooglePhotosTakeoutHelper, a free script, does the matching and can also sort into year folders.

Takeout JSON Metadata Fixer does this as a desktop app on macOS, Windows and Linux.

Select the Takeout zips. The app writes the real date and GPS into each photo and video, sets file dates to match, and sorts the output into the folder layout you choose. It can write straight to a mounted network share, but it is faster to write to a local drive and copy the finished tree to the NAS afterwards. The first 500 photos are free; unlimited is a one-time $9.99.

Choosing a folder layout for a NAS

Synology Photos does not need a structure; it builds its timeline from dates. But you will browse the share from a computer too, and a good layout makes backups and future moves easier.

Year then month works for most people: 2019/07-July/2019-07-14-1105_Lisbon.jpg. It is what the app's "Year/Month" template produces. Every folder stays a manageable size, and finding a trip means opening two folders. Year only gives you folders with thousands of files. Year, month and day gives you hundreds of tiny folders. See organizing photos by year and month folders for the tradeoffs.

Put the tree under the shared photo folder if you want the whole family to see it in Synology Photos, or under your personal space, homes/yourname/Photos, if it is yours alone. Do not put it in both.

Skip the album folders from Takeout. Each is a copy of photos you already have in the year folders. Synology Photos has its own albums, which you can rebuild from the timeline, and a folder full of duplicates makes every backup twice as large. If you organize with the app it will not write the same source file twice into one destination, which strips most album copies out on the way.

Copying to the NAS

Copy the finished tree in one go. On a Mac, drag it onto the mounted share in Finder. On Windows, use Explorer or robocopy with /COPY:DAT to preserve timestamps. From Linux, rsync -a keeps dates. Over gigabit, a 200 GB library takes about half an hour; over Wi-Fi it takes all night, so plug in.

If you would rather skip the network, put the tree on a USB drive and plug it into the NAS. Then use File Station to copy it into place. Copying from USB on the NAS itself is usually the fastest option for large libraries. We cover the USB step in moving photos to a USB stick and keeping dates.

Indexing

Synology Photos indexes new files in the background. With a large library that takes hours and slows the NAS. Leave it overnight. When it finishes, open the timeline and scroll to an old year. If photos show their real dates there, the metadata went in correctly. If a batch shows the copy date, check those files with exiftool for a missing DateTimeOriginal.

You can force a re-index from Synology Photos settings if the timeline does not update. Deleting the hidden @eaDir folders forces thumbnails to regenerate, which is rarely needed.

HEIC on Synology

Synology Photos displays HEIC files, but only on models with the Advanced Media Extensions package, which requires signing in with a Synology account. If your model does not support it, or you would rather not, convert HEIC to JPG before copying. The app can do this with the metadata carried over. See HEIC to JPG from Takeout.

Frequently asked questions

Will Synology Photos read the GPS?

Yes. It reads EXIF GPS and shows photos on the map view. Photos that had no real location in Takeout will simply not appear there.

Can I keep the JSON files on the NAS?

You can, but Synology Photos will not use them and they clutter every folder. Once the dates are inside the files, delete them.

Should I use Synology Photos or run Immich on the NAS?

Either. Both read dates from the file, so the preparation is the same. Immich has better search and face recognition; Synology Photos needs no setup. Some people run both on the same folder.

My videos are right but the photos are wrong, or the reverse. Why?

Photos and videos store dates in different places. A tool that only wrote EXIF fixed the photos. A tool that only set file dates fixed nothing that Synology reads from metadata. Check each with exiftool.