Moving them

How to move Snapchat memories to Immich with the right dates

Updated

Fix the dates before Immich sees the files. When a file carries no date of its own, Immich falls back to the earlier of the file's created and modified times, which for a Snapchat export is the day you downloaded it. Once the capture time is written inside each file, as EXIF in photos and in the MP4 header in videos, Immich reads it and every memory goes back to the year it came from.

What Immich reads

Immich runs every upload through exiftool and takes the first date it finds from a fixed list of tags. DateTimeOriginal is near the top of that list, which covers photos. CreateDate and MediaCreateDate come after it, and those are the MP4 header fields a video's capture time lives in. Only when none of them is there does it fall back to the file's own timestamps. That order is from Immich's source code, not a guess about its behaviour.

Uploading a whole library with the CLI

For thousands of files, Immich's command-line tool is more dependable than dragging a folder into a browser tab. It needs Node.js, and an API key you create under API Keys in your Immich account settings.

--album-name puts everything into one album as well as the timeline. --ignore leaves out the captions folder, which only exists if some video captions couldn't be drawn into their videos; those PNGs would otherwise show up in your timeline as transparent images. Avoid --album on its own here, since it names albums after folders and you'd get one called captions.

From the web or the phone app

Dragging the unzipped folder into Immich's web page works the same way for a smaller library, because the dates are inside the files rather than in how they were uploaded. On a phone, save the fixed files into your photo library and let the Immich app's backup pick them up.

Locations

Photos carry their GPS coordinates in EXIF, and Immich turns those into place names and pins on its map. Videos get their date and location written in too. The rare few that can't be told apart share their spot if they were taken in one place, marked approximate, and stay blank if not. The CSV marks every memory exact, approximate or blank.

If the times look a few hours out

Snapchat records every capture time in UTC. This tool writes each one on the clock of the place it was taken, worked out from its location, so a holiday snap shows the time it was there. A memory with no location borrows the zone of the one nearest in time. If times still look shifted in Immich, check the server's own time zone setting; the CSV names the zone each file was written in.

Fix them before Immich sees them

Dates, captions and locations back into every file, in your browser, with nothing uploaded. The first 500 files are free, so you can upload a test batch and check the timeline before doing the rest.

Or Synology Photos

Contact

Ask a person

Something broke, a payment went odd, or the FAQ didn’t cover it. Need to attach a screenshot? Email ask@keepmysnaps.com instead.