Creating Custom Metadata Fields

Joined
Aug 31, 2013
Messages
2
Lightroom Experience
Power User
Lightroom Version
#1
So I'm guessing I'm asking something that's been asked and answered, so my apologies if I'm redundant...

I'm advising a studio that currently has a complicated multi-user/multi-platform workflow, and they want to integrate all their assets into Lightroom. Of course, Lightrooms pre-packaged metadata fields won't cut the mustard. Does anyone know of a way to create custom metadata fields that are XMP friendly in Lightroom 5? And because I want it all... I'd love a plug-in that can see these custom fields and sync them from catalog to catalog.

Any answers out there? Thanks!
 

johnbeardy

Senior Member
Staff member
Moderator
Lightroom Guru
Joined
Oct 8, 2007
Messages
4,546
Location
London
Lightroom Experience
Power User
Lightroom Version
#2
Custom fields, only via a plugin and LR only records custom data as text strings. See http://www.lightroomsolutions.com/plug-ins/big-note/ for a simple plug-in that's easy to expand yourself. If you want to constrain the data entry, you'll need to get more into a few relatively-easy aspects of the SDK.

XMP-friendly, however that's defined, no, LR doesn't offer that and other LR data isn't included in the XMP. However, the custom field metadata is carried from one catalogue to another via the import/export catlaogue method, as is all other LR work (except Publish data).

I've always thought it's a weakness of LR that it doesn't allow users to create their own custom fields and instead forces people to add non-standard metadata to keywords. While keywords have the flexibility to record all sorts of data, and are XMP-friendly, there's not the kind of strong control that custom fields provide (eg a "to do" smart collection that checks custom field A is empty and custom field B is empty). I do actually have a plugin which I wrote for my own work which offers data entry screens with drop down boxes' choices supplied by cloud-hosted files, reading and writing to custom XMP namespaces via embedded Exiftools, and a few other bits. It wouldn't take too much to make it more widely-distributable, but I've taken the view that it's better for me to offer in consultancy and that it probably wouldn't be responsible to let it loose on the LR community!

John
 
Joined
Aug 31, 2013
Messages
2
Lightroom Experience
Power User
Lightroom Version
#3
Thanks for the reply John, and sorry for the slow response on my part. PhotoshopWorld, travel, and children have kept me distracted. : )
BigNote looks like a way to go, but yes, it's likely our solution will require more fields than just the one. Thus your custom option may also be a way to go. I want to do which ever makes the most sense for forward compatibility, as we predict the future, and as Adobe is hopefully is working out how to make Lightroom more multi-user friendly.
I wonder, as Lightroom is becoming cloud and multi-device capable, if we should settle on hacking a XMP writable keyword hierarchy. But I don't like doing that for our workflow. Either way, there is another feature we'd like...
Would 'Search Replace Transfer' or another plug-in that you know of recognize the BigNote data field? Or would it see the fields for your 'custom solution' to sync custom metadata between catalogs?

Thanks, Jason
 
Last edited:

johnbeardy

Senior Member
Staff member
Moderator
Lightroom Guru
Joined
Oct 8, 2007
Messages
4,546
Location
London
Lightroom Experience
Power User
Lightroom Version
#4
I left BigNote unencrypted so anyone can learn to add their own fields. In terms of what you can do with the SDK, this aspect is relatively simple. As well as text boxes, you can add drop down lists which constrain the data entry.

To guess the future.... Metadata in Lightroom will continue to develop at a glacial pace, Adobe will not add custom fields, and users will continue to be forced to dump everything into keywords. At PSW you probably saw Tom Hogarty's demo of synchronizing between devices, and it's my guess that this will be channelled through the Creative Cloud, and that it will be a single user solution with major shortfalls for multi-user environments. There'll be no improvement in multi-user functionality. OK, that's my assessment of the next 3-4 versions of Lightroom. I'd characterize it as pessimistic yet more than enough for the majority, but as realistic. So I'd be very cautious before thrusting Lightroom into a multi-user workflow - rather than tech solutions, the users need to be trained to work as well as possible with what little Lightroom offers to teams.

John
 

johnbeardy

Senior Member
Staff member
Moderator
Lightroom Guru
Joined
Oct 8, 2007
Messages
4,546
Location
London
Lightroom Experience
Power User
Lightroom Version
#6
Just open the text files, Shaun, and see if they make sense to you. Particularly one called Metadatadefinition.

John
 
Joined
Feb 18, 2016
Messages
2
Location
St.Paul MN
Lightroom Experience
Intermediate
Lightroom Version
#8
I see this is an old topic, but I have a question about this plug-in. Will Lightroom allow me to use the created custom fields to re-name files in a publish service? I shoot youth sports photos for a local rec center and typically only have about 80 kids max, so the other larger pieces of software used by the larger companies aren't feasible for me at this time. I currently use keywords to put the kids name in there so when I put it in my ordering software I can find out who is who. but I often don't need all the keywords for the sake of filename creation.

