Main Menu

ExifTool for Dummies

Started by Phil Harvey, January 12, 2011, 02:25:05 PM

Previous topic - Next topic

dhackney

#45
Phil,

RE: scare away
That's probably more of a self-managing filter than you may realize. It will be a relationship between pain and cost: pain they are in with the metadata problem they have versus their perceived cost of finding a solution, either one of the exisitng GUI tools or going up the learning curve on ExifTool.

The Quick Start Guide is a perfect opportunity to lower the perceived barrier to entry for how to Get Stuff Done with the tool. Some screen shots of drag & drop in action would go a long way in that regard.

For the command line, breaking down a sample command line in the Quick Start could do the same. See attached for something that would be a huge help. If you provided 2 to 10 breakdowns like that, in a series that grew progressively more complex, I think you'd reduce support requirements by 60% and speed up the learning curve by about 10x.

edit: Note that in my haste I neglected to document the "." character in the sample command line, which sets the target directory.


RE: no similar general tools

I've been hearing from my friends on the Mac side since I posted the utilities yesterday. In a former lifetime I wrote code for that platform (and enjoyed it), but don't currently use it.

I am surprised and disheartened to learn there are no point-and-click options for them there.

I doubt many of my friends with metadata challenges on Mac have ever even seen a command line before.

IMO, there's an opportunity in that unmet need for somebody to write an ExifToolGUI type front-end. What are you doing in your spare time?   ;)

Doug

[edit: point out mistake in attached samples]

Phil Harvey

Hi Doug,

Thanks for the example command-line breakdown.  I think this is a good idea.  The major thing that would change your "this must follow XXX and preceed YYY".  For most options, order is unimportant.  Of course, additional arguments for an option must immediately follow the option (ie. -tagsFromFile FILE), and it is useful to mention that, but options like -r for example may be placed anywhere on the command line (except between an option and its arguments as mentioned).

In fact, exiftool is more flexible about order of arguments than most other Unix-type command-line utilities.  With most other utilities, the target file name(s) must come after the options.  With exiftool, this doesn't matter.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

dhackney

#47
Quote from: Phil Harvey on July 18, 2011, 07:55:25 AM
For most options, order is unimportant. 

...

In fact, exiftool is more flexible about order of arguments than most other Unix-type command-line utilities.  With most other utilities, the target file name(s) must come after the options.  With exiftool, this doesn't matter.

Phil,

There's a great book that illuminates some counterintuitive aspects of choice: The Paradox of Choice by Barry Schwartz http://www.amazon.com/Paradox-Choice-Why-More-Less/dp/0060005688

For advanced users (Ninjas) the maximum flexibility and free-form nature is probably a Very Good Thing.

For others, especially those going up the learning curve or renewing their familiarzation, it could be a potential stumbling block.

Quote from: Phil Harvey on July 18, 2011, 07:55:25 AM
Of course, additional arguments for an option must immediately follow the option (ie. -tagsFromFile FILE), and it is useful to mention that, but options like -r for example may be placed anywhere on the command line (except between an option and its arguments as mentioned).

Something similar to the command line breakout related to arguments for options and any other instance where two or more elements interact would be very helpful, especially if it included very verbosely documented examples and uses.

Conceptually, think about a quick start document that includes multiple code examples showing actual values in addition to the upper case representation: TAG, FMT, SRCFILE, SRCTAG, NUM, DIR, CFGFILE, etc.

--------------------------------------------------------------------
Metadata tag/field values

The generic command line syntax for ExifTool to extract (view) a metadata tag/field is:
-exiftool -TAG

Specific examples of this command are:
-exiftool -Location
-exiftool -XMP-iptcCore:Location

In this example, the value for the metadata tag/field "Location" is displayed.

Platform variations:

  • Mac/Unix:
  • Windows:
  • Other:
--------------------------------------------------------------------
Date/time display, print or data format

option used: -d FMT

The format of date/time metadata tags/fields are set with the -d option. The -d option must always be followed by a format statement that tells ExifTool what format to apply to the date.

The -d option is commonly used when displaying and printing date/time information, as well as when populating specific date/time metadata tags/fields with date/time information.

Caveat: * Note that only one date format is allowed per command line. *

The default date/time format is: %Y:%m:%d %H:%M:%S This format equates to CCYY:mm:DD HH:MM:SS where:
CC = century, e.g., 2000
YY = year, e.g. 09
mm = month, e.g. 12
DD = day, e.g. 28
HH = hour, e.g. 14
MM = minutes, e.g. 48
SS = seconds, e.g. 59

* Note: 24 hour values are used in the date/time field, meaning 2PM is stated as 14 *

A sample command line use of the -d options is:
exiftool sample.jpg -createdate -d %Y/%m

The conceptual grouping of this command line is:
exiftool (sample.jpg (-createdate (-d %Y/%m))

exiftool = runs the exiftool program
sample.jpg = the source photo/file the metadata tag/field "createdate" will be extracted from
-createdate = the metadata tag/field the value is extracted from
-d = the date format option
%Y/%m = the date format, which yields a value in this format: 2011/07



* Caveat:                                      *
* Note:                                          *


Platform variations:

  • Mac/Unix:
  • Windows:
  • Other:

-------------------------------------------------------

Etc.

-------------------------------------------------------

The general idea is to show each option & parameter that are required or common and how each pairing of options & parameters works, including specific, verbose examples.

You will know you succeeded when nobody who is trying to *initially* learn or relearn the tool ever again sees: File not found: DIR

8^)


Doug

[edit: added content to and fixed errors in -d section]

Phil Harvey

Hi Doug,

Thanks for the suggestion.

Yes, I like this format, and would have gone to something like this for the existing documentation but it doesn't work as a flat document.

However, with proper indexing this is definitely the way to go.  And we have already established that a good index is essential.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

simonmcnair

It'd be awesome to have a directory of shell snippets that you and/or power users use with a brief explanation of how and when to use them.

It'd also be nice to have a peek in to your mind and understand what you do to manage your photo collection, what your viewpoint is on lossless rotation vs Orientation Tag, photo archival.  You on googleplus btw ? (it'd be nice to follow your endeavours)

Simon

Phil Harvey

Hi Simon,

Quote from: simonmcnair on October 27, 2011, 05:12:36 AM
It'd be awesome to have a directory of shell snippets that you and/or power users use with a brief explanation of how and when to use them.

This was the idea of all of the examples in the application documentation.

QuoteIt'd also be nice to have a peek in to your mind and understand what you do to manage your photo collection, what your viewpoint is on lossless rotation vs Orientation Tag, photo archival.  You on googleplus btw ? (it'd be nice to follow your endeavours)

Googleplus?  I haven't heard of it yet.

In 2001 when I started taking digital photos I looked at Apple's iPhoto and quickly discarded the idea of using it to manage my library.  My main criteria were 1) the ability to organize images by date, 2) display as many images per possible on a contact sheet for each day, 3) handle an unlimited number of images without impacting performance (this is what killed the iPhoto idea), 4) display selected image metadata, 5) automated import from the memory card, and 6) automated lossless rotation.  I figured the best way to get exactly what I wanted was to do it myself, so I wrote my own image cataloguing tool.  Since then, I have made some upgrades to handle the RAW files from the various DSLR's I have owned, and written some other small scripts to handle some other tasks, but icat is still the heart of my photo management system.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

simonmcnair

Quote
This was the idea of all of the examples in the application documentation.
Yeah, but be honest how many of the examples do you use on a day to day basis.  If you want a page for dummies the questions will be along the lines of (in my case).   I want all my files to have a unique name, be easily found, sorted by date and time stamp from exif data. In my case I have a year folder sorted by (for example):  S:\Digi Camera\2011\2011-01-08_14-50-30.JPG.  This means that windows will sort them correctly.

I'm a definate linux dummy, I use Google notebook and I have at least 30 notebooks of commandlines that I frequently use.  When I muck around with images for instance, I quite often use perl -MFile::Find -e"finddepth(sub{rmdir},'.')" which is awesome for removing empty directories.

I suppose a dummy has the question "I have 20,000 photos and I want them to be sorted and easily findable with the least amount of effort".

The other point is, if the exif tags are blank, I don't want it to rename my file at all, or maybe put it in a special folder.

