Skip to content

[Feature Request]: Add ability to import and export embedded Metadata (XMP) from/to files who support it #454

Open
@Lxtharia

Description

@Lxtharia

Checklist

  • I am using an up-to-date version.
  • I have read the documentation.
  • I have searched existing issues.

Description

Hello! This might be better in two seperate issues but here it goes:

Support for importing metadata:
Add ability to import Metadata from EXIF or XMP.
I have a lot of images tagged this way and would like to import certain fields into the database. This probably includes having to match read tag strings to a database-tags name, shorthand or alias which might be ambiguous and need to be manually matched.
(For example: Match XMP tag "LoL" to db-tag id 1027: League of Legends)

Ability to export metadata:
For better compatability and less reliance on a single software or database to store the tags, I also propose an option to export tags back into files that support it.
This allows for a decentralized and independent storage of metadata which also allows other programs who can read XMP to make use of all the information.
The usual image and video formats should all support XMP.
As tags can have parent tags they should get be "flattened" so that every tag of a tag is also included as a XMP tag.
In theory, this relational information could also be stored in seperate XMP fields, but for now that probably serves little purpose.
The goal here is to simply have a way to use the tagging work done inside TagStudio and allow persisting the metadata in a widely accepted standard.

This will also allow to easily share metadata when sharing images.
I understand that this might be undesirable when images are tagged with personal tags, hence it should be the users conscious choice to export metadata or give them the ability to exclude certain tags (or parent tags) from exporting.

Solution

I am imagining the import dialog to scan all files in the library for embedded metadata and display all found relevant XMP fields (tags, description, rating, author, ...) and especially a list of all found embedded tags. For each of these tags, the user can then choose the equivalent tag from the database (same/similar named tags will be suggested) or set to newly create the tags in the database.

As for the XMP part, there are a lot of possible fields but as far as I can tell, the most common namespace used for tags is the Dublin Core namespace: https://developer.adobe.com/xmp/docs/XMPNamespaces/dc/ (tags are called "subjects" there)
So I would only read dc:subject entries as tags even though other namespaces might include tags as well. This would also be the fields I suggest exporting to.

Alternatives

Instead of importing metadata I also considered reading them directly from the file and add them as extra fields (like XMP_Tags) during runtime and make them searchable. This would allow using TagStudio as a query program for XMP-tagged images even with an empty database.

Yeah

I would be happy to know if anyone else sees it this way.
I also might try to read a bit into the code and do some prototyping cause this is one of my big requirements I would love to see in the software.

Nontheless, I love TagStudio and am happy it receives this huge amount of work and support ❤️

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions