Retaining JUMBF (specifically c2pa) when deleting over metadata

Started by Andy Newman, June 12, 2023, 01:37:47 PM

Previous topic - Next topic

Andy Newman

There have been a couple of other threads around CAI/C2PA data and JUMBF data structures, from which I have ascertained that exiftool can read, but (by design) not write JUMBF metadata.

I'm trying to preserve this data when removing all the other metadata (and selectively add some back in).

However when I try and use the syntax that I think should remove everything, but the JUMBF tag
exiftool -all= --jumbf FILE I get this error Sorry, jumbf is not writable
I'm guessing that under the hood, this command is basically trying to write back in the exclusions. Is there another way I can do this, other than deleting all the other tags individually?

Or have I just got the syntax wrong for the exclusion in the delete?

Phil Harvey

I'll assume you are talking about APP11 JUMBF metadata in JPEG images...

The answer is that you must exclude a whole group, so --jumbf:all would be what you wanted if JUMBF was a deletable group, but it isn't:

> exiftool -listd
Deletable groups:
  AFCP APP0 APP1 APP10 APP11 APP12 APP13 APP14 APP15 APP2 APP3 APP4 APP5 APP6
  APP7 APP8 APP9 Adobe Audio Author CIFF Camera CanonVRD Document Ducky EXIF
  ExifIFD ExifTool File FlashPix FotoStation GPS GlobParamIFD ICC_Profile IFD0
  IFD1 IPTC Image Insta360 InteropIFD ItemList JFIF Jpeg2000 Keys Location MIE
  MPF MakerNotes Meta MetaIFD Microsoft NikonApp NikonCapture Other PDF
  PDF-update PNG PNG-pHYs PhotoMechanic Photoshop Preview PrintIM Printing
  QuickTime RMETA RSRC SubIFD Time Trailer UserData Video XML XML-* XMP XMP-*

However, I would have thought this should work:

exiftool -all= --APP11:all FILE

But it unfortunately it doesn't work as of ExifTool 12.63.

I'll patch ExifTool 12.64 so it will do (nearly) what you want with this command.  ("Nearly" because other unnamed APP11 segments will also be preserved.)

Note that this behaviour may change if JUMBF is added as a deletable group in the future.


- Phil

Edit: There were complications adding an APP name to the exclusion list (because of interactions similar to the one noted with other types of APP segments).  Instead, I'll add JUMBF to the list of deletable groups, so this will work in 12.64:

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

Andy Newman

Phil,

Many thanks for a detailed and speedy response and solution. I look forward to 12.64.