I wrote this post as a quick weekend HOWTO on the Fission blog because it turned out people were excited to try this on their own. At Fission, we're building developer tools to make it easy to build and deploy serverless apps directly from your desktop. Our first service uses IPFS, a p2p file system, so that files stream directly from your computer.
Facebook has a fairly extensive data export system built in. I decided to export my photos and videos and put them up on Fission.
For now, this is a manual process and involves some command line usage. I'll write this up as an App Idea in our forum and see if we can spend some time making this "one-click".
Read the Facebook help article on Accessing & Downloading Your Information for instructions on how to navigate to the right section of your Facebook account.
On a desktop browser, it should be under the triangle in the upper right hand corner, then Settings, then Your Facebook Information, then Download Your Information.
I don't upload much to Facebook and only cross-post my Instagram photos (which are cross-posted to my personal blog), so I clicked Deselect All (says Select All in the screenshot above), and only selected Photos and Videos. I also set Media Quality to "High" (although some people still report that these are still not as large as the originals, which may only be accessible through the API).
You can experiment with including other items. But, be aware that because there aren't any permissions, you may be sharing information you don't want to if you publish the files. Same goes for the photos. I have posted most things on Facebook the assumption that they are "public".
Click the Create File button and go make a coffee. Facebook will notify when your download is ready.
To download, you'll need to click on the Download button and enter your Facebook password. You now have a zip file with browse-able HTML files and your photo and video files.
You'll need to type a few commands into the command line Terminal on your machine, but everything should just work if you copy-paste.
Install the IPFS Desktop and run it. You've got a graphical interface to explore your local IPFS server, which is running in the background.
On Mac, make sure you've got homebrew installed, then open the Terminal app and install the Fission tools using these commands:
brew tap fission-suite/fission brew install fission-cli
You can find extended installation instructions in our Fission Guide, and I expect our friends running Linux will have no problem.
Now, you're going to register for Fission.
Your username will be your subdomain, e.g.
boris.fission.name. Pick a password and enter an email address. We are adding support for custom domain names, stay tuned!
Now, you've got a zip file in your Downloads folder from Facebook, called something like "facebook-YOURNAME.zip". Unzip it and you'll have a "facebook-YOURNAME" folder.
Back to the terminal! This is the last step!
fission up command is going to add all your files to IPFS, through your local IPFS Desktop. Then, Fission's server will get sent the hash that represents the folder, we'll use IPFS to keep a copy of all your files, and update DNS of your subdomain.
The following command will be correct if you're on a Mac and downloaded to the standard downloads folder. Otherwise, just enter the path to where the unzipped Facebook folder is:
fission up ~/Downloads/facebook-YOURNAME/
I only had about 200MB of files, so this happened pretty quickly. Visit YOURNAME.fission.name in your browser and you should see something like this:
Your Facebook photos are online and browse-able! You can see mine at boris.fission.name/Photos/facebook (I put mine in a subfolder, because I already host a bunch of public files on my Fission site).
Technically the files are being served directly from your computer, when you're online and have IPFS Desktop running. The Fission service is also serving those files, and stays online when you're offline. As a next step, you can explore installing the IPFS Companion browser extension which will access IPFS content natively.
Join us in our Discord chat forum if you have questions or just come say "hi"!