I think that mantaining a local centralized database of your photos should be the starting point of your work. So, if you don't have such a database yet (or it's not up to date), you should proceed and download every piece of information from all of your accounts.
This task shouldn't be too hard. There are several official/unofficial methods and tools to download entire accounts from these social networks.
- Facebook gives you directly a convenient zipfile with all your images, wall posts etc., just go to
account settings
and then select download a copy
of your data.
- Flickr has a nice tool called Bulkr to download all of your photos.
- Instagram doesn't seem to provide official tools to complete this task, but you can choose for example between Instagram Downloader and Instaport.
- iPhoto should be already synchronized.
Now that any and all of your photos are on your PC, you'll have to figure out which are identical, similar and so forth. I think that this question should provide the solution to this problem.
Personally, I vote for this method, in the hope that pHash can be compiled under OS X
. If pHash compiles and works, you can do a first pass of MD5
, SHA1
or whatever to identify an exact match. If there is no such a match, you can then run pHash to see how close the two images are.
I could (given enough time) script everything in bash
under Linux. I suppose that this could work also under Mac OS X
, but probably you can achieve the same result with maybe even less coding in Cocoa.
When you find which photos are missing from a given service, you can finally push them to that service. But I suppose that here starts another question :)