Excel spreadsheet to IPTC data

Started by jordanmm, June 18, 2013, 02:01:18 AM

Previous topic - Next topic

jordanmm

Hi, I don't know if this has been adressed before and I'm sorry if it has. I'm brand new to exiftool and I love what I have seen so far. I have an excel spreadsheet with metadata such as keywords and descriptions for 4000+ images and I need to somehow transfer this to IPTC metadata on the images to save me some time keywording when I upload the images. After attempting to do this myself and failing many times I've decided its over my head and I've come for help. I've searched and failed to find a topic on this, if it exists please just link me, thanks.

jordanmm

Just solved my own problem so I'm putting this out here for anyone else in the same situation. I created an excel spreadsheet with 'exiftool ' in the first column down as far as the amount of images you have then '-keywords+=' in the next column and pasted the keywords for all the images in the third column. Then I added a fourth column with the filename of each and a fifth with the '&& ' operation which executes the next operation as long as the first has been successful. I then copied the table I created and used this useful site http://textmechanic.com/Add-Remove-Line-Breaks.html to remove the line breaks leaving me with one long string of code. It took my computer a good 5 or 10 mins to paste the code into terminal but it only took around 30s for the operation to actually be carried out. This was for the 65 images I tested it out on. Much easier to do my 4000+ images in batches using this method than to do them by hand.

Phil Harvey

Smart.  If you want, you can speed this up somewhat by doing it with a single call to exiftool.  Instead of removing line breaks, add a line break between each argument and generate a file like this:

-keywords+=one
-keywords+=two
file1.jpg
-execute
-keywords+=this
-keywords+=that
file2.jpg
-execute
...


Then use this command:  exiftool -@ args.txt

Notice also that I am writing all keywords individually.  From your description it sounded like you may have been writing them as a combined string, which you can also do, but then you need to split them with the -sep option (be sure to put the "-sep" and ", " on separate lines in the argfile).  See FAQ 17 for details.

- 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 ($).