Mindtunnel.com Projects

Assorted Spare Time Projects

picasa3meta: accessing Picasa metadata

| Comments

picasa3meta is a Python package with modules allowing access to all sorts of Picasa metadata. Modules are available for 1) importing the thumbindex.db file (which provides the index into the PMP database files for each file Picasa knows about), 2) reading the PMP database files, 3) reading the contacts.xml file, 4) reading the .picasa.ini (and if faces tags exist, add an sfaces tag with the actual names from the contacts.xml file) and 5) reading the Exif/Iptc/Xmp data from each image file.

See picasa3meta docs.


I recently scanned over 1000 old family photos and was planning on using Picasa to crop/rotate/enhance/tag/caption/date/etc and Picasaweb to share the photos with family.

Unfortunately I ran into a couple problems with this plan:

  • Picasa won’t set dates prior to 1904 (and I have photos going back to the 1880’s)
  • When you export photos for Picasaweb, dates older than 1970 get mangled and the image quality is reduced

This meant Picasa was unusable for me.

After trying out many different photo management utilities I finally settled on the following:

  • Darktable for image processing
    • pro: extremely powerful, will not ever modify your original files.
    • con: doesn’t store metadata in original file - it is in a .xmp sidecar file. I want the date/caption/keyword metadata to be stored in the original file.
  • eogMetaEdit and/or imtag for date/caption/keyword management
    • pro: imtag for quickly copying specific metadata fields from previously exported images back into the original files.
    • pro: eogMetaEdit for easily browsing and updating the date/caption/keyword metadata in the original files.
    • pro: I wrote them myself
    • con: not yet …
  • Zenfolio for sharing
    • pro: unlimited storage and your images are never modified.
    • pro: date/caption/keyword are extracted from the file on upload and used for sort/search/display.
    • con: if you modify the metadata on the original file, it is not a simple task to get Zenfolio metadata to also update (but I am working on a zensync utility).
    • con: not free (but reasonable).

I planned on importing all my original images into Darktable, but this meant I would lose all the modifications I had made in Picasa. So the first step was to try to save all these modification in a format that I could possibly use again to redo them. The only information I could find on how Picasa stored its data was this: The Picasa .pmp format. This was a great start and after a whole lot more reverse engineering I finally ended up with the picasa3meta package and the metaSave utility.

I won’t go into the fine details of picasa3meta here. The docs should pretty much tell you everything but if you have questions I am happy to try to answer them.