Guide
memories_history.json explained: every field in Snapchat's Memories file
memories_history.json is the file in a Snapchat data export that lists your Memories. It sits in the export's json/ folder and holds one entry per Memory, with the date it was taken, whether it's a photo or video, the location if one was recorded, and download links. It does not contain the photos and videos themselves; when you request Memories, those arrive in the export's memories/ folder. The file is how you get the original dates and places back onto those photos.
The shape of the file
It is a single object with a "Saved Media" list. A synthetic entry:
Field by field
| Field | What it holds | Notes |
|---|---|---|
Date | When the Memory was taken, as YYYY-MM-DD HH:MM:SS UTC | Always UTC. Convert to your own time zone when displaying |
Media Type | Photo or video | The wording varies between exports ("Image", "Video", "PHOTO"), so don't rely on exact values |
Location | Latitude, Longitude: <lat>, <lon> | Can be empty. A value of exactly 0, 0 usually means no location was recorded |
Download Link | A link to fetch that Memory from Snapchat | Reported to stop working after about a week |
Media Download Url | Another link form for the same Memory | Same caveat |
Why the download links stop working
Third-party guides, including Redact's, report that these per-Memory links stop working after about a week. Snapchat's help page doesn't state a lifetime for them. Tools and scripts that fetch Memories by following these links need fresh links, which means a fresh export.
If you requested Memories in your export, you usually don't need the links at all. The files are already in memories/.
How entries connect to files in memories/
This is the awkward part. Files in memories/ are named like:
2022-06-25_<uuid>-main.jpgor-main.mp4, the photo or video2022-06-25_<uuid>-overlay.png, the caption layer, when there is one
Nothing in a memories_history.json entry names its file. What they share is the date. A reliable way to match them:
- Group the entries by day, using
Date. - Group the
-mainfiles by day, using the date at the start of the file name or the timestamp stored with the file. - On a day where both counts are the same, sort both by time and pair them in order.
- On a day where the counts differ, don't guess. Leave that day's files without a location.
This is the approach Lidly takes. It prefers a missing location over a wrong one. Restoring date and location explains what that means when you save to your camera roll.
What you can do with the file
- Read it. Any text editor will open it, though a large one is easier in a JSON viewer.
- Count your Memories. The number of entries is roughly how many Memories Snapchat has listed for you. The number of
-mainfiles inmemories/can differ slightly, for example when an entry has no file. - Restore metadata. Combine
DateandLocationwith the matching file and write them into the photo's metadata, or save it to Photos with them attached.
Opening it with Lidly
Lidly reads memories_history.json straight from the ZIP when you import your export. You get your Memories in a timeline by date, with captions back on, and can save any of them to your camera roll with the original date and recorded location. Lidly reads only what's in your ZIP and never follows the download links; it makes no network requests at all.
Common questions
My memories_history.json is there but memories/ is empty or missing
The export was requested without Memories media, or some of it is in other parts of a split export. Check every ZIP part; see multi-part exports. If the media really isn't there, request again with Memories on. Which toggles to choose explains.
Can I just open the links in a browser?
While they work, possibly. Once they've stopped working, no. Request a new export instead; see download not arriving or link expired.
Is there a chat equivalent?
Yes: chat_history.json lists saved chat messages and connects them to files in chat_media/ through a media ID. What's inside the export covers it, and viewing chats by person shows what it makes possible.