GNOME Bugzilla – Bug 718586
Support reading ACDSee tags from XMP data
Last modified: 2016-09-29 06:58:23 UTC
---- Reported by shotwell-maint@gnome.bugs 2012-05-22 05:58:00 -0700 ---- Original Redmine bug id: 5285 Original URL: http://redmine.yorba.org/issues/5285 Searchable id: yorba-bug-5285 Original author: Ryan Lortie Original description: A friend of mine asked me yesterday if he should "make the switch" to Ubuntu/Fedora/etc. We went over all of the typical things that he needed to do to find out if he could survive the switch. We managed to check off every box but one. There is a popular photo management program for windows called ACDSee that's quite similar to Shotwell in a lot of ways. He's using that and he has invested quite a lot of time in tagging and adding notes to his photos. I had him export an image for me with some tags and a note. The result is a jpeg that I can open in eog (no surprise). When I go to Image properties, under Details, then under "XMP Other", I see there are the following keys: acdsee:caption, acdsee:datetime, acdsee:author acdsee:rating acdsee:notes, acdsee:tagged, acdsee:categories Some types: - caption is presumably a string (but is empty in this example file he gave me) - datetime is an ISO8601 string. - rating is an int. - notes is a string - tagged is a boolean which is set to 'False' in my example image (even though there are tags added) - categories is an XML fragment that looks like so: <Categories> <Category Assigned="0"> Places <Category Assigned="1"> Bermudes 83 </Category> </Category> </Categories> So there appears to be some nested tagging going on (and from what I saw of the program, that's the case). It would probably be pretty straight-forward to support looking for the tags at import and converting them to Shotwell tags -- either in Shotwell or a plugin. As for adding notes, I didn't find an equivalent feature in the Shotwell UI, so that may be a bit more complicated. I've attached a specimen. ---- Additional Comments From shotwell-maint@gnome.bugs 2012-05-22 07:42:00 -0700 ---- ### History #### #1 Updated by Adam Dingle over 1 year ago Thanks for the suggestion, Ryan. I don't think we've heard of ACDSee before (cool name, though!) so we're probably not going to build this into Shotwell core any time soon, but I agree this would make a great plugin. Unfortunately our plugin system doesn't allow plugins to perform transformations like this at import time, but we should extend it to allow that. Shotwell doesn't yet allow adding notes to a photo, but we've wanted that feature for a long time: see #1573. Hopefully before too long. --- Bug imported by chaz@yorba.org 2013-11-25 21:57 UTC --- This bug was previously known as _bug_ 5285 at http://redmine.yorba.org/show_bug.cgi?id=5285 Imported an attachment (id=262412) Unknown Component Using default product and component set in Parameters Unknown version " in product shotwell. Setting version to "!unspecified". Unknown milestone "unknown in product shotwell. Setting to default milestone for this product, "---". Setting qa contact to the default for this product. This bug either had no qa contact or an invalid one. Resolution set on an open status. Dropping resolution
I've done some work on understanding the ACDSee Categories property. These are hierarchical tags, with the same functionality as Lightroom Hierarchical Subjects and Microsoft Photo Last Keyword. digikam also has it's own internal property for hierarchical tags: Tags List. I think that the Adobe format is a defacto standard. The format of ACDSee Categories is quite different from the others: * Digikam 4.8 & MS Photo Xmp.digiKam.TagsList XmpSeq 2 6 Level/6.2 Level/6.3 Level/6.4 Level/6.5 Level, 6 Level/6.2 Level * Adobe Lightroom 4.4 Xmp.lr.hierarchicalSubject XmpBag 2 6 Level|6.2 Level, 6 Level|6.2 Level|6.3 Level|6.4 Level|6.5 Level * ACDSee 8 Pro Xmp.acdsee.categories XmpText 282 <Categories><Category Assigned="0">6 Level<Category Assigned="1">6.2 Level<Category Assigned="0">6.3 Level<Category Assigned="0">6.4 Level<Category Assigned="1">6.5 Level</Category></Category></Category></Category></Category></Categories> I've suggested elsewhere that converting between these formats be implemented in gexiv2, as part of it's composite tags support. https://bugzilla.gnome.org/show_bug.cgi?id=712429
This same issue has recently been brought up on the digikam users mailing list. The digikam feature request is here: https://bugs.kde.org/show_bug.cgi?id=345220
Maik and Gilles have come through with support for converting from ACDSee in digikam. https://bugsfiles.kde.org/attachment.cgi?id=92108 And I have added support in exiv2, which allows writing to those properties. http://dev.exiv2.org/projects/exiv2/repository/revisions/3715 Who wants to commit to Shotwell keeping up?
I started looking into this, but currently I'm quite confused how adding "Xmp.acdsee.caption" in PhotoMetadata.get_title() ends up setting the title to the contents of "Xmp.acdsee.timestamp".
(In reply to Jens Georg from comment #4) > I started looking into this, but currently I'm quite confused how adding > "Xmp.acdsee.caption" in PhotoMetadata.get_title() ends up setting the title > to the contents of "Xmp.acdsee.timestamp". That was an issue in gexiv2: bug 768906
That's actually a bit more complex: From ACDSEE 19: Xmp.acdsee.caption XmpText 10 jdsflkdsjf Xmp.acdsee.datetime XmpText 23 2008-03-14T13:59:26.000 Xmp.acdsee.author XmpText 6 Author Xmp.acdsee.rating XmpText 1 4 Xmp.acdsee.notes XmpText 6 Remark Xmp.acdsee.tagged XmpText 5 False Xmp.acdsee.keywords XmpBag 1 Test|Blah Xmp.acdsee.categories XmpText 64 <Categories><Category Assigned="1">Alben</Category></Categories> Xmp.acdsee.collections XmpText 0 And additionally it uses Xmp.xmp.Label. So .keywords looks like the same as Xmp.lr.hierarchicalSubject. The interesting thing is whether to support keywords or categories or both.
Created attachment 336024 [details] [review] Support acdsee tags Signed-off-by: Jens Georg <mail@jensge.org>
First throw. That should probably be modified and made read-only for some tags.
Cool! There is an apparent typo in the patch, "Xml.acdsee.datetime" should likely be "Xmp.acdsee.datetime". Regarding support for keywords or categories, I would vote for including categories as well as it has been in use by ACDSee apps for years and therefor exists in tons of images. The keywords property seems to be new, I did not see that in previous versions. Of course, the coding to include acdsee.categories is much more complex, as you can see in the digikam link.
Oh, thanks. Well spotted. There also seems to be an issue with the assignment of the lr tags. In ACDSEE I assigned Foo and Foo|Bar, but shotwell interprets that as only Bar being assigned.
(In reply to Alan Pater from comment #9) > Regarding support for keywords or categories, I would vote for including > categories as well as it has been in use by ACDSee apps for years and > therefor exists in tons of images. The keywords property seems to be new, I > did not see that in previous versions. > > Of course, the coding to include acdsee.categories is much more complex, as > you can see in the digikam link. Doesn't look too bad, digikam is just doing some string magic there.
Created attachment 336035 [details] Convert hierarchical categories to | taglist Convert from pseudo-xml to |-separated hierarchical tags
(In reply to Jens Georg from comment #12) > Created attachment 336035 [details] > Convert hierarchical categories to | taglist > > Convert from pseudo-xml to |-separated hierarchical tags Input: <Categories><Category Assigned=\"0\">6 Level<Category Assigned=\"1\">6.2 Level<Category Assigned=\"0\">6.3 Level<Category Assigned=\"0\">6.4 Level<Category Assigned=\"1\">6.5 Level</Category></Category></Category></Category></Category></Categories> output: 6 Level|6.2 Level| 6 Level|6.2 Level|6.3 Level|6.4 Level|6.5 Level| Needs some polishing and error handling, but I think that's equivalent.
Created attachment 336203 [details] [review] Support acdsee tags Signed-off-by: Jens Georg <mail@jensge.org>
Created attachment 336204 [details] [review] Support acdsee tags Signed-off-by: Jens Georg <mail@jensge.org>
Attachment 336204 [details] pushed as 9218b13 - Support acdsee tags