QuoteIt'd also be nice to have a peek in to your mind and understand what you do to manage your photo collection, what your viewpoint is on lossless rotation vs Orientation Tag
Any views on the best way to rotate or crop a (jpeg image with, as far as possible, no image degradation ?

QuoteGoogleplus?  I haven't heard of it yet.
https://plus.google.com/ It's googles answer to twitter and facebook.

QuoteIn 2001 when I started taking digital photos I looked at Apple's iPhoto and quickly discarded the idea of using it to manage my library.  My main criteria were 1) the ability to organize images by date, 2) display as many images per possible on a contact sheet for each day, 3) handle an unlimited number of images without impacting performance (this is what killed the iPhoto idea), 4) display selected image metadata, 5) automated import from the memory card, and 6) automated lossless rotation.  I figured the best way to get exactly what I wanted was to do it myself, so I wrote my own image cataloguing tool.  Since then, I have made some upgrades to handle the RAW files from the various DSLR's I have owned, and written some other small scripts to handle some other tasks, but icat is still the heart of my photo management system.

I find this littered all over the forum.  Really useful pieces of information that you've imparted which very few people will read unless they keep up to date with the forum.  That should be on the homepage of exiftool too.  Advertise it.  Sounds like a nifty piece of kit.

Simon

Phil Harvey

Quote from: simonmcnair on October 27, 2011, 10:22:26 AM
Any views on the best way to rotate or crop a (jpeg image with, as far as possible, no image degradation ?

Sorry, I forgot to answer this.  Personally, I use jpegtran to do my lossless rotations.  Lossless cropping is not possible unless you crop on an 8-pixel boundary.  I don't know about utilities for this.

Quotehttps://plus.google.com/ It's googles answer to twitter and facebook.

Thanks for the URL.

Quote[about icat] Advertise it.  Sounds like a nifty piece of kit.

I made icat available on the off chance that someone may find it useful, but I don't have time to support feature requests etc, so I don't want to advertise it.  It really doesn't have any target market since the only people who might use it are geeks like me, but then they would probably rather write their own anyway to do exactly what they want.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

RayArdia

Quote from: Beholder3 on March 10, 2011, 12:02:30 AM
Hi,

coming back to the original question I can also support the view of a dummy user.  ;)

My "feel" on the situation is:
- the documentation is complete but so extensive it's not too attractive for real inexperienced people who don't know where to start. It's more use to pros I think. The best thing to stop a user from using an application is always telling him "read the fucking manual" only once. You can bet he dumps the thing immediately if he's not desperate.
- I personally always look for examples which come close to my situation and then from the example look backwards to the abstract command help to try to figure out what happens.
- Any commands discussed here which do multiple things in one line I experience as counterproductive as they confuse me too much. They are good again for pros and specific optimal solutions but not for understanding. I think its like calculating things in Excel. If you are advanced user you try to achieve the perfect result in a single cell calculation where functions are nested to level 10. But the way I usually approach things first is I add a single calculation per column and do lots of columns first to be able to understand what I do. Then in the final tested version I put it all into one.

Result:
- I'd favor lots of generously explained examples which are structured in a helpful way so I am not confused by the mass of examples. The exewrcise wouldnt be helpful if it's just a huge flat list of examples. I underlined the three key words IMHO.

As a sidenote: Even minor details can be non-intuitive. For example for me as non English native speaker reading "DSTTAG<SRCTAG" at first was anything but intuitive because my eyes didnt really automatically turn the "DSTTAG" into "destination tag". I first justbread a wild bunch of letters.  ;) Seems dumb probably but that's language dependend stuff mixed with abbreviations and missing cases.

I agree with almost all the points made in Beholder3's well-written comments. I am completely flummoxed by most of what I read in this forum - and I do Know that that's my fault , not the forum's.
In Exiftool's case "RTFM" has, as far as I know NOT been posted, but I do find the manual, (though no doubt excellent for the experienced user) to be about as much use to me as an appliance manual without diagrams and written in Sanskrit!
I can't help in the writing of the Dummie's Guide but look forward to reading it............Soon?
Ray

Phil Harvey

Hi Ray,

I had another go at writing the dummies guide, but I keep getting frustrated by the number of things I have to explain and the number of screen caps I need to make for pictures to illustrate what I am doing.  Couple this with the fact that I really don't like using Windows, and this explains the delay so far.

Also, I get depressed when I realize that nobody likes reading long descriptions, so I doubt that anyone would read the documentation I was writing anyway.

The answer to both problems is of course to be much more efficient in my writing, and to only present the information that is necessary to get the first-time user going with basic commands.

And with enough prompting by confused newbies like you, maybe I'll get off my ass and get this done... :)  (Could be a reasonable project for my xmas vacation.)

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Phil Harvey

Ray:  I have moved your new question into a separate topic:

Set date from directory name

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

pb

Since you didn't ask, here's my opinion.

The root problem is that exiftool has a huge number of features and a very complex command line interface, much of which is not intuitive.  This forces any guide to provide a profusion of special purpose examples.  Every guide should provide examples as the main intro to a feature, but because there are so many features and so many ways they can interact, in the case of exiftool this leads to the need for a *profusion* of examples, i.e. "how-to" items.

This makes me think that any attempt at "exiftool for dummies" is going to be frustrating, both for writer and reader.

