ExifTool Custom Columns

Yes. The idea is to force the script to rebuild the cache if it can't detect changes in the metadata because the modified date didn't change.

So if you are in the root of a drive and run the command the entire cache for this drive will be deleted. Running the command in This PC won't do anything. I could change this to make it delete the entire ExifToolCache folder after a warning message.

Are you saying to navigate to that folder and delete it --or any of its subfolders?

Yes.

How does one 'manually refresh the cache '?

By deleting the cache files. If you have a large folder and don't want to rebuild the entire cache, use OpenCacheInDual and delete the text files whose corresponding media files you want the script to update.

Great plugin.

By the way, I have added ExifTool in DOpus-Scripting-Extensions.
It allows rewriting this plugin in a simpler and faster way, as no caching is required.
I have already used this approach to create ExifTool GUI dialog.

DOpus already provides a lot of metadata columns out of the box. Is anyone interested in an improved version of this ExifTool columns plugin?

Sure thing. But can you make it so you don't have to manually edit the script everytime you need to add or remove columns? If the script had a simple UI just for that, it would be great.

1 Like

I do hope that an ability to manually edit the data fields would remain.

But, a database and a command ability to reorder it every now and then makes some sense to me.

1 Like

can you make it so you don't have to manually edit the script everytime you need to add or remove columns?

I suppose a script parameter that is a comma-separated list of Exif tags would suffice.

I do hope that an ability to manually edit the data fields would remain.

What does this functionality look like?

But, a database and a command ability to reorder it every now and then makes some sense to me.

Do you mean the cache?

I was only thinking of MySQL databases that I did many years ago.
New database rows were appended to the end.

Yes, but a UI was suggested.

Don't underestimate how much a simple UI can boost usability.

Take this older script, for example, which lets you set custom names and types for filtering columns via script config window, just like what you're suggesting.

Compared to their succesor, it’s a lot easier since you don't have to remember every field name. It's a real game-changer, in my opinion.

In newer DOpus versions, you can even double-click an item in a listview to grab its column index, perfect for in-place column editing.

For your specific case, something like this to edit columns info might work better.

Plus, adding a field for a custom regex rule to grab or convert data to a certain type would be pretty neat. :backhand_index_pointing_right: :backhand_index_pointing_left:

1 Like

Could you give a link to the source code of this or a similar GUI?

Update 2025-06-10

  • Added support for DateTime fields with timezones, e.g. 2000-01-01 00:00:00+02:00
  • Added several ExifTool groups and tags
  • A bit of TLC for the code, the configuration, and the buttons

ExifTool's new built-in logo isn't very dark mode-friendly. You'll find better ones here:

New ExifTool Logo!