Thanks!
 

johnbeardy

Senior Member
Staff member
Moderator
Lightroom Guru
Joined
Oct 8, 2007
Messages
4,546
Location
London
Lightroom Experience
Power User
Lightroom Version
#9
Not without a lot of work, Shawn. I recommend entering the main kid's name in a field like Headline or another that can be read by the filename template in Publish's settings.
 
Joined
Feb 18, 2016
Messages
2
Location
St.Paul MN
Lightroom Experience
Intermediate
Lightroom Version
#10
Okay. Thanks anyways. Do you think I could still benefit from adding this info into the metadata even though it can't be used by the filename template? Or would I just be wasting my time, and putting it in keywords would suffice.
 

rob211

Senior Member
Joined
Mar 17, 2014
Messages
1,068
Location
Oakland, CA USA
Lightroom Experience
Advanced
Lightroom Version
#11
Check out Mr Beardsworth's new Search Replace plugin. You could enter the name in say some field and then use the plugin to move it to a place where it would be easier to devise a way to put it into filenames. I use the field "instructions" for example. I'd contact him because I think the upcoming version might be more useful and could deal with People keywords and "Person Shown" which might work for you.
 

PhilBurton

Senior Member
Joined
Nov 16, 2015
Messages
1,164
Location
California, USA
Lightroom Experience
Intermediate
Lightroom Version
Classic 7
#12
Custom fields, only via a plugin and LR only records custom data as text strings. See Big Note – Lightroom Solutions for a simple plug-in that's easy to expand yourself. If you want to constrain the data entry, you'll need to get more into a few relatively-easy aspects of the SDK.

XMP-friendly, however that's defined, no, LR doesn't offer that and other LR data isn't included in the XMP. However, the custom field metadata is carried from one catalogue to another via the import/export catlaogue method, as is all other LR work (except Publish data).

I've always thought it's a weakness of LR that it doesn't allow users to create their own custom fields and instead forces people to add non-standard metadata to keywords. While keywords have the flexibility to record all sorts of data, and are XMP-friendly, there's not the kind of strong control that custom fields provide (eg a "to do" smart collection that checks custom field A is empty and custom field B is empty). I do actually have a plugin which I wrote for my own work which offers data entry screens with drop down boxes' choices supplied by cloud-hosted files, reading and writing to custom XMP namespaces via embedded Exiftools, and a few other bits. It wouldn't take too much to make it more widely-distributable, but I've taken the view that it's better for me to offer in consultancy and that it probably wouldn't be responsible to let it loose on the LR community!

John
John,

I've been "stewing" (as we say in the States) about this issue for a while now, and I just re-read this thread. Here is my speculation, so feel free to ignore it.

When Gunar Penakis (sp?) left Adobe, no one else picked up the role of XMP extensibility champion or evangelist within Adobe. (Last I heard from someone who used to work with Gunar at Adobe, he was working at HP, probably HP Enterprise after the split-up.) The ONLY way to get their attention now would be to release this plug-in, with all the necessary caveats and non-disclaimers in bold text, and then sit back. If you get a lot of uptake then you can go back to them and ask for some API enhancements that would improve the functionality of the plug-in. If not you, then or Virginia or someone else on this board who is well-respected at Adobe.

I have no idea if this approach will prove successful, but I think it's worth a shot. As I said in the first paragraph, you are free to ignore my speculation.

Phil Burton
 

johnbeardy

Senior Member
Staff member
Moderator
Lightroom Guru
Joined
Oct 8, 2007
Messages
4,546
Location
London
Lightroom Experience
Power User
Lightroom Version
#13
Phil

Even if it somehow got Adobe's attention, I don't believe for one second that it would cause Adobe to change anything. Generic xmp extensibility does indeed seem to be on a backburner so tepid it freezes eyebrows together, and custom fields are some way outside Adobe's analysis of the typical Lightroom user's needs. Jeffrey Friedl and I, and others, have asked more than once for the necessary API improvements.

On the other hand, since our previous discussions I have worked on the plugin. Apart from wanting to make it a lot more suitable for human use, I also wanted to solve a problem which pissed me off - that Lr couldn't write IPTC metadata into videos or read metadata which some external app (eg Bridge!) had written to the video without removing and reimporting the files. So it's got a couple of USPs - and the S stands for....

The custom field functionality isn't finished, but it does allow read and write to a custom xmp namespace such as ns.burton.com. I'd like this to be more granular, so you can map field x y and z to ns.burton.com and the prefix to phil:, fields a b and c to ns.beardsworth.co.uk.... but that's for domani, manana etc. Already though I figured out an elegant way to allow users to change field names through the UI or constrain data entry into dropdown lists (defining the lists is a to-do). I'd like to allow it to save custom fields defined in other plugins (eg BigNote) to xmp, though it won't be able to read it from files - Adobe prevent one plugin modifying another's data.

So you never know, it may appear in public one day!