What would make it easier?  An idea that occurs to me is an exiftool scripting language.  Well, this already exists:  it's the perl interface.  What I would suggest is a simplified domain-specific scripting language that easily translates to the perl api, and does not require the user to know how to install or use perl.  (But, it would have to be "installed" bringing along perl.)  This is a lot of work, so I don't expect anyone to do it.  I'm not volunteering, either, though it would be fun to construct.  Maybe you could find a masters student who would like it for a project.

Another, orthogonal, idea, to avoid generating endless screenshots, is to build an exiftool guided tour sandbox, where the user can try examples provided to them by the sandbox, and both console and results are presented in an integrated way, not being subject to what the os and window manager feel like doing.  The sandbox itself would contain whatever text needs to be in the dummies guide.  Also a lot of work, and also maybe a nice masters or even course project.  There might even be off the shelf software to aid in doing that.

--peter

geobernadotte

I Phil and others,

i read this hole thread about the dummies problem.
I'm a dummy myself.

Sorry, my analysis will not be as elaborate as some of the others before.

My main problem as dummy with the existing documention is:
When i find a set of commands that might fit to my needs or parts of it, i really have big problems deconstructing the individual parts of the procedure.

Most of the time, there is a short explantion on what its doing, but if a want to know what this -d, %Y or -common things are again, i have to use google on it (not easy with a minus in front of a single letter ;) ) to find one of your only loosely connected pages with enormous content.
So analyzing a single command set takes dozens of minutes ... and a day later, i forgot half of it, so the game starts again ..

Ok, enough talk. I sat down for some hours and created an example collection "I" would be able to learn with bit by bit how things interconnect.

This is just a quick example.
The main idea is:
- an exiftool commandline example
- An explanation of at least 2 lines what it does
- all items of the command listed individually with its general definitions

I hope the examples are not too stupid. I just copy/pasted the first best stuff that came along to fill the fields.
And there could be a lot more fields or sorting tools possible.

So, if you are interested in the basic idea:
login at
http://exiftool.berndvogelgesang.de/user/login
as
testuser
with
test

Cheers
Bernd

Phil Harvey

#58
Hi Bernd,

Thanks for the suggestion, but this confuses me a bit.

I understand why you want a few "decomposed" command-line examples, but I don't understand why it is difficult to figure out what the parts of the command do.  All of the command-line options are explained in detail in the application documentation.  An exception are the common -d format codes, which aren't listed here.  Perhaps they should be.

Is it that the application documentation is too confusing, or too verbose?

- Phil

Edit: I just browsed your concept web pages.  Very smooth.  I like the idea a lot.  Impressive that you worked this up so quickly.  I agree that something like this would be very useful.  Including the tag names in this documentation may be problematic though, because there are currently 5763 unique tag names (not counting duplicates in different groups).  However, maybe explaining the ones in the examples, with links to the Tag Name documentation, would be good enough.
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

geobernadotte

Hi Phil,

The problem is that 90% of the population have no idea of how computers work behind those fancy desktops.
So it's not a problem of your exiftool documentation, but of general lack of knowledge on command line concepts.
Me for example I had my first encounter with basic commandline stuff on windows, when i wanted a list of files in a folder and its subfolders put into an exel sheet.
I bet most people are still going to type those names from the screen into an excel sheet instead of using e.g. dir/s/b > Listing.txt and then proceed.

99% of those 90% will never want to learn how to work with command lines.
But those 1% like me need hell of a time to sort things out, by reading hundreds of examples from forums and pages to understand the logic and the commands.
And if I hadn't played around with gpsbabel for some time before, i would have never dared to step into exiftool.

Exiftool is an additional "dialect" in that computer "language", and the unexperienced user has difficulties to distinguish the parts of a command that are special exiftool terms and which are the generally used things.

So, my attempt was to show examples, where not only the exiftool commands are explained, but also all parts of this command, exiftool-specific or not, to be easily able to get the hole context.

I share your concerns about those 5763 unique tags, but as i myself still have no real idea about all that (dummy!), i am not really able to develope a concept how to handle that.
But in general, i prefer the fexibility of database driven collections over plain text documents.

With drupal, being a dummy there as well, there are multitudes of possibilities how to set up such collections: as nodes, as tags (how i do it now) etc.

And one advantage would be as well, that other users could contribute to such a collection as well, by posting examples and just adding those tags from your documentation they used there.
By this, the database could grow step by step.

So, maybe you like the idea and i would be happy to improve this test page with input from your side or others.

Bernd