Help with MakerApple metadata

Started by cmh716, March 19, 2015, 12:10:48 PM

Previous topic - Next topic

cmh716


On a photo taken with the iPhone 6 in "Burst Mode" I've found it creates a metadata group called {MakerApple} and a unique UUID is adde to a key 11.  I'm hoping to manually add UUID's to metadata on non-iPhone sourced photos to fool Photos.app and the iPhone into grouping them into a Burst.  Can anyone tell me if exiftool can help or do this?  I can generate a unique UUID easily on my Mac, I just need the ability to write the metadata.  Thanks

{MakerApple}
1                              : 2
11                             : 3801CA45-E0C3-4DC8-BA91-19E198FBE7DF



Phil Harvey

I can answer this if you can send me a sample of a burst-mode image (my email is philharvey66 at gmail.com), so I can see how this information is stored.

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

cmh716

Thanks Phil!  Email is on its way.

Phil Harvey

... (still waiting.  I expect the mail is delayed due to the darned QueensU mail greylisting.  You can resend to bypass this.)
...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

I got the samples, thanks:

> exiftool ../testpics/Apple/iPhone6_burst/ -apple:all -u
======== ../testpics/Apple/iPhone6_burst/Image_01.JPG
Apple 0x0001                    : 2
Apple 0x0002                    : bplist00O..z.?.?.?.-.?0.+:ZR@(?2?.?.?.o.?5[...]
Run Time Flags                  : Valid
Run Time Value                  : 122586743868291
Run Time Epoch                  : 0
Run Time Scale                  : 1000000000
Apple 0x0004                    : 1
Apple 0x0005                    : 144
Apple 0x0006                    : 151
Apple 0x0007                    : 1
Apple 0x0008                    : 0.02683717579 -0.7210501641 -0.6948792783
Apple 0x000b                    : 3801CA45-E0C3-4DC8-BA91-19E198FBE7DF
Apple 0x000c                    : 0.1640625 0.19921875
Apple 0x000d                    : 0
Apple 0x000e                    : 0
Apple 0x000f                    : 3
Apple 0x0010                    : 1
======== ../testpics/Apple/iPhone6_burst/Image_02.JPG
Apple 0x0001                    : 2
Apple 0x0002                    : bplist00O..z.?.?.?.0.?0.+8YQ?(?2?.?.?.l.?6[...]
Run Time Flags                  : Valid
Run Time Value                  : 122586877174583
Run Time Epoch                  : 0
Run Time Scale                  : 1000000000
Apple 0x0004                    : 1
Apple 0x0005                    : 143
Apple 0x0006                    : 151
Apple 0x0007                    : 1
Apple 0x0008                    : 0.02610597615 -0.7233215548 -0.6975995316
Apple 0x000b                    : 3801CA45-E0C3-4DC8-BA91-19E198FBE7DF
Apple 0x000c                    : 0.1328125 0.140625
Apple 0x000d                    : 0
Apple 0x000e                    : 0
Apple 0x000f                    : 3
Apple 0x0010                    : 1
    1 directories scanned
    2 image files read


Currently, you can use ExifTool to copy the entire makernote block between images, which may help you out, but it can't be used to write a new UUID (the unknown "Apple 0x000b" tag), so you would be stuck effectively copying UUID's from existing images.

I will add support for reading/writing this to ExifTool 9.91 (with a tag named "BurstUUID"), so with this version you will be able to change this UUID in an image that already contains it.

If you can decode the meaning of any of the other unknown tags, please let me know.

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

cmh716

Thank you very much Phil for taking the time to look at this!  I'll see if I can figure out what the other metadata means.

northisup

The -BurstUUID works great on images taken from my iPhone but not from my GoPro (i'm trying to make burst groups from some vacation pictures so they look better when browsing them on my phone).

When I try to use the "-BurstUUID=" option on the GoPro image the following happens:


exiftool -v -overwrite_original -m -P "-makernotes:apple:burstuuid=$UUID" G0232134.JPG
======== G0232134.JPG
Rewriting G0232134.JPG...
  Editing tags in: APP0 APP1 CIFF ExifIFD IFD0 JFIF MakerNotes
JPEG APP1 (11256 bytes):
  Rewriting IFD0
  ExifByteOrder = MM
  Rewriting ExifIFD
  Rewriting InteropIFD
  Rewriting IFD1
JPEG APP2 (65533 bytes):
JPEG APP2 (65533 bytes):
JPEG APP2 (65533 bytes):
JPEG APP2 (4808 bytes):
JPEG DQT (130 bytes):
JPEG SOF0:
JPEG DHT (416 bytes):
JPEG DRI (2 bytes):
JPEG SOS
Nothing changed in G0232134.JPG
    0 image files updated
    1 image files unchanged


But when I copied the tags over from an iPhone image it worked

exiftool -v -overwrite_original -m -P "-burstuuid=$UUID" -tagsfromfile IMG_0178.jpg G0232134.JPG
Setting new values from IMG_0178.jpg
======== G0232134.JPG
Rewriting G0232134.JPG...
  Editing tags in: APP0 APP1 APP13 CIFF Composite ExifIFD File GPS IFD0 IPTC JFIF KDC_IFD KodakIFD MIE-Camera MIE-Doc MIE-GPS MIE-Image MIE-Lens MakerNotes PDF PNG Photoshop PostScript QuickTime XMP
JPEG APP1 (11544 bytes):
  Rewriting IFD0
  ExifByteOrder = MM
  Rewriting ExifIFD
  Rewriting InteropIFD
  Rewriting GPS
  Rewriting IFD1
JPEG APP13 (46 bytes):
  Rewriting Photoshop
  Rewriting IPTC
JPEG APP1 (6563 bytes):
  Rewriting XMP
JPEG APP2 (65533 bytes):
JPEG APP2 (65533 bytes):
JPEG APP2 (65533 bytes):
JPEG APP2 (4808 bytes):
JPEG DQT (130 bytes):
JPEG SOF0:
JPEG DHT (416 bytes):
JPEG DRI (2 bytes):
JPEG SOS
    1 image files updated


Is there a way to set the -BurstUUID option on any photo without copying in MakerNotes from another image?

Phil Harvey

No.  Makernote tags may not be created individually. They may only be changed if they already exist.  The only way to create them is to copy the entire makernotes as a block.  I suggest maybe creating a user-defined XMP tag instead, and writing this to your GoPro images.

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