John
 

PhilBurton

Senior Member
Joined
Nov 16, 2015
Messages
1,164
Location
California, USA
Lightroom Experience
Intermediate
Lightroom Version
Classic 7
#14
Phil

Even if it somehow got Adobe's attention, I don't believe for one second that it would cause Adobe to change anything. Generic xmp extensibility does indeed seem to be on a backburner so tepid it freezes eyebrows together, and custom fields are some way outside Adobe's analysis of the typical Lightroom user's needs. Jeffrey Friedl and I, and others, have asked more than once for the necessary API improvements.

On the other hand, since our previous discussions I have worked on the plugin. Apart from wanting to make it a lot more suitable for human use, I also wanted to solve a problem which pissed me off - that Lr couldn't write IPTC metadata into videos or read metadata which some external app (eg Bridge!) had written to the video without removing and reimporting the files. So it's got a couple of USPs - and the S stands for....

The custom field functionality isn't finished, but it does allow read and write to a custom xmp namespace such as ns.burton.com. I'd like this to be more granular, so you can map field x y and z to ns.burton.com and the prefix to phil:, fields a b and c to ns.beardsworth.co.uk.... but that's for domani, manana etc. Already though I figured out an elegant way to allow users to change field names through the UI or constrain data entry into dropdown lists (defining the lists is a to-do). I'd like to allow it to save custom fields defined in other plugins (eg BigNote) to xmp, though it won't be able to read it from files - Adobe prevent one plugin modifying another's data.

So you never know, it may appear in public one day!

John
John,

Thanks for the quick reply. If nothing else, I got your attention.

I'm going to put on my "day job" hat, software product manager. Please bear with me. These days, I'm a consultant to companies about their product management processes and I also teach classes in product management. So I'm a little like a "John Beardsworth" in this area.

One key skill in product management is asking, "Why?" As in, "Why should I make your requested changes to the Lightroom APIs?" Waving your arms won't work, except to justify something that the product manager already wants to do. Numbers of users of the plug-in, etc., does help.

OK, I've put my day job hat back on the peg. Thanks for reading this screed.

Phil
 
Last edited:

PhilBurton

Senior Member
Joined
Nov 16, 2015
Messages
1,164
Location
California, USA
Lightroom Experience
Intermediate
Lightroom Version
Classic 7
#15
Phil

I'd like this to be more granular, so you can map field x y and z to ns.burton.com and the prefix to phil:, fields a b and c to ns.beardsworth.co.uk.... but that's for domani, manana etc.

John
John, technical question. Does every custom field have to be assigned to a namespace? If so, is there some sort of central repository of namespaces where someone can "register" a namespace or see if a desired namespace is already used?

Phil
 

johnbeardy

Senior Member
Staff member
Moderator
Lightroom Guru
Joined
Oct 8, 2007
Messages
4,546
Location
London
Lightroom Experience
Power User
Lightroom Version
#16
If you want to save data to xmp metadata, Phil, you need a namespace and then a prefix for each of its fields. I don't believe there is a central registry, but I could be wrong.
 
Joined
May 22, 2009
Messages
9
#17
Sorry to resurrect this dead field; my question is pertinent (I hope)
I was hoping to rewrite Bignote to use a couple of small custom fields.
In anticipation I wanted to check if jFreidl's metadata preset builder could be used for additional now-unknown metadata plugins(that I create)

Nope, couldn't see BigNote any place and could see it in the list of potential fields.
Can only see bignote in LR its own preset and in all possible items.

I want to understand this before trying anything.

Can anyone point me to a source of information on how presets are edited and how fields like bignote can be added.

TIA,

Lew
 

johnbeardy

Senior Member
Staff member
Moderator
Lightroom Guru
Joined
Oct 8, 2007
Messages
4,546
Location
London
Lightroom Experience
Power User
Lightroom Version
#18
To see the BigNote data in other metadata views, you would need to send Jeffrey the MetadataDefinition file.

But as I say on BigNote's page, I suggest you should open the above file and examine the code. If you have some aptitude for coding, you should be able to figure it out and extend it (it's not much more than cut and paste). But if you can't figure it out, I feel the best advice is to proceed very cautiously - if at all.
 

reidthaler

Active Member
Joined
Jul 4, 2008
Messages
309
Location
San Francisco Bay Area
Lightroom Experience
Power User
Lightroom Version
#19
I want to add more than one custom field with Big Note. It sounds like it's just a matter of editing the MetadataDefinition file. I've tried doing so, but get and error message. How should I edit the file? I thought it would just be a matter of duplicating and pasting the existing test, and changing the ID, title and schemaVersion.

Thanks,

Reid


...........................................................

return {

metadataFieldsForPhotos = {

{
id = 'jbNote',
version = 1.01,
title = LOC "$$$/note/Note=Big note",
dataType = 'string',
searchable = true,
--browsable = true,
},
},

schemaVersion = 1, -- must be a number, preferably a positive integer



}