Today I used SocialSafe to backup my Facebook profile.
It does a good job of backing up all the content created by me, but it’s not so good at backing up what people have shared with me.
It saves a large version of all the photos I have posted to Facebook, but only thumbnail versions of those shared with me. I really hope they improve on that, because it’s a very promising tool.
The SocialSafe app doesn’t make it clear where it stores your backups, and I can’t find any documentation on their website.
SocialSafe lets you export your backup to files in a place you choose, so why do I want to know?
The export doesn’t contain all the data that SocialSafe has downloaded. Even if it is only thumbnails, I want to see some evidence of the photos that people have shared with me.
SocialSafe must be reading and writing all that data somewhere, so it must be opening files. Maybe we can use handle to find them!
Handle should already be on your path for this to work.
Open a new command prompt and issue this command:
handle -p socialsafe
It will produce one line of output for every file SocialSafe has open.
The full output is about 60 lines. Here’s the interesting part:
3EC: File (RW-) D:\Users\iain\AppData\Roaming\com.1minus1.socialsafe.D675411CF670AA3EFAC13BDD847989BEDE2115E2.1\Local Store\Facebook.db
A file called Facebook.db. Looks like a sqlite database file!
Let’s open it in the sqlite shell:
sqlite3 "D:\Users\iain\AppData\Roaming\com.1minus1.socialsafe.D675411CF670AA3EFAC13BDD847989BEDE2115E2.1\Local Store\Facebook.db"
sqlite produces a prompt, so we know it’s a proper sqlite database:
SQLite version 220.127.116.11 2013-09-03 17:11:13 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite>
Use the .tables command to list all the tables in the database:
sqlite> .tables album linkedincertification searchlog attachment linkedincomment searchlogservice backup linkedincompany searchlogserviceitem backupstatistic linkedincompanylocation tags changetrack linkedincompanyproduct thread checkin linkedinconnection threadrecipients checkintag linkedineducation twittercursor comment linkedinimaccount twitterfavourite configuration linkedinlanguage twitterfollower diaryviewfilter linkedinlike twitterfriend eventmember linkedinnetworkupdate twittermedia facebookevent linkedinpatent twittermention firstdownload linkedinphonenumber twittermessage friend linkedinposition twitterpage frontcoveruser linkedinprivatecontacts twitterprofile googleplusactivity linkedinprofile twittertweet googleplusassociation linkedinpublication twitteruser googleplusattachment linkedinrecommendation user googlepluscomment linkedinskill viadeocareer googleplusemail linkedintwitteraccount viadeocomments googlepluslanguage linkedinurlresource viadeocontact googleplusorganisation linkedinuser viadeoeducation googleplusperson message viadeoforum googleplusplacelived note viadeoforummember googleplusprofile noteimage viadeoforumpost googleplusurl page viadeolanguage googleplususer pageadmin viadeolikes instagramcomment pagefancount viadeomessages instagramlike patches viadeonewsitems instagramlocation photo viadeoprofile instagrampeople post viadeosmarttag instagramphoto profile viadeosmarttagblacklist instagramprofile rss viadeouser instagramtag rssfeed viadeovisits instagramuser rssfeeditem likes rssimage
That’s a lot of tables, most of which are not exported. The friend, post, photo, and profile tables probably are, because that data is included in the export.
The attachment table contains post attachments. The icon column contains the URL of the thumbnail of the post:
sqlite> SELECT icon FROM attachment WHERE icon <> '' LIMIT 1; https://fbexternal-a.akamaihd.net/safe_image.php?d=AQCaGVgO8DXpi4fD&w=154&h=154&url=http%3A%2F%2Fi2.wp.com%2Fstokboet.files.wordpress.com%2F2013%2F09%2Fmg_0004.jpg%3Ffit%3D1000%252C1000
You can fetch using a web browser or wget.
I haven’t checked to see whether SocialSafe is fetching those thumbnails when you browse the journal, or if it actually stores the image data somewhere else.