New or changed columns
exifColumns.push_back(GetColumnMap('ASF', 'AudioChannels', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('ASF', 'AudioSampleRate', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('ASF', 'DataPackets', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('ASF', 'Flags', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('ASF', 'ImageHeight', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('ASF', 'ImageWidth', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('ASF', 'MaxPacketSize', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('ASF', 'MinPacketSize', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('ASF', 'Preroll', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('ASF', 'StreamNumber', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('Composite', 'AudioBitrate', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Composite', 'DateTimeOriginal', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Composite', 'Duration', 'CDms', 'CDms', 'CDms', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('Composite', 'Flash', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'CharacterSet', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'CodeSize', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('EXE', 'EntryPoint', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'FileDescription', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'FileFlags', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'FileFlagsMask', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'FileOS', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'FileSubtype', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'FileVersion', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'FileVersionNumber', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'ImageFileCharacteristics', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'ImageVersion', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'InitializedDataSize', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('EXE', 'InternalBuildNumber', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'InternalName', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'ISInternalDescription', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'ISInternalVersion', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'LanguageCode', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'LegalCopyright', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'LinkerVersion', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'ObjectFileType', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'OriginalFileName', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'OSVersion', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'PDBAge', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'PDBCreateDate', '', '', '', '', '', 'datetime'));
exifColumns.push_back(GetColumnMap('EXE', 'PDBFileName', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'PDBModifyDate', '', '', '', '', '', 'datetime'));
exifColumns.push_back(GetColumnMap('EXE', 'PEType', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'ProductName', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'ProductVersion', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'ProductVersionNumber', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'Subsystem', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'TimeStamp', 'EXE-TimeStampAsString', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXE', 'UninitializedDataSize', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('EXIF', 'DateTimeOriginal', 'DateTimeOriginalAsString', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXIF', 'DateTimeOriginal', 'DTOplus', 'DTOplus', 'DTOplus', '9999-12-31', '', 'datetime'));
exifColumns.push_back(GetColumnMap('EXIF', 'DateTimeOriginal', 'DTOstr', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('EXIF', 'StripByteCounts', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('EXIF', 'ThumbnailLength', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('EXIF', 'ThumbnailOffset', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('File', 'CurrentIPTCDigest', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('File', 'FileSize', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('File', 'ID3Size', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('File', 'LineCount', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('File', 'PageCount', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('File', 'WordCount', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('Flash', 'AudioBitrate', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('Flash', 'AudioBitsPerSample', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('Flash', 'AudioChannels', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('Flash', 'AudioSampleRate', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('Flash', 'ByteLength', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('Flash', 'FrameRate', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('Flash', 'ImageHeight', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('Flash', 'ImageWidth', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('Flash', 'TotalDataRate', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('Flash', 'VideoBitrate', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('FlashPix', 'Author', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('FlashPix', 'CodePage', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('FlashPix', 'Comments', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('FlashPix', 'CreateDate', '', '', '', '', '', 'datetime'));
exifColumns.push_back(GetColumnMap('FlashPix', 'Keywords', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('FlashPix', 'ModifyDate', '', '', '', '', '', 'datetime'));
exifColumns.push_back(GetColumnMap('FlashPix', 'Pages', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('FlashPix', 'RevisionNumber', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('FlashPix', 'Security', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('FlashPix', 'Software', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('FlashPix', 'Subject', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('FlashPix', 'Template', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('FlashPix', 'Title', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('FlashPix', 'Words', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('Font', 'Copyright', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Font', 'Description', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Font', 'Designer', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Font', 'DesignerURL', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Font', 'FontFamily', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Font', 'FontName', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Font', 'FontSubfamily', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Font', 'FontSubfamilyID', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Font', 'License', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Font', 'LicenseInfoURL', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Font', 'Manufacturer', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Font', 'NameTableVersion', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Font', 'PostScriptFontName', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Font', 'Trademark', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Font', 'VendorURL', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('GIF', 'AnimationIterations', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('GIF', 'BackgroundColor', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('GIF', 'BitsPerPixel', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('GIF', 'ColorResolutionDepth', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('GIF', 'Duration', '', '', '', '', 'right', 'duration'));
exifColumns.push_back(GetColumnMap('GIF', 'FrameCount', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('GIF', 'GIFVersion', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('GIF', 'HasColorMap', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('GIF', 'ImageHeight', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('GIF', 'ImageWidth', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('ICC_Profile', 'DeviceMfgDesc', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ICC_Profile', 'DeviceModelDesc', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ICC_Profile', 'Luminance', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ICC_Profile', 'MeasurementBacking', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ICC_Profile', 'MeasurementFlare', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ICC_Profile', 'MeasurementGeometry', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ICC_Profile', 'MeasurementIlluminant', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ICC_Profile', 'MeasurementObserver', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ICC_Profile', 'Technology', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ICC_Profile', 'ViewingCondDesc', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ICC_Profile', 'ViewingCondIlluminant', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ICC_Profile', 'ViewingCondIlluminantType', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ICC_Profile', 'ViewingCondSurround', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'Album', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'Artist', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'AverageLevel', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'Band', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'BeatsPerMinute', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'Comment', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'Compilation', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'Composer', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'EncodedBy', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'EncoderSettings', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'Length', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'Lyrics', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'Mp3gainMinmax', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'Mp3gainUndo', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'MusicCDIdentifier', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'PeakValue', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'Performer', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'Popularimeter', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'Publisher', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'RecordingTime', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'ReplaygainTrackGain', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'ReplaygainTrackPeak', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'Tcmp', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'Title', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ID3', 'Track', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('IPTC', 'ApplicationRecordVersion', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('IPTC', 'Caption-Abstract', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Matroska', 'Encoder', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Matroska', 'MuxingApp', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Matroska', 'VideoScanType', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Matroska', 'WritingApp', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'AudioBitrate', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'AudioLayer', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'ChannelMode', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'CopyrightFlag', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'Emphasis', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'Encoder', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'IntensityStereo', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'LameBitrate', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'LameLowPassFilter', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'LameMethod', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'LameQuality', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'LameStereoMode', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'LameVBRQuality', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'MPEGAudioVersion', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'MSStereo', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'OriginalMedia', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'SampleRate', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'VBRBytes', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'VBRFrames', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('MPEG', 'VBRScale', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'BitDepth', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'ColorHalftoningInfo', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'ColorMode', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'ColorTransferFuncs', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'Compression', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'CopyrightFlag', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'DisplayedUnitsX', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'DisplayedUnitsY', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'GlobalAltitude', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'GlobalAngle', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'GridGuidesInfo', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'HasRealMergedData', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'IDsBaseValue', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'ImageHeight', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'ImageWidth', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'IPTCDigest', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'LayerBlendModes', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'LayerColors', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'LayerCount', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'LayerGroupsEnabledID', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'LayerIDs', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'LayerNames', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'LayerOpacities', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'LayerRectangles', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'LayerSelectionIDs', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'LayersGroupInfo', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'LayerUnicodeNames', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'LayerVisible', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'MacintoshPrintInfo', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'NumChannels', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'NumSlices', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'Photoshop_0x0fa0', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'Photoshop_0x0fa1', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'PhotoshopThumbnail', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'PixelAspectRatio', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'PrintFlags', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'PrintFlagsInfo', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'PrintPosition', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'PrintScale', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'PrintStyle', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'ReaderName', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'SlicesGroupName', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'TargetLayerID', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'URL_List', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'WriterName', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'XMLData', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'XResolution', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('Photoshop', 'YResolution', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('QuickTime', 'AuxiliaryImageType', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('QuickTime', 'ColorPrimaries', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('QuickTime', 'ColorProfiles', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('QuickTime', 'MatrixCoefficients', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'AcidizerFlags', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'Artist', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'Beats', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'Comment', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'FineTune', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'FrameCount', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'FrameRate', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'Gain', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'Genre', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'HighNote', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'HighVelocity', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'ImageHeight', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'ImageWidth', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'LowNote', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'LowVelocity', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'Manufacturer', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'MaxDataRate', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'Meter', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'MIDIPitchFraction', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'MIDIUnityNote', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'NumberOfSamples', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'NumSampleLoops', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'Product', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'Quality', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'RootNote', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'SamplePeriod', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'SamplerDataLen', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'SampleSize', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'SMPTEFormat', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'SMPTEOffset', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'Software', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'StreamCount', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'StreamType', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'Tempo', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'TextJunk', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'TotalFrameCount', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'Unknown_ID3', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'Unknown_indx', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'UnshiftedNote', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'VideoCodec', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('RIFF', 'VideoFrameCount', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('RIFF', 'VideoFrameRate', '', '', '', '', 'right', 'number'));
exifColumns.push_back(GetColumnMap('XMP', 'ColorMode', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'ColorSpace', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'ComponentsConfiguration', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'DateTimeDigitized', '', '', '', '', '', 'datetime'));
exifColumns.push_back(GetColumnMap('XMP', 'DateTimeOriginal', '', '', '', '', '', 'datetime'));
exifColumns.push_back(GetColumnMap('XMP', 'DerivedFromDocumentID', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'DerivedFromInstanceID', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'ExifImageHeight', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'ExifImageWidth', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'ExifVersion', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'ExposureCompensation', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'ExposureProgram', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'ExposureTime', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'FileSource', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'FlashFired', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'FlashFunction', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'FlashMode', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'FlashpixVersion', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'FlashRedEyeMode', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'FlashReturn', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'FNumber', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'FocalLength', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'History', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'ICCProfileName', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'ISO', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'Make', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'MaxApertureValue', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'MeteringMode', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'Model', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'Orientation', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'ResolutionUnit', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'XResolution', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'YCbCrPositioning', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('XMP', 'YResolution', '', '', '', '', '', ''));
exifColumns.push_back(GetColumnMap('ZIP', 'FileVersion', '', '', '', '', '', ''));
3 Likes

Thank you very much!
Do you have info to share about exactly what fields were was added or changed? Or will I need to examine the list of fields?
I had added a few columns on my own. Maybe they are no longer needed.

I've added a list to the post above.

You can add definitions to the top of the list (starting on line 642). Duplicate entries that follow will be ignored. You'll see a message in the logs, e.g.

ColumnExifTool.js:  not added (dupe):   ZIP-ZipUncompressedSize

You can delete or outcomment duplicates, or ignore the message. Performance will not be affected.