JJiimm RRoobbiinn SScchhlluupppp

What is actually inside a Snapchat Memories export

If you have asked Snapchat for your Memories, or you are about to, this is what arrives and what is wrong with it.

The short version
  • Two switches decide whether you get anything. "Export your Memories" starts switched off, and the date range has to be set to All Time or you get a window instead of an archive.
  • Not one file has a date on it. The real dates are in a separate index file, so a straight import stamps every year of them with today.
  • Your captions arrive as separate transparent images, next to the photos rather than on them.
  • The count will come up short, with nothing to explain it. That is usually My Eyes Only, which is never included, and it is not damage.

I am not neutral about this: I write it while building an app that does it. It is mentioned once more, at the very end, and everything on this page works without it.

None of it is written down anywhere. Most of it only becomes obvious after you have already dragged your whole archive into your photo library and found every single item dated today.

This is not a review of any app. It is a description of a file format, and everything in it can be checked against your own export.

Getting one

The export is free. It is on Snapchat's website rather than in the app: log in to your account there and find the My Data section.

Two settings on that page decide whether you get your memories at all, and both are easy to walk straight past.

"Export your Memories" is a toggle, and it starts switched off. It is one row in a list of a dozen data categories, and the counter at the top of the page reads 0 / 10 selected when you arrive. Submit without turning it on and you get your account details and your chat history and not one photograph.

And there is a date range. It offers 7 days, 30 days, 3, 6 and 12 months, 2 years, 3 years, and All Time. If you want everything you have ever saved, you have to choose All Time. Anything else limits the export to a window, which for someone trying to rescue everything is the difference between an archive and a slice of one, and nothing afterwards tells you that is what happened.

Switching the memories toggle on also reveals a shortcut: Request Only Memories, a button that skips the rest of the page and asks for the media alone. It still asks for a date range, and it is the fastest honest route if the memories are all you came for.

There is a third toggle for JSON files, described as being for data portability. It changes the format the index arrives in and not what you get, so either setting works.

Then you wait. Snapchat says the export "can take a long time (possibly hours or days) to complete", and says it strives to deliver within seven days. How long really does track how much you asked for: a full multi-year archive took about a day, while a deliberately tiny one came back almost immediately. Somebody with several hundred gigabytes should expect the slow end of that.

The email, when it comes, does not contain your memories. It sends you back to the website, and the path there is not obvious: My Data, then Your exports, then See exports, and download the package from that list. So what you are waiting for is a link to a page, not a file, and nothing downloads by itself.

The package is a set of zip files of a couple of gigabytes each, so a large account gets a lot of them. And they do not wait for you: the exports list carries a live countdown, and it runs for about three days. After that the export is gone and you start again from the request.

Confusingly there is a second clock. If your export arrives without the media in it, the index page carries a download link per memory instead, and Snapchat gives those seven days rather than three. Two mechanisms, two deadlines: the one that matters is the three days on the package.

Which is generous for a small export and tight for a big one. Several hundred gigabytes inside seventy-two hours means a machine left on and downloading, on a connection that can sustain it, so it is worth asking for the export when you have the three days rather than when you happen to think of it.

What you get

Roughly this, repeated across however many zip files it takes:

mydata~numbers.zip │ ├── memories/ │ ├── a photo .jpg, with no date on it │ ├── its caption -overlay.png, a separate transparent image │ └── a video .mp4, stored a quarter turn from how it plays │ ├── json/memories_history.json every date and place, for all of them ├── html/memories_history.html the same table, to read in a browser └── index.html a viewer for the whole export

That is the whole of it. Everything below follows from how those three things relate to each other, which is: barely.

The index comes twice, as JSON and as an HTML twin, and both carry exactly the same table. index.html at the top is neither: it is a small offline viewer for the export, and if memories are all you asked for it opens on its own FAQ page, which is disconcerting and harmless.

01Nothing has a date on it

This is the big one, and it is the reason a straightforward import goes wrong.

Not one exported file carries the date it was saved. No EXIF creation date on the photos, no creation date on the videos. As far as your computer is concerned, every one of them was made on the day you unzipped it.

