First off.. if you have a digital camera and you are only storring your precious pictures on your computer, you need to get online quickly and make use of one of the many picture sharing sites, this is where the “cloud” really can have an impact, as your pictures will be storred on literally hundreds of separate computeres professionally managed, safe from fire, theft and dropping your macbook down the stairs!
You could of course use Facebook which actually has very good controls as to who you allow to see your photos, although as we are all aware these change frequently so there is a danger you may end up as the face of a protesting blogger.
I’ve been a happy user of Flickr professional for many years, and I still really like the service, however over the last month or so I’ve come to the conclusion that I want to move my digital memories to Picasaweb. It turns out that this is not a simple process and moving 1500 pictures could be very time consuming, because while there are many tools to bulk upload your images there are done to do the reverse and download them, but fortunately for the geek both systems have api’s, that with some effort, can make the migration of your pictures a viable proposition.
The key component to the migration was a python script I found developed by Nathan Van Gheem last year, which used both services api’s to migrate not just pictures but albums and much of their metadata between the services.
So here we go, these instructions are for mac users who are in the lucky position of having python installed by default, but for windows are pretty similar are you have installed Python.
From a terminal window, install the two photo service api’s and the threadpool packages for Python
easy_install-2.6 gdata easy_install-2.6 flickrapi easy_install-2.6 threadpool
To use the python script you will need to authenticate against each of the services to access your pictures, for picassaweb this is your username and password, for Flickr because you are using in effect an external application to access your pictures you will need a Flickr API Key and secret.
From your Flickr account go the App Garden and apply for your own non-commercial API key. You need to provide a few details, but will end up with the api key string and a separate secret key string, something like..
Key: e97df11b147f9c46c2ec002b29f479df Secret: 8fe34c331abbce32
Now you have all you need..
Remember to make your downloaded script executable
chmod +x migrate-flickr-to-picasa-nokey.py
And run it
You should be asked to enter firstly your picassweb details, then your flick api key and secret, you should then be taken to a flickr webpage to confirm you want the script to have access to your pictures.
This script will move all the photos and sets from flickr over to picasa. That will require getting authentication information from both services... Authenticating with Picasa... Picasa Username(complete email):firstname.lastname@example.org Picasa Password: Authenticating with Flickr.. Flickr API Key:e97df11b147f9c46c2ec002b29f479df Flickr API Secret:8fe34c331abbce32 Press ENTER after you authorized this program
Confirm that it’s ok, go back to the terminal window and press enter for the script to continue.
The process will take some time, so go grab a coffee and look forward to seeing your pictures in picasweb !
Written and submitted from the Windsor Hotel Taichung, Taiwan (24.179N, 120.623E)
33 replies on “Migrating from Flickr to Picasaweb”
For those getting “Invalid Auth Token”, I believe there is a delay between creating your key and actually being able to use that key to access the API. For me, it was a few minutes. YMMV.
[…] tip) Use a Python script to transfer photos from Flickr to […]
Hi all thanks for this scripts
I have this error any idea?
2012-02-14 23:16:42.019 osascript[90417:e07] Error loading /Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types: dlopen(/Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types, 262): no suitable image found. Did find:
/Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types: no matching architecture in universal wrapper
osascript: OpenScripting.framework - scripting addition "/Library/ScriptingAdditions/Adobe Unit Types.osax" declares no loadable handlers.
0:193: execution error: An error of type -10810 has occurred. (-10810)
Press ENTER after you authorized this program
Traceback (most recent call last):
File "/Users/henri/Downloads/migrate-flickr-to-picasa-nokey.py", line 335, in
File "/Users/henri/Downloads/migrate-flickr-to-picasa-nokey.py", line 157, in do_migration
token = flickr_token.value # force retrieval of authentication information...
File "/Users/henri/Downloads/migrate-flickr-to-picasa-nokey.py", line 108, in value
self._value = self.input_retriever(self)
File "/Users/henri/Downloads/migrate-flickr-to-picasa-nokey.py", line 133, in flickr_token_retriever
File "build/bdist.macosx-10.7-intel/egg/flickrapi/__init__.py", line 767, in get_token_part_two
File "build/bdist.macosx-10.7-intel/egg/flickrapi/__init__.py", line 775, in get_token
File "build/bdist.macosx-10.7-intel/egg/flickrapi/__init__.py", line 349, in handler
File "build/bdist.macosx-10.7-intel/egg/flickrapi/__init__.py", line 435, in __wrap_in_parser
File "build/bdist.macosx-10.7-intel/egg/flickrapi/__init__.py", line 257, in parse_xmlnode
flickrapi.exceptions.FlickrError: Error: 108: Invalid frob
The script worked perfectly for some 7 albums I had, but it didn’t work for the 150+ other albums. The problem? Picasa only allows photo names 100 characters or less in length. Is there a way around this besides manually changing the names of all my photos?
Sorry if I’m posting this twice…
My Flickr photo names are way too long for Picasa (which has a 100 character limit). Is there a way to modify the script to automatically shorten names? I have thousands of photos and it’s really difficult to do that manually (even with Aperture’s sync to Flickr, which takes forever to download the photos so I can batch edit them).
Hi, thank you for the script!
Any ideas on what went wrong?
Found 3 sets to move over to Picasa.
Moving “xxxxx” set over to a picasa album. 1/3
Gathering set “xxxxx” information.
Traceback (most recent call last):
File “./migrate-flickr-to-picasa-nokey.py”, line 335, in
File “./migrate-flickr-to-picasa-nokey.py”, line 288, in do_migration
File “/Library/Python/2.6/site-packages/flickrapi-1.4.2-py2.6.egg/flickrapi/__init__.py”, line 349, in handler
File “/Library/Python/2.6/site-packages/flickrapi-1.4.2-py2.6.egg/flickrapi/__init__.py”, line 435, in __wrap_in_parser
File “/Library/Python/2.6/site-packages/flickrapi-1.4.2-py2.6.egg/flickrapi/__init__.py”, line 278, in parse_etree
flickrapi.exceptions.FlickrError: Error: 1: Photoset not found
Thanks for posting this. Everything seems to be working well, except that none of my photo labels are being transferred. They are well under picasa’s 100 character limit. Any ideas?
How does the migration work? Does the python script download the photos from Flickr first to your machine then uploads them to Picasa Web, or is that a direct transfer between Flickr and Picasa Web?
I assume it’s the latter–otherwise, I could just upload the photos from my local NAS–but I want to verify this first before trying out the script.
Miracle script, now that’s the way it should be. Thanks for sharing it.
Any idea how easy it is to update it so to set the migrated photos resolution to max 2048? (since all images under 2048 on long edge are not counted toward free storage limit on Picasa!)
[…] did find this blog post which seems fairly easy. It does depend on you having Python installed […]