How to Download Your Own Private Photos and Videos
Updated 2026-09-09
If you have tried to save your own private posts, you have probably hit the same wall: paste the link into any downloader and nothing happens. That is not a bug, and no tool is about to solve it — a private post is not reachable by anyone who is not signed in as you. But there is a route that does work, and it is the one the platforms are legally obliged to keep open: ask them for your data, and they hand over your photos and videos. Here is how to do that on Instagram, Snapchat and TikTok, and how to turn the mess they send back into files you can actually use.
- 1Ask the platform for your data
Instagram: Accounts Centre → Your information and permissions → Download your information. Snapchat: Settings → My Data. TikTok: Settings and privacy → Account → Download your data. Choose JSON wherever you are offered a choice — it carries the dates and locations that HTML throws away.
- 2Wait for it to be built
Minutes on a small account, a couple of days on a large one. Instagram and Snapchat email you a link; TikTok puts the file in the app under its own Download data tab, which is why people miss it.
- 3Open it on the export page
Take the zip to the data-export page and drop it in. It is read inside your browser — there is no upload, no account, and nothing reaches a server.
- 4Save the result
You get your media back named and dated by when it was actually captured, foldered by year, with an index listing every date, caption and location.
Why no downloader can open a private post
A downloader fetches what a logged-out visitor can see. That is the whole mechanism. A private post is, by definition, not visible to a logged-out visitor, so there is nothing for the tool to fetch — the link does not lead to the video, it leads to a page saying you need permission.
This is why the answer is not a better downloader. Any site that offers to fetch private posts is offering one of two things: a scam, or a request for your username and password. The second is worse than it sounds. Handing your login to a website gives it your whole account, not one video, and it is the exact arrangement that ended SnapSaved in 2014 — a Snapchat-adjacent service that collected users' credentials and media and then leaked roughly 90,000 private photos.
Your own media is a different question entirely, and it has a real answer.
The route that works: your own data export
Every major platform has to give you a copy of your data if you ask. In the EU that is the GDPR's right to data portability; California's CCPA and a growing list of other laws say something similar. In practice all of them ship the same feature: a button that builds you a zip.
That zip contains your posts — including the private ones, the archived ones and, on some platforms, the ones you deleted recently. No password goes anywhere except into the platform's own app, where it already lives. It is slower than clicking download, and it is the only version of this that is actually yours to do.
What each platform actually sends you
They are not the same shape, and knowing which you are getting saves a lot of confusion.
Instagram sends the real files. Your photos and videos are inside the zip, alongside JSON describing each one. This is the easiest case — everything you need is in the archive.
Snapchat sends links, not files. memories_history.json holds one download link per Memory, and those links expire roughly seven days after the export is generated. If you file the email away for a fortnight, you have to start over.
TikTok sends a JSON of post links. user_data_tiktok.json lists every video you posted with its date and a URL. Like Snapchat, there is no media in the zip — and no realistic way to click a few hundred links by hand.
The date problem nobody warns you about
Here is what makes an export frustrating even once you have it. Exports routinely stamp every file with the date the archive was built, not the date the photo was taken. Import that into your phone's gallery and a decade of memories lands under a single day, in whatever order the zip happened to list them.
The real timestamp is not lost — it is sitting in the JSON next to the media, along with the location where the platform recorded one. Putting it back is a mechanical job: write it into the file's EXIF tags for photos, into the MP4 header for videos, and into the filename so it sorts correctly anywhere.
That is precisely what the export page does, and it does it in your browser rather than on a server, because the alternative is uploading your entire private archive to a stranger.
Why this happens in your browser and not on a server
It would be easier to build this the normal way: you upload the zip, a server processes it, you download the result. It would also mean a copy of your private photos sitting on someone else's machine, which is the thing you were trying to avoid.
So the processing runs as JavaScript inside your own tab. The file is read, not sent. Close the tab and nothing remains. For the link-based exports — Snapchat and TikTok — the page cannot fetch the links either, because browsers block a website from reading another site's response. Instead it writes you a short script that runs on your own computer and does the fetching there. You can read the script before you run it. It talks to the platform and to nothing else, and it needs no password.
How long it takes, and what to do while you wait
This is the part people abandon. Requesting the export takes a minute; receiving it can take two days. There is nothing to do in between, and no email from us — the request lives entirely between you and the platform.
Request it before you need it. If you are closing an account, migrating a phone, or worried about losing access, ask for the export first and deal with the zip when it arrives. On Snapchat especially, the clock on those links starts the moment the archive is built, not the moment you download it.
Can I use this on someone else’s account?
No, and it would not work if you tried. An export is issued to the account that requested it, after that account authenticates in the platform's own app. The links inside are bound to that request. There is no version of this that reaches another person's private posts.
That is not a limitation to route around. Getting your own media out is a right; taking someone else's is not, and the tooling here is deliberately shaped so it cannot do the second thing even by accident.
FAQ
Can I download a private Instagram video with a link?
No. A private post is not visible to anyone who is not signed in with permission to see it, so there is no public URL for any tool to fetch. Requesting your own data export is the working route for your own posts.
Is it safe to use a site that asks for my Instagram or Snapchat login?
No. Giving your credentials to a third-party site hands over your entire account, and there is a well-known precedent for how it ends: SnapSaved leaked around 90,000 private photos in 2014 after collecting exactly that. No legitimate downloader needs your password.
How do I download my Snapchat Memories?
Settings → My Data in the Snapchat app, with the Memories option ticked and JSON left on. Download the zip promptly — the links inside expire about seven days after the export is created.
How do I download all my own TikTok videos at once?
Request your data in JSON from Settings and privacy → Account → Download your data, then use the export page to turn that JSON of links into a script that saves each video with its real posting date.
Does my data export include posts I deleted?
Sometimes. Platforms retain some deleted content for a period, and what is retained varies by platform and by how long ago you deleted it. The export shows you what they still hold; it cannot recover what they have already purged.
Why are all my exported photos dated the same day?
Because the export stamped them with the day the archive was built rather than the day they were taken. The real capture dates are in the JSON beside the media, and the export page writes them back into the files.
Do I have to upload my export anywhere?
No. The processing runs inside your browser. The file is read locally and never sent, which is why there is no account, no size limit imposed by a server, and nothing left behind when you close the tab.
Is requesting my data free?
Yes. Data portability is a legal right in the EU under the GDPR and in a number of other jurisdictions, and every major platform provides it at no cost.