The real dates exist. They are in memories_history.json, as a separate list. So the information was never lost, it was just put somewhere nothing on your phone or your computer knows how to read.

What the index knows
  • the date and time you saved it
  • where you were when you saved it, usually
  • whether it is a photo or a video
What the file knows

Nothing.

That split is the whole problem, and almost everything further down this page is a consequence of it.

Drop the folder into Apple Photos or Google Photos and you get all of it stacked on today, in one undated heap, in whatever order the file names happened to fall. That is not the import failing. That is the export.

02Your captions arrive as separate pictures

The text you typed on a snap, the drawings, the stickers, the time and temperature: none of it is on the picture.

They ship as their own transparent PNG, sitting next to the photo, ending -overlay.png. The photo underneath is the bare camera image with nothing on it.

So a memory that meant something because of what you wrote on it arrives as two files that no longer know about each other, and if you only look at the media you will conclude the captions are gone. They are not. Something has to lay them back down on the picture, in the right place, at the right size.

For video, the overlay is still a still image, and it has to be composited over every frame.

03Locations are in the index too, when they exist

Same story as the dates. GPS coordinates are in memories_history.json, not in the files.

Not every memory has one. Snapchat only recorded a location when location access happened to be on at the time, so an export usually has a majority with coordinates and a minority with none, and there is no way to work out the missing ones afterwards. Nobody wrote them down.

04Videos are stored a quarter turn from how they play

Most exported videos are stored in landscape with a rotation flag telling the player to turn them upright. Almost every one we sampled was like this.

If whatever you use to process them respects the flag, fine. If it does not, and a surprising number of tools do not, you get an archive of videos lying on their side. Always ask how a video will be presented, with its transform applied, rather than what its raw dimensions say.

05Sideways snaps were always sideways

Related, and the opposite conclusion.

Snapchat has no concept of a landscape photo. Every snap is captured and stored in an upright frame. If you took one with the phone turned sideways, it is stored sideways, and it looks sideways inside Snapchat too. You can check this yourself: find one in the app and it is on its side there as well.

This matters because it is the one that looks like the export broke something, and it did not. Nothing was lost. The right way up was never recorded by anyone, which is also why no tool can straighten these automatically. There is nothing to read. Somebody has to look at each one and decide.

06The count will not match, and nothing tells you why

memories_history.json lists more memories than the export delivers files for. Every large export we have seen does this.

Nothing in the export accounts for the difference. No note, no error, no list of what did not make it. You simply end up with fewer pictures than the index says you had, and no way to find out which ones.

The usual answer is My Eyes Only. Memories in the private vault are counted in that index and their files are never included in the export. So the gap is real, it is explainable, and it is not damage.

We got this wrong

We checked two of the affected days inside Snapchat, found nothing in the main Memories grid, and concluded the media was gone from Snapchat's side. It was not. It was in My Eyes Only, which we had not thought to open.

If you go looking into your own gap, check both the main grid and the My Eyes Only section before you conclude anything has been lost.

The practical consequence: if you want your private memories out, the export will not do it. You have to save them out of the app by hand, or move them back into your ordinary Memories before you request the export.

07The index does not say which file is which

This is the part that makes rebuilding harder than it looks.

Each row in memories_history.json has a date, a media type, and sometimes coordinates. It does not have a filename, an ID, or anything else that points at a particular file in the zips.

So putting the dates back means matching rows to files by inference: same day, same type, in order. It works, but it is fiddly, and it fails quietly rather than loudly. Bursts and duplicate saves are where it gets interesting, and the timestamps in the index are UTC while the app groups memories by your local day, so a memory taken late at night can appear to belong to the day before.

08Days are split across zip files

The chunks are chronological, which is convenient, but the boundaries fall wherever they fall rather than at midnight.

That means a single day's memories can be spread across two zips, and more awkwardly, a photo and its caption overlay can end up in different files. Anything processing one zip at a time will find a picture with no caption, or a caption with no picture, and if it is not looking for that it will happily record the memory as done.

If you are going to rebuild it yourself

It is very doable, and there are three rules worth having before you start.

