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.
- 1. Install it: npm i -g @immich/cli
- 2. Log in: immich login https://your-immich-server/api YOUR_API_KEY
- 3. Try it without uploading: immich upload --dry-run --recursive KeepMySnaps
- 4. Then for real: immich upload --album-name "Snapchat" --ignore "**/captions/**" --recursive KeepMySnaps
--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 from this tool carry their date but no location. And where a day's memories were taken far apart, no coordinate is written at all rather than a guessed one. The CSV in the ZIP marks every memory exact, approximate or blank.
If the times look a few hours out
Snapchat records every capture time in UTC, and that's what gets written. The order of your memories is always right, but the clock time on one can be off from your local time by your time-zone difference, and a snap taken close to midnight can land on the day either side.
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.