I'm a non-programmer trying to help a non-profit organization with their DAM system. Right now I have a text dump from Microsoft SharePoint that I've cleaned up in Excel and need to move that metadata into about 5K image files. So, I'm trying to learn how ExifTool works and am trying to run a small test. I've set up a simple table in Excel with the following column headings: SourceFile, description, comment, keyword. I've placed the .csv file with data for 10 files in each column (and the column heading). Then, on my Mac, I'm opening ExifTool in Terminal, going into the directory with the .csv and jpeg files in it and entering the following:
EMcs-QC-1000:TestFiles emccainaz$ exiftool -csv="Exif_Test" .
Error opening CSV file 'Exif_Test'
No SourceFile './Test copy 1.jpg' in imported CSV database
(canonical path: '/Users/emccainaz/TestFiles/Test copy 1.jpg')
No SourceFile './Test copy 10.jpg' in imported CSV database
(canonical path: '/Users/emccainaz/TestFiles/Test copy 10.jpg')
No SourceFile './Test copy 2.jpg' in imported CSV database
(canonical path: '/Users/emccainaz/TestFiles/Test copy 2.jpg')
No SourceFile './Test copy 3.jpg' in imported CSV database
(canonical path: '/Users/emccainaz/TestFiles/Test copy 3.jpg')
No SourceFile './Test copy 4.jpg' in imported CSV database
(canonical path: '/Users/emccainaz/TestFiles/Test copy 4.jpg')
No SourceFile './Test copy 5.jpg' in imported CSV database
(canonical path: '/Users/emccainaz/TestFiles/Test copy 5.jpg')
No SourceFile './Test copy 6.jpg' in imported CSV database
(canonical path: '/Users/emccainaz/TestFiles/Test copy 6.jpg')
No SourceFile './Test copy 7.jpg' in imported CSV database
(canonical path: '/Users/emccainaz/TestFiles/Test copy 7.jpg')
No SourceFile './Test copy 8.jpg' in imported CSV database
(canonical path: '/Users/emccainaz/TestFiles/Test copy 8.jpg')
No SourceFile './Test copy 9.jpg' in imported CSV database
(canonical path: '/Users/emccainaz/TestFiles/Test copy 9.jpg')
1 directories scanned
0 image files read
Am I getting close? What do I need to do to make this work?
Thanks,
Edward McCain
Hi Edward,
Sounds like you are on the right track. I can't tell if your CSV file is in the correct format, but your description sounds good.
The problem is that exiftool can't find the .csv file. It is likely it has an extension (which is maybe hidden by the OS X GUI). Try listing the directory contents with this command to see what the actual filename is:
ls .
- Phil
Yes, I forgot to add the .csv as a file extension, so I did get it to work, sort of! I am only seeing the description, not the comment or keyword. I'm looking at the files in Photo Mechanic. I would like to use all IPTC fields. I did find the IPTC Tags you kindly provided. Is the problem that I should have used the tag "Keywords" instead of the singular "Keyword"? But how to handle multiple keywords, which is usually the case. I think my larger data file is tab separated, so that the data can contain commas without throwing the import off.
Also, the original files are renamed, which means I'll have to do some cleanup. Is there a way to reverse this so that the originals retain their name and the updated files get the appended name?
Thanks,
Edward
Quote from: emccainaz on October 31, 2011, 07:49:26 PM
Yes, I forgot to add the .csv as a file extension, so I did get it to work, sort of! I am only seeing the description, not the comment or keyword. I'm looking at the files in Photo Mechanic.
Reading FAQ number 3 (https://exiftool.org/faq.html#Q3) may help here.
QuoteBut how to handle multiple keywords, which is usually the case.
Reading FAQ number 17 (https://exiftool.org/faq.html#Q17) may help here.
QuoteAlso, the original files are renamed, which means I'll have to do some cleanup. Is there a way to reverse this so that the originals retain their name and the updated files get the appended name?
You can use the
-o option to output the updated files to wherever you want or with whatever name you like.
- Phil
I've been experimenting some more and am confused about how ExifTool metadata tags. For instance, if I use the following fields in the csv file:
SourceFile, Description, Location, CreatorContactInfo, Keywords
I only get my one keyword embedded in the JPEG files.
If I change Keywords to Keyword, so that the following fields are in the csv file:
SourceFile, Description, Location, CreatorContactInfo, Keyword
(just changing Keywords to Keyword) then I get my description and location metadata embedded in the JPEGs.
What am I doing wrong here? I have looked at the tags and I'm sure I don't understand that much of it, but I would appreciate knowing how to select the right tags (mostly IPTC, but standard XMP fields would be okay, too - I'm viewing the information in Photo Mechanic and will eventually import the image files into ResourceSpace, which uses ExifTool to recognize metadata as I understand things.
Thanks,
Edward
Hi Edward,
For importing list-type tags with CSV, you will need to use the -sep option to split them back into a list.
My guess is that PhotoMechanic is ignoring the XMP if you write IPTC to the file. Try this header line instead:
SourceFile,XMP:Description,XMP:Location,XMP:CreatorContactInfo,XMP:Subject
Here I have been more specific about where the information is written, although I believe that XMP is the default location for all these tags if the "XMP:" group is omitted.
- Phil
Hi Phil,
So far so good. I have successfully identified and mapped 19 XMP fields and have successfully moved data from a .csv file to a set of 55 test files of various formats! Hooray! I'm amazed that I have gotten this far - many thanks to your help.
Before I start working with the whole 5,000 files (maybe I should break the files into smaller groups???) I'm wanting to understand more about how to use the -o (Outfile) option. I see that you have a FMT string (does that mean Format String?), but I'm not sure how to implement it. I just want to move the original files into another folder. That folder can be nested inside the current folder or at the same level, whichever is easier to specify, since I'm easily confused by CLI interfaces. I also don't want to rename the files, just move them.
I'm also stumped by some files that don't want to update properly. Here's the message I get:
EMcs-QC-1000:CBD_Salamanders emccainaz$ exiftool -csv="CBD_Salamanders.csv" .
No SourceFile './CaliforniaTigerSalamander_GeraldAndBuffCorsi_©CaliforniaAcademyofSciences_PAY_1.jpg' in imported CSV database
(canonical path: '/Users/emccainaz/CBD_Salamanders/CaliforniaTigerSalamander_GeraldAndBuffCorsi_©CaliforniaAcademyofSciences_PAY_1.jpg')
No SourceFile './CaliforniaTigerSalamander_GeraldAndBuffCorsi_©CaliforniaAcademyofSciences_PAY_2.jpg' in imported CSV database
(canonical path: '/Users/emccainaz/CBD_Salamanders/CaliforniaTigerSalamander_GeraldAndBuffCorsi_©CaliforniaAcademyofSciences_PAY_2.jpg')
No SourceFile './LarchMountainSalamander_©1998HankWallays_FPWC.jpg' in imported CSV database
(canonical path: '/Users/emccainaz/CBD_Salamanders/LarchMountainSalamander_©1998HankWallays_FPWC.jpg')
No SourceFile './LarchMountainSalamander_©1998HankWallays_FPWC.tif' in imported CSV database
(canonical path: '/Users/emccainaz/CBD_Salamanders/LarchMountainSalamander_©1998HankWallays_FPWC.tif')
Warning: [minor] Ignored APP1 XMP segment with non-standard header - ./SiskiyouMountainsSalmander_(c)2009RichardDBartlett_CalPhotos_NP_1.jpeg
Warning: [minor] Ignored APP1 XMP segment with non-standard header - ./SiskiyouMountainsSalmander_(c)2009RichardDBartlett_CalPhotos_NP_2.jpeg
1 directories scanned
51 image files updated
The first column of my csv file looks like this (edited to show just problem files):
SourceFile
CaliforniaTigerSalamander_GeraldAndBuffCorsi_©CaliforniaAcademyofSciences_PAY_1.jpg
CaliforniaTigerSalamander_GeraldAndBuffCorsi_©CaliforniaAcademyofSciences_PAY_2.jpg
LarchMountainSalamander_©1998HankWallays_FPWC.jpg
LarchMountainSalamander_©1998HankWallays_FPWC.tif
LarchMountainSalamander_BillLeonard_FPWC.tif
Thanks for any help you can provide.
Edward
Hi Edward,
Special characters in filenames are a known problem (https://exiftool.org/index.html#problems) with Windows.
The -o option will create a copy of the file unless you specify -overwrite_original. I wouldn't put them in a sub-directory of the directory you are processing, or else you run the risk of recursively processing files forever. The FMT argument is a format string. See the -w option documentation (https://exiftool.org/exiftool_pod.html#item__2dv_5bnum_5d__28_2dverbose_29) for details.
- Phil
I'm working on a Mac using Terminal. The copyright symbol seems to work with some files and not with a few others. Should I go through and rename them all somehow?
I did look at the -w option documentation, but I'm still struggling with just how to do set up moving the files to a directory at the same level as the one I'm currently in. Can you give me an example of moving copies of the files without the "_original" string added to the filename, so they have the same filename?
Thanks,
Edward
Hi Edward,
OK, this should work with a Mac as long as you use UTF-8 encoding for your CSV file.
To copy the files from directory tree rooted at "SRCDIR" to a directory tree rooted at "DSTDIR", do this:
exiftool ... -r -o DSTDIR/ SRCDIR
To move them instead, add -overwrite_original.
- Phil
In testing this, I just discovered that ExifTool won't accept a CSV file in UTF-8 encoding if it begins with a byte order mark (BOM). So be sure that your CSV file is UTF-8 with no byte order mark. I will fix this in the next release.
- Phil
Hmmm. I've been doing some research and I'm not sure how to make sure the csv file is UTF-8 with no BOM. Is there an easy way to do this? Does exiftool give me that info? I've been working in Excel to make the csv files and I don't see any documentation about saving with these options.
Also, should the order of the commands be "exiftool -csv=CBD_Salamanders.csv -r -o ORIGINALFILES/ SOURCEFILES"
Thanks,
Edward
Hi Edward,
The order of the options doesn't matter, so what you have done is fine.
It could be that you don't have any control over the encoding of special characters as written by Excel. I realize now that the BOM isn't a problem for you because otherwise ExifTool would complain about the file format. But it seems that Excel isn't writing UTF-8. The easiest way around this is probably to rename the files to remove the special characters.
- Phil
I have tried several ways of using the -o option, but am not able to get the originals into another folder yet. Here's what I get:
EMcs-MBP-240:CBD_Salamanders emccainaz$ exiftool -csv=CBD_Salamanders2.csv -r -o OriginalFiles/ CBD_Salamanders
No SourceFile 'CBD_Salamanders' in imported CSV database
(canonical path: '/Users/emccainaz/CBD_Salamanders/CBD_Salamanders')
As far as the metadata goes, I'm getting unreliable results. Sometimes all the fields get the metadata, but some files don't get anything and some files only get portions of the metadata from a particular field. As far as UTC-8 goes, I imported the csv from Excel and then exported it from google docs, which is supposed to be UTF-8, but I'm not absolutely certain. At any rate, that doesn't fix the irregular outcome.
I have also renamed all the files with the copyright symbol "©" to "(c)" but now I'm wondering if the parentheses are also causing problems for ExifTool. It is exciting to get some of the desired results, but with 5000 files to go, I'm also anxious to figure this out so we can move on to the next phase of the project.
Thanks very much for your help thus far.
Edward
Hi Edward,
I'm sorry. I didn't understand that you wanted to move the originals. ExifTool won't do this. You only have control over where the edited images are written.
Brackets in a filename shouldn't be a problem on the Mac.
If you provide more details I can probably figure out why you are getting inconsistent results. I'm guessing there is a problem with the format of some lines in the CSV file. Try posting the lines from files where you have a problem, and describe exactly what isn't getting written correctly.
- Phil
Okay, let me post the first seven lines of the csv file, which will be a bit messy here, I think. I've also included a line that shows what the XMP field name is for each column:
SourceFile XMP:Description XMP:CaptionWriter XMP:Headline XMP:Subject XMP:Title XMP:TransmissionReference XMP:Category XMP:SupplementalCategories XMP:Scene XMP:SubjectCode XMP:IntellectualGenre XMP:UsageTerms XMP:Instructions XMP:Location XMP:DateTimeOriginal XMP:ModifyDate XMP:AuthorsPosition XMP:Copyright XMP:CreatorWorkEmail
TestCopy 01.jpg XMPDescription XMPCaptionWriter XMPHeadline XMPSubject XMPTitle XMPTransmissionReference XMPCategory XMPSupplementalCategories XMPScene XMPSubjectCode XMPIntellectualGenre XMPUsageTerms XMPInstruction XMPLocation XMPDateTimeOriginal XMPModifyDate XMPAuthorsPosition XMPCopyright XMPCreatorWorkEmail
AustinBlindSalamander_SuzanneLCollins_FPWC_1_HIGHRES.tif Austin Blind Salamander Eurycea waterlooensis Photo Credit: Suzanne L. Collins, The Center for North American Herpetology XMPCaptionWriter XMPHeadline amphibians;salamanders;candidate species AustinBlindSalamander_SuzanneLCollins_FPWC_1_HIGHRES.tif XMPTransmissionReference No E:\Staff\Bill_H\SharePoint_Photo_Export\SPECIES\ANIMALS\AMPHIBIANS\salamanders\AustinBlindSalamander_SuzanneLCollins_FPWC_1_HIGHRES.tif No 10604 XMPIntellectualGenre FPWC: Full permission to use anytime with credit XMPInstruction XMPLocation 6/1/57 6/1/57 XMPAuthorsPosition Suzanne L. Collins, The Center for North American Herpetology http://www.livingunderworld.org/gallery/photos/caudata/plethodontidae/eurycea/ waterlooensis/ Suzanne L. Collins at jcollins@ku.edu.
AustinBlindSalamander_SuzanneLCollins_FPWC_1.tif Austin Blind Salamander Eurycea waterlooensis Photo Credit: Suzanne L. Collins, The Center for North American Herpetology XMPCaptionWriter XMPHeadline amphibians;salamanders;candidate species AustinBlindSalamander_SuzanneLCollins_FPWC_1.tif XMPTransmissionReference No E:\Staff\Bill_H\SharePoint_Photo_Export\SPECIES\ANIMALS\AMPHIBIANS\salamanders\AustinBlindSalamander_SuzanneLCollins_FPWC_1.tif No 10603 XMPIntellectualGenre FPWC: Full permission to use anytime with credit XMPInstruction XMPLocation 6/2/57 6/2/57 XMPAuthorsPosition Suzanne L. Collins, The Center for North American Herpetology http://www.livingunderworld.org/gallery/photos/caudata/plethodontidae/eurycea/ waterlooensis/ Contact: Contact Suzanne L. Collins at jcollins@ku.edu.
AustinBlindSalamander_SuzanneLCollins_FPWC_2_HIGHRES.tif Austin Blind Salamander Eurycea waterlooensis Photo Credit: Suzanne L. Collins, The Center for North American Herpetology XMPCaptionWriter XMPHeadline amphibians;salamanders;candidate species AustinBlindSalamander_SuzanneLCollins_FPWC_2_HIGHRES.tif XMPTransmissionReference No E:\Staff\Bill_H\SharePoint_Photo_Export\SPECIES\ANIMALS\AMPHIBIANS\salamanders\AustinBlindSalamander_SuzanneLCollins_FPWC_2_HIGHRES.tif No 10606 XMPIntellectualGenre FPWC: Full permission to use anytime with credit XMPInstruction XMPLocation 6/3/57 6/3/57 XMPAuthorsPosition Suzanne L. Collins, The Center for North American Herpetology http://www.livingunderworld.org/gallery/photos/caudata/plethodontidae/eurycea/ waterlooensis/ Suzanne L. Collins at jcollins@ku.edu.
AustinBlindSalamander_SuzanneLCollins_FPWC_2.tif Austin Blind Salamander Eurycea waterlooensis Photo Credit: Suzanne L. Collins, The Center for North American Herpetology XMPCaptionWriter XMPHeadline amphibians;salamanders;candidate species AustinBlindSalamander_SuzanneLCollins_FPWC_2.tif XMPTransmissionReference No E:\Staff\Bill_H\SharePoint_Photo_Export\SPECIES\ANIMALS\AMPHIBIANS\salamanders\AustinBlindSalamander_SuzanneLCollins_FPWC_2.tif No 10605 XMPIntellectualGenre FPWC: Full permission to use anytime with credit XMPInstruction XMPLocation 6/4/57 6/4/57 XMPAuthorsPosition Suzanne L. Collins, The Center for North American Herpetology http://www.livingunderworld.org/gallery/photos/caudata/plethodontidae/eurycea/ waterlooensis/ Suzanne L. Collins at jcollins@ku.edu.
AustinBlindSalamander_SuzanneLCollins_FPWC_3_HIGHRES.tif Austin blind Salamander Eurycea waterlooensis Photo Credit: Suzanne L. Collins, The Center for North American Herpetology XMPCaptionWriter XMPHeadline amphibians;salamanders;candidate species AustinBlindSalamander_SuzanneLCollins_FPWC_3_HIGHRES.tif XMPTransmissionReference No E:\Staff\Bill_H\SharePoint_Photo_Export\SPECIES\ANIMALS\AMPHIBIANS\salamanders\AustinBlindSalamander_SuzanneLCollins_FPWC_3_HIGHRES.tif No 10608 XMPIntellectualGenre FPWC: Full permission to use anytime with credit http://www.livingunderworld.org/gallery/photos/caudata/plethodontidae/eurycea/ waterlooensis/ XMPLocation 6/5/57 6/5/57 XMPAuthorsPosition Suzanne L. Collins, The Center for North American Herpetology Suzanne L. Collins at jcollins@ku.edu
AustinBlindSalamander_SuzanneLCollins_FPWC_3.tif Austin blind Salamander Eurycea waterlooensis Photo Credit: Suzanne L. Collins, The Center for North American Herpetology XMPCaptionWriter XMPHeadline amphibians;salamanders;candidate species AustinBlindSalamander_SuzanneLCollins_FPWC_3.tif XMPTransmissionReference No E:\Staff\Bill_H\SharePoint_Photo_Export\SPECIES\ANIMALS\AMPHIBIANS\salamanders\AustinBlindSalamander_SuzanneLCollins_FPWC_3.tif No 10607 XMPIntellectualGenre FPWC: Full permission to use anytime with credit http://www.livingunderworld.org/gallery/photos/caudata/plethodontidae/eurycea/ waterlooensis/ XMPLocation 6/6/57 6/6/57 XMPAuthorsPosition Suzanne L. Collins, The Center for North American Herpetology Suzanne L. Collins at jcollins@ku.edu.
BartonSpringsSalamander_WymanMeinzer_USGS_FPWC.jpg Barton Springs salamander Eurycea sosorum Photo Credit: Wyman Meinzer, USGS XMPCaptionWriter XMPHeadline amphibians;salamanders;endangered species;Eurycea sosorum BartonSpringsSalamander_WymanMeinzer_USGS_FPWC.jpg XMPTransmissionReference No E:\Staff\Bill_H\SharePoint_Photo_Export\SPECIES\ANIMALS\AMPHIBIANS\salamanders\BartonSpringsSalamander_WymanMeinzer_USGS_FPWC.jpg No 4233 AR2005;EEF05;EESP04 FPWC: Full permission to use anytime with credit XMPInstruction XMPLocation 6/7/57 6/7/57 http://www.ens-newswire.com/ens/aug2005/2005-08-26-01.asp Wyman Meinzer, USGS info@wymanmeinzer.com
The First file "TestCopy 01.jpg" comes out fine, as does the second file "AustinBlindSalamander_SuzanneLCollins_FPWC_1_HIGHRES.tif" but the next three files only have metadata in the following fields embedded:
XMP:Scene
XMP:SubjectCode
XMP:IntellectualGenre
XMP:RightsUsage
XMP:CreatorWorkEmail
Then, the next file "AustinBlindSalamander_SuzanneLCollins_FPWC_3_HIGHRES.tif" comes out okay, but the next file "AustinBlindSalamander_SuzanneLCollins_FPWC_3.tif has the same problem as the earlier files. The next file "BartonSpringsSalamander_WymanMeinzer_USGS_FPWC.jpg" comes out correctly.
I will attach a csv file with all the test metadata along with this post.
Thanks again!
Edward
PS - I haven't gotten the Time and Date right yet (I would mostly like to get the date, when possible). I'm not sure if it's Photo Mechanic or not. I will take a look with ExifTool and see what I can figure out.
Edward
Hi Edward,
I don't understand how that CSV file could work at all with ExifTool. ExifTool requires comma-separated values (hence "CSV"). (Maybe I should state this explicitly in the documentation.) The input CSV file must be in the exact same format as the output CSV file from the command "exiftool -csv FILE".
- Phil
I have been using excel csv assuming that it is a true csv. I also saved an csv from Google docs but get exactly the same results. What program would be a better choice for creating a csv that is compatible with ExifTool?
Thanks,
Edward
I think that when I copy and pasted the previous message, it may have given the impression that the data was not comma-separated. Here is a copy and paste of the data from a text file, which should come through better. I will upload the csv file again just in case it didn't come through on my previous post:
SourceFile,XMP:Description,XMP:CaptionWriter,XMP:Headline,XMP:Subject,XMP:Title,XMP:TransmissionReference,XMP:Category,XMP:SupplementalCategories,XMP:Scene,XMP:SubjectCode,XMP:IntellectualGenre,XMP:UsageTerms,XMP:Instructions,XMP:Location,XMP:DateTimeOriginal,XMP:ModifyDate,XMP:AuthorsPosition,XMP:Copyright,XMP:CreatorWorkEmail
TestCopy 01.jpg,XMPDescription,XMPCaptionWriter,XMPHeadline,XMPSubject,XMPTitle,XMPTransmissionReference,XMPCategory,XMPSupplementalCategories,XMPScene,XMPSubjectCode,XMPIntellectualGenre,XMPUsageTerms,XMPInstruction,XMPLocation,XMPDateTimeOriginal,XMPModifyDate,XMPAuthorsPosition,XMPCopyright,XMPCreatorWorkEmail
AustinBlindSalamander_SuzanneLCollins_FPWC_1_HIGHRES.tif,"Austin Blind Salamander Eurycea waterlooensis Photo Credit: Suzanne L. Collins, The Center for North American Herpetology",XMPCaptionWriter,XMPHeadline,amphibians;salamanders;candidate species,AustinBlindSalamander_SuzanneLCollins_FPWC_1_HIGHRES.tif,XMPTransmissionReference,No,E:\Staff\Bill_H\SharePoint_Photo_Export\SPECIES\ANIMALS\AMPHIBIANS\salamanders\AustinBlindSalamander_SuzanneLCollins_FPWC_1_HIGHRES.tif,No,10604,XMPIntellectualGenre,FPWC: Full permission to use anytime with credit,XMPInstruction,XMPLocation,1957/06/01,1957/06/01,XMPAuthorsPosition,"Suzanne L. Collins, The Center for North American Herpetology",http://www.livingunderworld.org/gallery/photos/caudata/plethodontidae/eurycea/ waterlooensis/ Suzanne L. Collins at jcollins@ku.edu.
AustinBlindSalamander_SuzanneLCollins_FPWC_1.tif,"Austin Blind Salamander Eurycea waterlooensis Photo Credit: Suzanne L. Collins, The Center for North American Herpetology",XMPCaptionWriter,XMPHeadline,amphibians;salamanders;candidate species,AustinBlindSalamander_SuzanneLCollins_FPWC_1.tif,XMPTransmissionReference,No,E:\Staff\Bill_H\SharePoint_Photo_Export\SPECIES\ANIMALS\AMPHIBIANS\salamanders\AustinBlindSalamander_SuzanneLCollins_FPWC_1.tif,No,10603,XMPIntellectualGenre,FPWC: Full permission to use anytime with credit,XMPInstruction,XMPLocation,1957/06/02,1957/06/02,XMPAuthorsPosition,"Suzanne L. Collins, The Center for North American Herpetology",http://www.livingunderworld.org/gallery/photos/caudata/plethodontidae/eurycea/ waterlooensis/ Contact: Contact Suzanne L. Collins at jcollins@ku.edu.
AustinBlindSalamander_SuzanneLCollins_FPWC_2_HIGHRES.tif,"Austin Blind Salamander Eurycea waterlooensis Photo Credit: Suzanne L. Collins, The Center for North American Herpetology",XMPCaptionWriter,XMPHeadline,amphibians;salamanders;candidate species,AustinBlindSalamander_SuzanneLCollins_FPWC_2_HIGHRES.tif,XMPTransmissionReference,No,E:\Staff\Bill_H\SharePoint_Photo_Export\SPECIES\ANIMALS\AMPHIBIANS\salamanders\AustinBlindSalamander_SuzanneLCollins_FPWC_2_HIGHRES.tif,No,10606,XMPIntellectualGenre,FPWC: Full permission to use anytime with credit,XMPInstruction,XMPLocation,1957/06/03,1957/06/03,XMPAuthorsPosition,"Suzanne L. Collins, The Center for North American Herpetology",http://www.livingunderworld.org/gallery/photos/caudata/plethodontidae/eurycea/ waterlooensis/ Suzanne L. Collins at jcollins@ku.edu.
AustinBlindSalamander_SuzanneLCollins_FPWC_2.tif,"Austin Blind Salamander Eurycea waterlooensis Photo Credit: Suzanne L. Collins, The Center for North American Herpetology",XMPCaptionWriter,XMPHeadline,amphibians;salamanders;candidate species,AustinBlindSalamander_SuzanneLCollins_FPWC_2.tif,XMPTransmissionReference,No,E:\Staff\Bill_H\SharePoint_Photo_Export\SPECIES\ANIMALS\AMPHIBIANS\salamanders\AustinBlindSalamander_SuzanneLCollins_FPWC_2.tif,No,10605,XMPIntellectualGenre,FPWC: Full permission to use anytime with credit,XMPInstruction,XMPLocation,1957/06/04,1957/06/04,XMPAuthorsPosition,"Suzanne L. Collins, The Center for North American Herpetology",http://www.livingunderworld.org/gallery/photos/caudata/plethodontidae/eurycea/ waterlooensis/ Suzanne L. Collins at jcollins@ku.edu.
AustinBlindSalamander_SuzanneLCollins_FPWC_3_HIGHRES.tif,"Austin blind Salamander Eurycea waterlooensis Photo Credit: Suzanne L. Collins, The Center for North American Herpetology",XMPCaptionWriter,XMPHeadline,amphibians;salamanders;candidate species,AustinBlindSalamander_SuzanneLCollins_FPWC_3_HIGHRES.tif,XMPTransmissionReference,No,E:\Staff\Bill_H\SharePoint_Photo_Export\SPECIES\ANIMALS\AMPHIBIANS\salamanders\AustinBlindSalamander_SuzanneLCollins_FPWC_3_HIGHRES.tif,No,10608,XMPIntellectualGenre,FPWC: Full permission to use anytime with credit,http://www.livingunderworld.org/gallery/photos/caudata/plethodontidae/eurycea/ waterlooensis/ ,XMPLocation,1957/06/05,1957/06/05,XMPAuthorsPosition,"Suzanne L. Collins, The Center for North American Herpetology",Suzanne L. Collins at jcollins@ku.edu
AustinBlindSalamander_SuzanneLCollins_FPWC_3.tif,"Austin blind Salamander Eurycea waterlooensis Photo Credit: Suzanne L. Collins, The Center for North American Herpetology",XMPCaptionWriter,XMPHeadline,amphibians;salamanders;candidate species,AustinBlindSalamander_SuzanneLCollins_FPWC_3.tif,XMPTransmissionReference,No,E:\Staff\Bill_H\SharePoint_Photo_Export\SPECIES\ANIMALS\AMPHIBIANS\salamanders\AustinBlindSalamander_SuzanneLCollins_FPWC_3.tif,No,10607,XMPIntellectualGenre,FPWC: Full permission to use anytime with credit,http://www.livingunderworld.org/gallery/photos/caudata/plethodontidae/eurycea/ waterlooensis/ ,XMPLocation,1957/06/06,1957/06/06,XMPAuthorsPosition,"Suzanne L. Collins, The Center for North American Herpetology",Suzanne L. Collins at jcollins@ku.edu.
BartonSpringsSalamander_WymanMeinzer_USGS_FPWC.jpg,"Barton Springs salamander Eurycea sosorum Photo Credit: Wyman Meinzer, USGS",XMPCaptionWriter,XMPHeadline,amphibians;salamanders;endangered species;Eurycea sosorum,BartonSpringsSalamander_WymanMeinzer_USGS_FPWC.jpg,XMPTransmissionReference,No,E:\Staff\Bill_H\SharePoint_Photo_Export\SPECIES\ANIMALS\AMPHIBIANS\salamanders\BartonSpringsSalamander_WymanMeinzer_USGS_FPWC.jpg,No,4233,AR2005;EEF05;EESP04,FPWC: Full permission to use anytime with credit,XMPInstruction,XMPLocation,1957/06/07,1957/06/07,http://www.ens-newswire.com/ens/aug2005/2005-08-26-01.asp,"Wyman Meinzer, USGS",info@wymanmeinzer.com
Does this make more sense?
Thanks,
Edward
Sorry, I had only looked at the first 7 lines that you posted. The file you uploaded looks good. I tried the first 3 lines on test files here, and it worked fine, writing the following -v2 output for the 3rd file:
======== tmp/b.tif
Writing XMP-photoshop:AuthorsPosition
Writing XMP-photoshop:CaptionWriter
Writing XMP-photoshop:Category
Writing XMP-pdf:Copyright if tag exists
Writing XMP-pur:Copyright if tag exists
Writing XMP-prism:Copyright if tag exists
Writing XMP-xmpDM:Copyright if tag exists
Writing XMP-tiff:Copyright
Writing XMP-iptcCore:CreatorWorkEmail
Writing XMP-exif:DateTimeOriginal
Writing XMP-dc:Description
Writing XMP-xmp:Description if tag exists
Writing XMP-photoshop:Headline
Writing XMP-photoshop:Instructions
Writing XMP-iptcCore:IntellectualGenre
Writing XMP-prism:Location if tag exists
Writing XMP-iptcCore:Location
Writing XMP-mediapro:Location if tag exists
Writing XMP-xmp:ModifyDate
Writing XMP-iptcCore:Scene
Writing XMP-xmpDM:Scene if tag exists
Writing XMP-pdf:Subject if tag exists
Writing XMP-dc:Subject
Writing XMP-xmpMM:Subject if tag exists
Writing XMP-iptcCore:SubjectCode
Writing XMP-photoshop:SupplementalCategories
Writing XMP-pdf:Title if tag exists
Writing XMP-dc:Title
Writing XMP-xmp:Title if tag exists
Writing XMP-photoshop:TransmissionReference
Writing XMP-xmpRights:UsageTerms
Rewriting tmp/b.tif...
Editing tags in: IFD0 TIFF XMP
Creating tags in: IFD0 TIFF XMP
FileType = TIFF
MIMEType = image/tiff
ExifByteOrder = MM
Rewriting IFD0
Creating XMP
+ XMP-photoshop:AuthorsPosition = 'XMPAuthorsPosition'
+ XMP-photoshop:CaptionWriter = 'XMPCaptionWriter'
+ XMP-photoshop:Category = 'No'
+ XMP-tiff:Copyright = 'Suzanne L. Collins, The Center for North American Herpetology'
+ XMP-iptcCore:CreatorWorkEmail = 'http://www.livingunderworld.org/gallery/phot[snip]'
+ XMP-exif:DateTimeOriginal = '1957-06-02'
+ XMP-dc:Description = 'Austin Blind Salamander Eurycea waterlooensis Photo Cr[snip]'
+ XMP-photoshop:Headline = 'XMPHeadline'
+ XMP-photoshop:Instructions = 'XMPInstruction'
+ XMP-iptcCore:IntellectualGenre = 'XMPIntellectualGenre'
+ XMP-iptcCore:Location = 'XMPLocation'
+ XMP-xmp:ModifyDate = '1957-06-02'
+ XMP-iptcCore:Scene = 'No'
+ XMP-dc:Subject = 'amphibians;salamanders;candidate species'
+ XMP-iptcCore:SubjectCode = '10603'
+ XMP-photoshop:SupplementalCategories = 'E:\Staff\Bill_H\SharePoint_Photo_Expo[snip]'
+ XMP-dc:Title = 'AustinBlindSalamander_SuzanneLCollins_FPWC_1.tif'
+ XMP-photoshop:TransmissionReference = 'XMPTransmissionReference'
+ XMP-xmpRights:UsageTerms = 'FPWC: Full permission to use anytime with credit'
Rewriting IPTC
[nothing changed]
Rewriting ICC_Profile
Copying 1 image data blocks
1 directories scanned
3 image files updated
Since this works for me, the only difference is the .tif files you are using. Could you paste the output of -v2 for one of the files where tags are not getting written properly? Thanks.
- Phil
Here is the -v2 output, also from my third file:
EMcs-MBP-240:CBD_images_metadata emccainaz$ exiftool -v2 AustinBlindSalamander_SuzanneLCollins_FPWC_1.tif
ExifToolVersion = 8.68
FileName = AustinBlindSalamander_SuzanneLCollins_FPWC_1.tif
Directory = .
FileSize = 4821758
FileModifyDate = 1320945362
FilePermissions = 33188
FileType = TIFF
MIMEType = image/tiff
ExifByteOrder = MM
+ [IFD0 directory with 22 entries]
| 0) SubfileType = 0
| - Tag 0x00fe (4 bytes, int32u[1])
| 1) ImageWidth = 2500
| - Tag 0x0100 (2 bytes, int16u[1])
| 2) ImageHeight = 1239
| - Tag 0x0101 (2 bytes, int16u[1])
| 3) BitsPerSample = 8 8 8
| - Tag 0x0102 (6 bytes, int16u[3])
| 4) Compression = 5
| - Tag 0x0103 (2 bytes, int16u[1])
| 5) PhotometricInterpretation = 2
| - Tag 0x0106 (2 bytes, int16u[1])
| 6) StripOffsets = 13058 118032 224044 335124 446472 559936 674938 793300 910758 10[snip]
| - Tag 0x0111 (148 bytes, int32u[37])
| 7) SamplesPerPixel = 3
| - Tag 0x0115 (2 bytes, int16u[1])
| 8) RowsPerStrip = 34
| - Tag 0x0116 (2 bytes, int16u[1])
| 9) StripByteCounts = 104973 106012 111079 111347 113464 115002 118361 117458 11791[snip]
| - Tag 0x0117 (148 bytes, int32u[37])
| 10) XResolution = 200 (2000000/10000)
| - Tag 0x011a (8 bytes, rational64u[1])
| 11) YResolution = 200 (2000000/10000)
| - Tag 0x011b (8 bytes, rational64u[1])
| 12) PlanarConfiguration = 1
| - Tag 0x011c (2 bytes, int16u[1])
| 13) ResolutionUnit = 2
| - Tag 0x0128 (2 bytes, int16u[1])
| 14) Software = Adobe Photoshop CS Windows
| - Tag 0x0131 (27 bytes, string[27])
| 15) ModifyDate = 2007:04:05 15:28:27
| - Tag 0x0132 (20 bytes, string[20])
| 16) Predictor = 2
| - Tag 0x013d (2 bytes, int16u[1])
| 17) ApplicationNotes (SubDirectory) -->
| - Tag 0x02bc (7061 bytes, int8u[7061] read as undef[7061])
| + [XMP directory, 7061 bytes]
| | XMPToolkit = Image::ExifTool 8.68
| | About = uuid:f97efeb1-e3c4-11db-af4a-b041f632abb3
| | CreatorWorkEmail = http://www.livingunderworld.org/gallery/photos/caudata/plethod[snip]
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/Iptc4xmpCore:CreatorContactInfo/Iptc4xmpCore:CiEmailWork'
| | IntellectualGenre = XMPIntellectualGenre
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/Iptc4xmpCore:IntellectualGenre'
| | Location = XMPLocation
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/Iptc4xmpCore:Location'
| | Scene = No
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/Iptc4xmpCore:Scene/rdf:Bag/rdf:li 10'
| | SubjectCode = 10603
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/Iptc4xmpCore:SubjectCode/rdf:Bag/rdf:li 10'
| | Description = Austin Blind Salamander Eurycea waterlooensis Photo Credit: Suzann[snip]
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/dc:description/rdf:Alt/rdf:li 10'
| | Format = image/tiff
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/dc:format'
| | Subject = amphibians;salamanders;candidate species
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/dc:subject/rdf:Bag/rdf:li 10'
| | Title = AustinBlindSalamander_SuzanneLCollins_FPWC_1.tif
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/dc:title/rdf:Alt/rdf:li 10'
| | ColorSpace = 1
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/exif:ColorSpace'
| | DateTimeOriginal = 1957:06:02
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/exif:DateTimeOriginal'
| | ExifImageWidth = 2500
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/exif:PixelXDimension'
| | ExifImageHeight = 1239
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/exif:PixelYDimension'
| | AuthorsPosition = XMPAuthorsPosition
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/photoshop:AuthorsPosition'
| | CaptionWriter = XMPCaptionWriter
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/photoshop:CaptionWriter'
| | Category = No
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/photoshop:Category'
| | Headline = XMPHeadline
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/photoshop:Headline'
| | History =
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/photoshop:History'
| | Instructions = XMPInstruction
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/photoshop:Instructions'
| | SupplementalCategories = E:\Staff\Bill_H\SharePoint_Photo_Export\SPECIES\ANIMALS\[snip]
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/photoshop:SupplementalCategories/rdf:Bag/rdf:li 10'
| | TransmissionReference = XMPTransmissionReference
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/photoshop:TransmissionReference'
| | Copyright = Suzanne L. Collins, The Center for North American Herpetology
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/tiff:Copyright/rdf:Alt/rdf:li 10'
| | Orientation = 1
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/tiff:Orientation'
| | ResolutionUnit = 2
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/tiff:ResolutionUnit'
| | XResolution = 200
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/tiff:XResolution'
| | YResolution = 200
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/tiff:YResolution'
| | CreateDate = 2007:04:05 15:28:27-07:00
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/xap:CreateDate'
| | CreatorTool = Adobe Photoshop CS Windows
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/xap:CreatorTool'
| | MetadataDate = 2007:04:05 15:28:27-07:00
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/xap:MetadataDate'
| | ModifyDate = 1957:06:02
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/xap:ModifyDate'
| | DerivedFromDocumentID = adobe:docid:photoshop:8e1ad1c4-0447-11da-8d86-8d620a471a25
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/xapMM:DerivedFrom/stRef:documentID'
| | DerivedFromInstanceID = uuid:8e1ad1c5-0447-11da-8d86-8d620a471a25
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/xapMM:DerivedFrom/stRef:instanceID'
| | DocumentID = adobe:docid:photoshop:f97efeb0-e3c4-11db-af4a-b041f632abb3
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/xapMM:DocumentID'
| | UsageTerms = FPWC: Full permission to use anytime with credit
| | - Tag 'x:xmpmeta/rdf:RDF/rdf:Description/xmpRights:UsageTerms/rdf:Alt/rdf:li 10'
| 18) IPTC-NAA (SubDirectory) -->
| - Tag 0x83bb (8 bytes, int32u[2] read as undef[8])
| + [IPTC directory, 8 bytes]
| | CurrentIPTCDigest = .....V....0 ~2.
| | -- IPTCApplication record --
| | ApplicationRecordVersion = 2
| | - Tag 0x0000, IPTCApplication record (2 bytes, int16u)
| 19) PhotoshopSettings (SubDirectory) -->
| - Tag 0x8649 (4742 bytes, int8u[4742] read as undef[4742])
| + [Photoshop directory, 4742 bytes]
| | IPTCData (SubDirectory) -->
| | - Tag 0x0404 (7 bytes)
| | + [IPTC directory, 7 bytes]
| | | -- IPTCApplication record --
| | | ApplicationRecordVersion = 2
| | | - Tag 0x0000, IPTCApplication record (2 bytes, int16u)
| | IPTCDigest = F...&.V........w
| | - Tag 0x0425 (16 bytes)
| | ResolutionInfo (SubDirectory) -->
| | - Tag 0x03ed (16 bytes)
| | + [BinaryData directory, 16 bytes]
| | | XResolution = 13107200
| | | - Tag 0x0000 (4 bytes, int32u[1])
| | | DisplayedUnitsX = 1
| | | - Tag 0x0002 (2 bytes, int16u[1])
| | | YResolution = 13107200
| | | - Tag 0x0004 (4 bytes, int32u[1])
| | | DisplayedUnitsY = 1
| | | - Tag 0x0006 (2 bytes, int16u[1])
| | PrintScale = ?.
| | - Tag 0x0426 (14 bytes)
| | GlobalAngle = .
| | - Tag 0x040d (4 bytes)
| | GlobalAltitude = .
| | - Tag 0x0419 (4 bytes)
| | PrintFlags = .
| | - Tag 0x03f3 (9 bytes)
| | CopyrightFlag =
| | - Tag 0x040a (1 bytes)
| | PrintFlagsInfo = ..
| | - Tag 0x2710 (10 bytes)
| | ColorHalftoningInfo = /ff.lff../ff......2.Z..5.-..
| | - Tag 0x03f5 (72 bytes)
| | ColorTransferFuncs = ............................................................[snip]
| | - Tag 0x03f8 (112 bytes)
| | GridGuidesInfo = ..@.@
| | - Tag 0x0408 (16 bytes)
| | URL_List =
| | - Tag 0x041e (4 bytes)
| | Slices = .....,AustinBlindSalamander_SuzanneLCollins_FPWC_1.........null..boundsO[snip]
| | - Tag 0x041a (909 bytes)
| | PixelAspectRatio = .?.
| | - Tag 0x0428 (12 bytes)
| | IDsBaseValue = .
| | - Tag 0x0414 (4 bytes)
| | PhotoshopThumbnail = ..O... .........JFIF...HH...Adobe_CM....Adobed..............[snip]
| | - Tag 0x040c (3227 bytes)
| | VersionInfo = ...Adobe Photoshop.Adobe Photoshop CS.
| | - Tag 0x0421 (83 bytes)
| 20) ExifOffset (SubDirectory) -->
| - Tag 0x8769 (4 bytes, int32u[1])
| + [ExifIFD directory with 3 entries]
| | 0) ColorSpace = 65535
| | - Tag 0xa001 (2 bytes, int16u[1])
| | 1) ExifImageWidth = 2500
| | - Tag 0xa002 (4 bytes, int32u[1])
| | 2) ExifImageHeight = 1239
| | - Tag 0xa003 (4 bytes, int32u[1])
| 21) ICC_Profile (SubDirectory) -->
| - Tag 0x8773 (560 bytes, undef[560])
| + [ICC_Profile directory with 10 entries, 560 bytes]
| | ProfileHeader (SubDirectory) -->
| | + [BinaryData directory, 128 bytes]
| | | ProfileCMMType = ADBE
| | | - Tag 0x0004 (4 bytes, string[4])
| | | ProfileVersion = 528
| | | - Tag 0x0008 (2 bytes, int16s[1])
| | | ProfileClass = mntr
| | | - Tag 0x000c (4 bytes, string[4])
| | | ColorSpaceData = RGB
| | | - Tag 0x0010 (4 bytes, string[4])
| | | ProfileConnectionSpace = XYZ
| | | - Tag 0x0014 (4 bytes, string[4])
| | | ProfileDateTime = 1999 6 3 0 0 0
| | | - Tag 0x0018 (12 bytes, int16u[6])
| | | ProfileFileSignature = acsp
| | | - Tag 0x0024 (4 bytes, string[4])
| | | PrimaryPlatform = APPL
| | | - Tag 0x0028 (4 bytes, string[4])
| | | CMMFlags = 0
| | | - Tag 0x002c (4 bytes, int32u[1])
| | | DeviceManufacturer = none
| | | - Tag 0x0030 (4 bytes, string[4])
| | | DeviceModel =
| | | - Tag 0x0034 (4 bytes, string[4])
| | | DeviceAttributes = 0 0
| | | - Tag 0x0038 (8 bytes, int32u[2])
| | | RenderingIntent = 0
| | | - Tag 0x0040 (4 bytes, int32u[1])
| | | ConnectionSpaceIlluminant = 0.9642 1 0.82491
| | | - Tag 0x0044 (12 bytes, fixed32s[3])
| | | ProfileCreator = ADBE
| | | - Tag 0x0050 (4 bytes, string[4])
| | | ProfileID = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
| | | - Tag 0x0054 (16 bytes, int8u[16])
| | 0) ProfileCopyright = Copyright 1999 Adobe Systems Incorporated
| | - Tag 'cprt' (50 bytes, type 'text')
| | 1) ProfileDescription = Adobe RGB (1998)
| | - Tag 'desc' (107 bytes, type 'desc')
| | 2) MediaWhitePoint = 0.95045 1 1.08905
| | - Tag 'wtpt' (20 bytes, type 'XYZ ')
| | 3) MediaBlackPoint = 0 0 0
| | - Tag 'bkpt' (20 bytes, type 'XYZ ')
| | 4) RedTRC = curv..3
| | - Tag 'rTRC' (14 bytes, type 'curv')
| | 5) GreenTRC = curv..3
| | - Tag 'gTRC' (14 bytes, type 'curv')
| | 6) BlueTRC = curv..3
| | - Tag 'bTRC' (14 bytes, type 'curv')
| | 7) RedMatrixColumn = 0.60974 0.31111 0.01947
| | - Tag 'rXYZ' (20 bytes, type 'XYZ ')
| | 8) GreenMatrixColumn = 0.20528 0.62567 0.06087
| | - Tag 'gXYZ' (20 bytes, type 'XYZ ')
| | 9) BlueMatrixColumn = 0.14919 0.06322 0.74457
| | - Tag 'bXYZ' (20 bytes, type 'XYZ ')
Thanks,
Edward
Hi Edward,
Sorry, I meant add the -v2 option to the command when you are writing (with -csv=CSVFILE) so I can see what is written and where.
- Phil
Right, I added the -v2 to the csv command and the metadata does seem to be written. I just discovered that the main problem was me (of course) and that I was reading the metadata with Photo Mechanic, which was set to view the IPTC data first, then the XMP. When I reset it that in PM preferences, I could see metadata in most of the files! What a relief!
I did notice that I'm still not getting any metadata in this particular file:
EMcs-MBP-240:CBD_Salamanders emccainaz$ exiftool -csv=CBD_Salamanders.csv -v2 -o ../CBD_images_metadata/ .
======== ./FrostedFlatwoodsSalamander_c_MichaelGraziano_1TP.jpeg
Writing XMP-photoshop:AuthorsPosition
Writing XMP-photoshop:CaptionWriter
Writing XMP-photoshop:Category
Warning = Malformed UTF-8 character(s)
Writing XMP-pur:Copyright if tag exists
Writing XMP-prism:Copyright if tag exists
Writing XMP-tiff:Copyright
Writing XMP-xmpDM:Copyright if tag exists
Writing XMP-pdf:Copyright if tag exists
Writing XMP-iptcCore:CreatorWorkEmail
Writing XMP-exif:DateTimeOriginal
Writing XMP-dc:Description
Writing XMP-xmp:Description if tag exists
Writing XMP-photoshop:Headline
Writing XMP-photoshop:Instructions
Writing XMP-iptcCore:IntellectualGenre
Writing XMP-prism:Location if tag exists
Writing XMP-iptcCore:Location
Writing XMP-mediapro:Location if tag exists
Writing XMP-xmp:ModifyDate
Writing XMP-iptcCore:Scene
Writing XMP-xmpDM:Scene if tag exists
Writing XMP-dc:Subject
Writing XMP-xmpMM:Subject if tag exists
Writing XMP-pdf:Subject if tag exists
Writing XMP-iptcCore:SubjectCode
Writing XMP-photoshop:SupplementalCategories
Writing XMP-dc:Title
Writing XMP-xmp:Title if tag exists
Writing XMP-pdf:Title if tag exists
Writing XMP-photoshop:TransmissionReference
Writing XMP-xmpRights:UsageTerms
'./FrostedFlatwoodsSalamander_c_MichaelGraziano_1TP.jpeg' --> '../CBD_images_metadata/FrostedFlatwoodsSalamander_c_MichaelGraziano_1TP.jpeg'
Rewriting ./FrostedFlatwoodsSalamander_c_MichaelGraziano_1TP.jpeg...
Editing tags in: APP1 XMP
Creating tags in: APP1 XMP
JPEG APP0 (14 bytes):
JPEG APP1 (14289 bytes):
JPEG APP1 (9149 bytes):
Rewriting XMP
+ XMP-photoshop:AuthorsPosition = 'CalPhotos, http://calphotos.berkeley.edu, ht[snip]'
+ XMP-photoshop:CaptionWriter = 'XMPCaptionWriter'
+ XMP-photoshop:Category = 'No'
+ XMP-tiff:Copyright = '? Michael Graziano'
+ XMP-iptcCore:CreatorWorkEmail = 'mpgraziano@gmail.com'
- XMP-exif:DateTimeOriginal = '2005-12-13T10:11:09-07:00'
+ XMP-exif:DateTimeOriginal = '1957-06-26'
+ XMP-dc:Description = 'Frosted Flatwoods Salamander Ambystoma cingulatum Phot[snip]'
+ XMP-photoshop:Headline = 'XMPHeadline'
+ XMP-photoshop:Instructions = 'XMPInstruction'
+ XMP-iptcCore:IntellectualGenre = 'XMPIntellectualGenre'
+ XMP-iptcCore:Location = 'XMPLocation'
- XMP-xmp:ModifyDate = '2005-12-13T10:11:09-07:00'
+ XMP-xmp:ModifyDate = '1957-06-26'
+ XMP-iptcCore:Scene = 'No'
+ XMP-dc:Subject = 'amphibians;salamanders'
+ XMP-iptcCore:SubjectCode = '8649'
+ XMP-photoshop:SupplementalCategories = 'E:\Staff\Bill_H\SharePoint_Photo_Expo[snip]'
+ XMP-dc:Title = 'FrostedFlatwoodsSalamander_(c)MichaelGraziano_1TP.jpeg'
+ XMP-photoshop:TransmissionReference = 'XMPTransmissionReference'
+ XMP-xmpRights:UsageTerms = '1TP: One-time only permission; must request permi[snip]'
JPEG APP13 (228 bytes):
JPEG DQT (65 bytes):
JPEG DQT (65 bytes):
JPEG SOF0:
JPEG DHT (29 bytes):
JPEG DHT (179 bytes):
JPEG DHT (29 bytes):
JPEG DHT (179 bytes):
JPEG SOS
Copying Mac OS resource fork
I'm glad you figured out (most of) the problem. This problem is related to FAQ number 3 (https://exiftool.org/faq.html#Q3).
It looks like the tags are being written (and the output file in the ../CBD_images_metadata directory should have the new XMP tags). if you run this command, what do you get?:
exiftool -xmp:all ../CBD_images_metadata/FrostedFlatwoodsSalamander_c_MichaelGraziano_1TP.jpeg
Note that there is a problem with the UTF-8 of the Copyright value you are trying to write. I suspect you have a copyright symbol which isn't UTF-8. You can use the -charset option to specify the character set to fix this.
- Phil
I keep re-reading the FAQs and I learn something new each time! I still don't completely understand how metadata gets prioritized for reading and writing, but will continue working on that. I want to know more about the MWG tags for sure.
Here is the output from running that command:
EMcs-MBP-240:CBD_Salamanders emccainaz$ exiftool -xmp:all ../CBD_images_metadata/FrostedFlatwoodsSalamander_c_MichaelGraziano_1TP.jpeg
XMP Toolkit : Image::ExifTool 8.68
Creator Contact Info :
Creator Work Email : mpgraziano@gmail.com
Intellectual Genre : XMPIntellectualGenre
Location : XMPLocation
Scene : No
Subject Code : 8649
Description : Frosted Flatwoods Salamander Ambystoma cingulatum Photo Credit: ? Michael Graziano
Subject : amphibians;salamanders
Title : FrostedFlatwoodsSalamander_(c)MichaelGraziano_1TP.jpeg
Date/Time Digitized : 2005:12:13 10:11:09-07:00
Flash Fired : True
Flash Function : False
Flash Mode : Auto
Flash Red Eye Mode : False
Flash Return : Return detected
Authors Position : CalPhotos, http://calphotos.berkeley.edu, http://calphotos.berkeley.edu/cgi/img_query?query_src=photos_index&enlarge=1111+1111+1111+4649
Caption Writer : XMPCaptionWriter
Category : No
Color Mode : RGB
Headline : XMPHeadline
ICC Profile Name : sRGB IEC61966-2.1
Instructions : XMPInstruction
Legacy IPTC Digest : D4C0F4E228229E5701CA228088878AFC
Supplemental Categories : E:\Staff\Bill_H\SharePoint_Photo_Export\SPECIES\ANIMALS\AMPHIBIANS\salamanders\FrostedFlatwoodsSalamander_(c)MichaelGraziano_1TP.jpeg
Transmission Reference : XMPTransmissionReference
Copyright : ? Michael Graziano
Photometric Interpretation : RGB
Samples Per Pixel : 3
Metadata Date : 2009:11:04 09:02:26-07:00
Rating : 0
Usage Terms : 1TP: One-time only permission; must request permission for additional use
Already Applied : True
Thanks,
Edward
Hi Edward,
It looks to me like everything was written. The only missing tags in the -xmp:all output are DateTimeOriginal and ModifyDate, which I expect are hidden because they also exist elsewhere (I should have asked you to add -a, as per FAQ 3, then we would have seen them).
So it looks like everything is working for you now.
About the prioritization of tags when reading without the -a option: This is complicated because I have tweaked the individual priority of many tags, but the general rule is the tag that takes priority is the last tag read from the file of that name (rather arbitrary, I know).
- Phil
I still have a bit of a mystery, though. I've tried reading the metadata with Photo Mechanic, Adobe Bridge CS4 and the latest version of Media Pro. Photo Mechanic seems to read the time and date (Create Date?), Bridge also reads only the time and date and Media Pro reads the date and what it calls the URL, although this seems to be what ExifTool calls Author's Position. In addition, Media Pro seems to be ignoring the first part of the text - "CalPhotos," and just reading the URL from that field. This doesn't seem to correspond to any mapping of the metadata fields, whether IPTC or XMP that I have seen.
Here is the output for that file, adding the -a option:
EMcs-MBP-240:CBD_Salamanders emccainaz$ exiftool -a -xmp:all ../CBD_images_metadata/FrostedFlatwoodsSalamander_c_MichaelGraziano_1TP.jpeg
XMP Toolkit : Image::ExifTool 8.68
Creator Contact Info :
Creator Work Email : mpgraziano@gmail.com
Intellectual Genre : XMPIntellectualGenre
Location : XMPLocation
Scene : No
Subject Code : 8649
Description : Frosted Flatwoods Salamander Ambystoma cingulatum Photo Credit: ? Michael Graziano
Subject : amphibians;salamanders
Title : FrostedFlatwoodsSalamander_(c)MichaelGraziano_1TP.jpeg
Aperture Value : 3.0
Brightness Value : 2.18359375
Color Space : sRGB
Contrast : Normal
Custom Rendered : Normal
Date/Time Digitized : 2005:12:13 10:11:09-07:00
Date/Time Original : 1957:06:26
Exif Version : 0220
Exposure Compensation : 0
Exposure Index : 100
Exposure Mode : Auto
Exposure Program : Program AE
Exposure Time : 1/125
F Number : 3.0
File Source : Digital Camera
Flash Fired : True
Flash Function : False
Flash Mode : Auto
Flash Red Eye Mode : False
Flash Return : Return detected
Focal Length : 23.8 mm
Focal Length In 35mm Format : 116 mm
Focal Plane Resolution Unit : cm
Focal Plane X Resolution : 2.775e-05
Focal Plane Y Resolution : 2.775e-05
Gain Control : Low gain up
ISO : 100
Light Source : D55
Max Aperture Value : 2.6
Metering Mode : Center-weighted average
Exif Image Width : 714
Exif Image Height : 586
Saturation : Normal
Scene Capture Type : Standard
Scene Type : Directly photographed
Sensing Method : Monochrome area
Sharpness : Normal
Shutter Speed Value : 1/125
Subject Distance Range : Macro
White Balance : Auto
Prefs : Tagged:0, ColorClass:0, Rating:0, FrameNum:-00001
Authors Position : CalPhotos, http://calphotos.berkeley.edu, http://calphotos.berkeley.edu/cgi/img_query?query_src=photos_index&enlarge=1111+1111+1111+4649
Caption Writer : XMPCaptionWriter
Category : No
Color Mode : RGB
Date Created : 2005:12:13 10:11:09-07:00
Headline : XMPHeadline
ICC Profile Name : sRGB IEC61966-2.1
Instructions : XMPInstruction
Legacy IPTC Digest : D4C0F4E228229E5701CA228088878AFC
Supplemental Categories : E:\Staff\Bill_H\SharePoint_Photo_Export\SPECIES\ANIMALS\AMPHIBIANS\salamanders\FrostedFlatwoodsSalamander_(c)MichaelGraziano_1TP.jpeg
Transmission Reference : XMPTransmissionReference
Bits Per Sample : 8, 8, 8
Copyright : ? Michael Graziano
Image Height : 586
Image Width : 714
Make : Hewlett-Packard
Camera Model Name : HP PhotoSmart C945 (V01.67)
Orientation : Horizontal (normal)
Photometric Interpretation : RGB
Resolution Unit : inches
Samples Per Pixel : 3
X Resolution : 72
Y Resolution : 72
Create Date : 2005:12:13 10:11:09-07:00
Metadata Date : 2009:11:04 09:02:26-07:00
Modify Date : 1957:06:26
Rating : 0
Usage Terms : 1TP: One-time only permission; must request permission for additional use
Already Applied : True
I may also try uploading this file into ResourceSpace, which uses ExifTool (the Perl version?) for reading and writing metadata, I believe. I just can't understand why all these other applications would not be reading the metadata. I have seven out of 56 files that have the same problem, so this would represent a significant loss of metadata if the I had the same results for the larger set of 5,000 images with which I am working. Any insight you can provide would be appreciated.
Thanks,
Edward
Hi Edward,
In general, I try to insulate myself from this type of discussion because it has nothing to do with the mechanics of ExifTool, and everything to do with how other applications treat metadata.
ExifTool gives full control over what metadata you read and write, and while ResourceSpace does use ExifTool for the mechanics of reading and writing the metadata, I have no idea the specifics of what they are reading from where.
This is the reason that the Metadata Working Group created their recommendations (http://www.metadataworkinggroup.org/pdf/mwg_guidance.pdf). I suggest you read this document. ExifTool has an MWG feature which makes it easier to implement MWG compatibility, which may help with problems such as this.
- Phil
Hi Phil,
I completely understand your reluctance to get into the realm of what other applications are or are not doing with the metadata. HUGE thanks for all your help in walking me this far along the road to learning ExifTool. I'm grateful for your all your hard work and support! ExifTool has certainly made a seemingly impossible task much easier.
Cheers,
Edward
Hi Phil,
Just a little postscript in case you are interested. I posted the file on the Photo Mechanic forum and Kirk Baker there couldn't parse the file with Photo Mechanic, Photoshop CS5 or Apple Preview. Add to that Media Pro and Bridge CS4 that I tried. I'm will be needing to be able to edit the metadata in the files with (hopefully) Photo Mechanic and Media Pro, so it would be super helpful to figure out where this problem is coming from. I surely don't have the expertise to figure out something like this, so in case you might take pity on me <grin>.
Note: I tried to attach one of the files that isn't getting parsed in hopes that you might have time to get to the bottom of the case of the disappearing metadata but got a message from Simple Machines that the jpeg didn't pass the security check for uploading! Hmm, so the files must have some kind of problem, but I am not sure how to determine what it might be.
I remain sincerely grateful for all your help with my little project.
Edward
Hi Edward,
This type of problem is serious. Please mail me the original and edited images and I will look into this right away. (philharvey66 at gmail.com).
Thanks.
- Phil
Thanks for the samples.
There were some problems with the original versions of these files (2 of them had an invalid XMP header, and some others had corrupted maker notes), but other than this I can't figure out what Kirk could have been talking about. I tried preview and Photoshop CS4, and they both didn't have a problem loading all of the images after I edited them with exiftool using the CSV file you posted.
However, the information from your CSV file wasn't displayed by CS4 for these images. This is because the IPTC in these files is not properly synchronized with the XMP to begin with. Here, the IPTC takes precedence over the XMP because the IPTCDigest doesn't agree with the IPTC content. Since you are writing only XMP from your CSV file, your information is not displayed. There are a number of ways you could fix this. Which one to use depends on how important the IPTC information is to you:
1) Delete all IPTC and the IPTCDigest when writing your XMP:
exiftool -iptc:all= -iptcdigest= -csv=CSVFILE DIR
2) Synchronize the IPTC to the XMP after writing your XMP:
exiftool -@ xmp2iptc.args DIR
3) Synchronize the XMP to the IPTC before writing your XMP:
exiftool -@ iptc2xmp.args DIR
The 2nd and 3rd options use .args files which are available in the full exiftool distribution.
- Phil
Thanks for getting back to me on this. The first option should be fine, as the more critical metadata is contained in the csv file. I'll need to investigate the IPTCDigest function to understand how metadata gets synchronized.
As for the second and third options, I'm not sure what you mean by the full exiftool distribution. Is that the Perl library version that requires the developer tools for OS X?
Thanks again,
Edward
Hi Edward,
Yes, I mean the full Perl distribution. You only need the developer tools to do the standard installation for this version, but the installation doesn't install the .args files anyway. You just extract them from the archive and use them as needed.
I thought of another option which may be preferable, rather than bluntly deleting all of the IPTC:
4) Update the IPTCDigest to reflect the current IPTC content when writing your XMP:
exiftool -iptcdigest= '-iptcdigest<currentiptcdigest' -csv=CSVFILE DIR
(the iptcdigest= was necessary to delete the IPTCDigest in the case where IPTC does not exist)
This is somewhat simpler, and has the advantage that potentially useful IPTC information is not lost, but the disadvantage that the IPTC and XMP remain unsynchronized.
Read the MWG recommendations (http://www.metadataworkinggroup.org/pdf/mwg_guidance.pdf) for details about the use of the IPTCDigest.
- Phil
After visiting the Photo Mechanic forum (http://forums.camerabits.com/index.php?topic=6716.0), it seems there may be a real problem with the XMP here.
But I didn't see this problem with the samples you sent after I edited them with exiftool using your CSV file.
I would like to understand exactly what happened because there is a chance that you have found a bug in ExifTool.
I have the original FrostedFlatwoodsSalamander_c_MichaelGraziano_1TP.jpeg, but can't re-create this problem XMP. Can you tell me the exact steps you took to produce the file you posted in the Photo Mechanic forum (starting from the original you sent me)? Thanks.
- Phil
This may be difficult to track down...
I have done a more detailed comparison of the image you sent me and the one you posted to the PhotoMechanic forum. Between these two versions of the image, metadata was updated not only by ExifTool, but also by Photoshop CS4 and PhotoMechanic.
- Phil
First of all, I don't know the complete history of how these files have been treated because I have "inherited" them for a project with a local nonprofit that works to protect endangered species. The files come from a variety of sources and have been stored and accessed in Microsoft Sharepoint as a sort of makeshift DAM. I received the images from a download off the server where the files have resided for a few years. In order to work with them a bit easier, I have been using Photo Mechanic as a browser. The only metadata that I can remember may have been added would be to "tag" the images using the PM tag feature for making selections. Other than that, I have also looked at them in Bridge CS4 but not edited them. I have found a backup of the image that I posted on the Photo Mechanic forum that I have not handled other than to copy it as a backup in case of some sort of failure or loss. It looks like it was last opened in November of 2009.
Note: I tried attaching that image here in case it would help you figure out what may have happened. At least it might serve as a baseline for what the file looked like before I looked at it in PM or Bridge. But, like the file I tried sending before, I got this error message: "Your attachment has failed security checks and cannot be uploaded. Please consult the forum administrator." So, apparently the file had something wrong with it when I received it. Let me know if you want me to email that file to you.
Thanks,
Edward
Hi Edward,
I feared that this may be difficult to reproduce. But all is not lost, I have a theory about what could have happened: If PhotoMechanic wrote an empty ContactInfo structure (I have never seen anything write an empty structure, but it is not outside the realm of possibility), and you subsequently wrote to that structure with ExifTool, then we would get the problem we see here. I will add a patch in ExifTool 8.70 that will prevent this from happening.
Re: attachments in this forum. Many people seem to have problem with attachments, but apparently it isn't a systemic SMF problem because the PhotoMechanic forum works for you and they use SMF too. I just checked my attachment security settings and everything is turned off but one option to recode suspicious images, which I just now disabled as well. However, I prefer samples to be mailed to me instead of posted on the board anyway. But I have the original sample you mentioned, so there is no need to mail it.
- Phil
But if the file has something wrong with it to begin with, it wouldn't be Photo Mechanic. I'm wondering if SharePoint might have done something to it, although I don't think SharePoint has the ability to work with embedded metadata.
Thanks for looking into this.
Edward
Hi Edward,
I don't know if an empty structure is technically wrong. Photoshop will read the file with an empty structure. The problem is that ExifTool didn't know what to do with it, so it just left alone when it wrote more information. Now comes the problem because Photoshop will not read XMP if there is both an empty and non-empty structure of the same type in a file. It doesn't bother ExifTool because ExifTool is very tolerant of XMP formatting problems when reading.
At any rate, I have just released ExifTool 8.70 which should avoid this type of problem. If you use this version to re-write your XMP metadata for the problem files I think this particular issue will be solved. There is of course the other very similar issue about Photoshop ignoring XMP if the IPTCDigest is incorrect, but I think you know how to solve this too. Interesting that we had two very different problems with an identical symptom. This lead to a bit of confusion with my posts in the PhotoMechanic forum (http://forums.camerabits.com/index.php?topic=6716.msg31147#msg31147).
- Phil
Hi Phil,
I just ran ExifTool v8.70 and indeed it did fix the problem I had been seeing. Wow - you were fast at figuring that out and fixing it. I'm really enjoying working with ExifTool and appreciate your concern and responsiveness.
Edward