Work on a copy. Keep the original zips untouched until you are certain, and do not delete anything from Snapchat until you have opened the results and confirmed they are really there. Every mistake below was one we made on a copy and would have been permanent on an original.

Assume silent success. The characteristic failure mode here is not a crash. It is a step that reports success and quietly does the wrong thing: GPS written to the wrong metadata convention so the southern hemisphere ends up in the north, a caption composited underneath the video instead of over it, a memory archived with no caption at all because its overlay was in the next zip along. Check the output, not the log.

Verify before you delete. Whatever you use, open the finished files, look at the dates, look at a few captions, and only then start clearing space.

Everything above is what you need to know to write your own, and it is all the hard-won part. The rest is ordinary file handling.

Whose problem this is

Worth being blunt, because the people this happens to are often not technical and the setup does not make it obvious: once the export leaves Snapchat, those files are in your keeping and nobody else's.

Nothing can tell you your archive is complete, because nothing outside Snapchat can see what Snapchat still holds. And an export is not a backup. An archive on one phone is one lost phone away from gone; an archive on one drive is one dead drive away from gone.

Put it in the cloud, and leave it there. iCloud Drive, Google Drive, Dropbox, whatever you already pay for: the point is somewhere that syncs and is backed up by somebody whose job it is, so that losing a device does not lose the archive. A drive is a fine second copy and a poor only one.

Then: open the files and check they are really there. Keep the original zips until you are certain. Have a second copy before you remove a first. And delete from Snapchat last, never first.

Questions people actually ask

Is the Snapchat data export free?

Yes. It is on Snapchat's website rather than in the app, under My Data, and it costs nothing. You do not need Snapchat+ or a storage plan to get your memories out.

How do I export my Snapchat memories?

Log in on Snapchat's website, go to My Data, and switch on “Export your Memories”, which starts switched off. Then set the date range to All Time, or you will only get part of your archive. You get an email when it is ready.

Why are all my exported Snapchat memories dated today?

Because not one exported file carries a date at all. Snapchat puts the dates in a separate index file called memories_history.json, not on the photos and videos themselves, so anything that imports the folder stamps everything with the day you unzipped it.

Where are the dates in a Snapchat export?

In memories_history.json, which comes with the export. It lists the date and time you saved each memory, and where you were when you saved it. Nothing on your phone or computer reads it automatically.

Why are my captions missing from my exported Snapchat photos?

They are not missing. Captions, drawings and stickers ship as their own transparent PNG files ending -overlay.png, sitting beside the photo instead of on it. Something has to lay them back down onto the picture.

Why does my Snapchat export have fewer memories than Snapchat says I have?

Usually because of My Eyes Only. Those memories are counted in the export's index but their files are never included, so the count comes up short with nothing to explain the difference. It is not damage, and it is not the export failing.

Can I export My Eyes Only memories from Snapchat?

No. Snapchat's export never includes the private vault, so no tool can rescue them. You have to save them out of the app by hand, or move them back into your ordinary Memories before you request the export.

How long do I have to download my Snapchat export?

About three days. The exports list on Snapchat's website shows a live countdown, and once it runs out the export is gone and you have to request a new one. That is tight if you have hundreds of gigabytes to pull.

How long does a Snapchat export take to prepare?

Snapchat says it can take hours or days, and in practice it tracks how much you asked for: a full multi-year archive took about a day, while a deliberately small one came back almost immediately.

Why are my exported Snapchat videos sideways?

Two different reasons. Most videos are stored rotated with a flag telling the player to turn them upright, and some tools ignore that flag. Separately, Snapchat has no concept of a landscape photo at all, so a snap taken with the phone turned is stored sideways and looks sideways inside Snapchat too.

What I am building

All of the above is why I ended up writing an app. It is called Amber, it runs on iPhone, and it does the part described on this page: reads the export, puts the real dates and places back onto the files, lays the captions down again, and tells you what the gap is and why rather than quietly showing you fewer memories than you had.

It is not finished and it is not on the App Store yet. There is a page about it here, if you want to see where it has got to.

Nothing on this page depends on that. Everything above is true whether you use it, write your own, or do the whole thing by hand, which is why it is written down here rather than kept as a selling point.