ACDDB2FSpotDB

Introduction

This program is a converter written in Java. It converts the ACDSee's XML export of its photo database to the F-Spot's SQLite photo database.

Converting ACDSee's photo database ACDDB to F-Spot's photo database using XSLT

First, I tried to write an XSLT stylesheet to convert ACDSee's photo database ACDDB to SQLite statements. They could have been executed using SQLite. To me this seemed to be quite difficult and tricky. Most of the XSLT processors support only XSLT 1.0. Some extensions necessary are not easy to use with some XSLT processors. Included string functions are not part of XSLT 1.0, but XSLT 2.0.

So even if there exists such an XSLT stylesheet, it maybe would be quite difficult for some people to run it, thus use it to transform ACDDB to SQLite statements.

Finally, I stopped my work at this point: addbd2sql.xslt, addbd2tuples.xslt. At least this can be used for further processing using awk, sed, …

Please let me now about further developments on this, since I am still interested in a complete working XSLT stylesheet!

Converting ACDSee's photo database ACDDB to F-Spot's photo database using ACDDB2FSpotDB

Exporting ACDSee's photo database ACDDB

  1. Activate the checkbox "Bildbank".
  2. Mark all the pictures you want to export the tag data from.
  3. Go to "Datenbank" → "Exportieren" → "Datenbank...".
  4. Select "Datenbankeinträge in eine Textdatei exportieren:".
  5. Activate the checkbox "Datenbankeinträge für ausgewählte Objekte mit einbeziehen".
  6. Specify folder and filename.
  7. Start export process.

ACDDB-export.%231.jpg ACDDB-export.%232.jpg ACDDB-export.%233.jpg ACDDB-export.%234.jpg ACDDB-export.%235.jpg

Correcting exported ACDDB file

Because ACDSee does not exactly exports its database in proper XML you will encounter the following problems you have to solve:

[Fatal Error] The markup in the document preceding the root element must be well-formed.
You have to add <?xml version="1.0" encoding="utf-16"?> as the first line of ACDSee's exported ACDDB text file.
[Fatal Error] Content is not allowed in trailing section.
ACDSee's exported ACDDB text file ends with a Byte Order Mark (BOM) (U+FEFF, here 0xFF 0xFE, "FF FE") and a line feed (U+000A, here 0x0A 0x00, "0A 00"). You have to delete the BOM using a hex editor.

Importing ACDDB to F-Spot's database

Using ACDDB2FSpotDB.jar you can import the resulting ACDDB to F-Spot's photos database. Since this program uses Java you have to install and configure a Java Runtime Environment (JRE).

Currently these versions are supported:

Here you can see some examples on how to run the converter: (Security advice: Make sure to backup your photos database before!)

Feedback, Comments, Criticism

I wrote this piece of software for a friend and another person unknown to me writing to the F-Spot's mailing list, because of my intention to move people from closed source, restricted or proprietary to open source and free software.

I would appreciate to receive any feedback from you, if you like this software or not, if it was useful to you or not (and why not)… Please do not hesitate to write me using my email address <proflogic@proflogic.com>!


2010-02-18