Captions and filters

Where did the captions on my Snapchat memories go?

Updated

They're in your export, just not on your photos. Snapchat composes everything you drew on a snap (the caption, the stickers, the drawings, the geofilter naming the town you were in) into a single transparent PNG, and ships it as its own file. So the photo comes out bare and the words sit in a file named -overlay.png right beside it.

How to spot it in your own archive

Open the memories folder and sort by name. You'll see pairs: something ending -main.jpg or -main.mp4, and immediately after it the same long id ending -overlay.png. Open one of those PNGs on its own and you'll see your caption floating on a checkerboard, transparent everywhere else.

That pairing is the one part of a Snapchat export that is completely unambiguous. Both files carry the same id, so a caption can always be matched to exactly the right photo, unlike the dates and locations, which have no such link.

Photos are the easy half

Compositing a transparent PNG onto a JPEG is a solved problem. The only trap is scale: the overlay is the size of the phone screen, not the photo. A 720x1280 snap routinely ships a 720x1384 overlay, so anything that stretches the overlay to fit the photo exactly squashes your caption by however much the two differ. It has to be scaled to cover and centred instead.

Videos are the hard half

An MP4 has nowhere to keep a picture. The only way to make a caption part of a video is to decode every frame, draw the overlay onto it, and encode the whole thing again. That's why most tools quietly drop video captions altogether. In a real export that can be two thirds of all your captions.

This site does the re-encode, in the browser, using the video encoder built into modern Chrome, Safari and Firefox. The audio track is copied across untouched rather than re-encoded, since it carries no caption. Where a browser has no encoder or a file won't decode, the PNG is saved in a captions folder beside the video rather than thrown away.

There's a rotation trap too

Snapchat records portrait but stores the frames landscape with a flag telling players to rotate. Decoded frames come out unrotated, so anything that composites without honouring that flag produces a video on its side with a portrait caption stretched across it. If you're doing this yourself with ffmpeg, check the rotation before you draw anything.

Putting it back

This site reads the JSON Snapchat shipped alongside your media and writes the real dates, coordinates and captions back into the files, in your browser, with no upload and no account. The first 500 files are free, so you can check the result before deciding whether it was worth $5.

How it works

Contact

Ask a person

A file the tool choked on, a payment problem, anything the FAQ doesn’t cover. It reaches one person and nothing is stored. Please don’t send photos: there’s nowhere to put them.