lxp,
Is this a mistake?
Do you mean the opposite?
Replace: push_back(getColumnMap(
With: push_back(defineColumn(
In 2021, we started with
new DefineColumn('...
This changed in 2022 to
exifColumns.push_back(DefineColumn('...
What you need in 2024 is
exifColumns.push_back(GetColumnMap('...
The good news: This last version is unlikely to change anytime soon
I have a couple if Find Filters that include Exiftool columns. They no longer work since I installed this update. Please help! could it be an Opus problem and not a problem with this Exiftool custom columns script?
Which columns don't work and how are the filters defined? What does "don't work" mean? Empty columns? Error messages? Do you see the columns in the menu?
I think the only column I have ever removed was Canon-OneShotAFRelease
. If you changed columns or added your own, all you should need to do is copy the lines over to the new script.
I do see the columns in the menu and the columns function with no problem. I can sort by these columns.
There are 2 filters that no longer work. one includes EXIF-DateTimeOriginal, and one includes EXIF-CreateDate.
One filter that no longer works (that used to work) includes a line with these elements:
Script column No Match EXIF-CreateDate After 2000-01-01
I use this filter to find photos without an EXIF-CreateDate because that provides clues as to their origin.
Now the results basically ignore anything about EXIF-CreateDate and return results results with or without an EXIF-CreateDate
I installed the new script and did copy one line I had added to the old script.
Looks like you have a point here
Please add the following line after line 270 in the script:
if (value != '') value = DOpus.Create().Date(value);
The whole block should look like this then:
if (type == 'datetime' || type == 'date' || type == 'time') {
value = value.replace(/^(\d\d\d\d):(\d\d):(\d\d)/, '$1-$2-$3');
if (value != '') value = DOpus.Create().Date(value);
} else if (type == 'number' || type == 'double' || type == 'duration') {
value = value.replace(/[^\d\.]/g, '');
}
Great! It's working now.
Update 2024-01-23
- Added option to generate cache values in either human or machine readable format (ExifTool's printConv option)
- Added column
QuickTime-Subtitle
- Added
durationh
column type - Added a few evaluator bits to the toolbar (no functional changes)
- Fixed datetime columns not searchable as date
Thanks for the update. I was reluctant to try this version after making modifications to the previous version, but my old copy of Beyond Compare 3 made quick work of it. They are another upgrade I need to do. I know exactly where they are located in Madison
A spectacular and extremely worthwhile script. I'm trying to customize this tool. I've commented out much of the pre-made getcolumnmap entries, leaving a few on in several categories, as a first step toward adding some additional exiftool fields. In all but one category ("File"), ticking the category under Column makes all the columns that I've not commented out appear properly in the folder list. However, the File category is grayed out, even though I can still manually add the getcolumnmap items in the File category into the lister pane. I can't figure out what's different.
Additional possibly related symptom: The "Exiftool script is on" toggle button is stuck on.
Suggestions? And thanks again for this.
(Derivative question: Looking at Exiftool.Dop, it looks like when I eventually add items under, say, Makernotes, I won't be able to just check Makernotes under the Column button, as the default ones are hard-coded, unless I add their lines into exiftool.dop also?)
Incidental question: Is there a place in the script to change the cache duration, other than using the button?
ColumnExifTool_nothingadded.js.txt (62.3 KB)
I can't follow. Could you post a screenshot?
You're faster than I could edit my post!
Photo attached, showing File:Exifbyteorder column, but "File-*" under Columns is gray.
Also please re-look at
my post, as I've edited a few things.
I see. That's because the buttons now refer to unknown columns. Delete them or make new buttons. With ExifToolColumnsToCommands from the Tools menu, you can quickly convert the entries in the script to commands.
No, you need to manually add all. I'd love to be able to use wildcards here!
What is cache duration?
Ooh, a weirdness: If I also uncomment File:Bitspersample in addition to the File:Exifbyteorder, then the File category becomes clickable, and creates both columns properly in the lister!
And just to clarify, these aren't items I added in, they're from your originals just commented out or not.
By cache duration I meant how long before it refreshes the exiftool cache, if one doesn't use the Delete Cache button. (Your old version of the script had a line to set the duration).
And this is cool, getting real-time support, from Switzerland no less!
Right. The current version eliminates the necessity for that step. Now, the script conducts a per-file check and exclusively forwards modified files to ExifTool. This keeps the cache updated with minimal background activity.
Ah, I think I found an actual reproducible bug!
If the first item in each category is commented out, that category will not be selectable on the "Columns" dropdown.
To reproduce:
Comment out all the items.
Uncomment say the ASF:AudioCodecDescription line.
The ASF category will not be selectable on the Columns dropdown.
Uncomment also the ASF:AudioChannels line.
Now the ASF category is selectable, and both columns will successfully show in the lister.
Same for each of the categories. If the first item is something that was added and not part of the original script, it will also succeed in showing that category.
I can't figure out why, but I think this is what was causing my problems yesterday. I guess it could be something in my Preferences, but we'll see what you say. Otherwise, this script is brilliant.
TY.
The ExifTool groups are not categories for Opus (it'd be nice if they were or could be). Opus treats the columns all the same and puts them in one list. But if there is only one column generated by the script, Opus won't create an ExifTool submenu. Instead, it will place the column directly into the menu.
Two script columns
One script column
Hey, first a big thanks for your work, helps alot!
I am struggling with copying metadata of a selected file to clipboard.
I found this script in another thread but fail to adjust it to my needs. Is it possible to select custom metadata from exifTool in the tmp variable?
function OnClick(clickData) {
var tab = clickData.func.sourcetab;var result = ''; for (var e = new Enumerator(tab.selected_files); !e.atEnd(); e.moveNext()) { var item = e.item(); var tmp = item.metadata.audio.mp3songlength; if (typeof tmp == 'undefined') continue; result += tmp + '\n'; } if (result == '') return; DOpus.SetClip(result);
}
Appreciate the response. I was really just looking at the dropdown from Columns in the Exiftool toolbar that's created, since I use that to turn on or off the set of columns created by that category, e.g., to have the lister show all the ASF columns that I haven't commented out in columnexiftool.js. In this dropdown, ASF is grayed out if the first item in the ASF group is commented out. (This first item would also be the first item in that section of exiftool.dop, which I'm guessing is where the bug lies).
Not as easily as one would hope (true for all script columns). In this particular case, you could skip the script and use ExifTool directly, e.g.
@nodeselect
exiftool.exe -DateTimeOriginal {filepath} | clip
Set the button function to "MS-DOS Batch".
Here's a script that lets you copy the values of script columns: