Non-iPhone burst photos in Apple's Photos apps
Or, how to make a set of burst photos from a GoPro or other camera appear in a nice little stack in the Photos app on your Apple devices.
When you take burst mode photos on an iOS device, they appear in a nice little stack in the Photos app:
And you get this neat UI to select the best of your burst:
But if you import burst photos from another camera (e.g. a GoPro, DSLR or mirrorless camera) you enter Burst Mode Hell π₯π₯π₯
So annoying to browse! So much unnecessary scrolling! Memories that are basically just the same photo over and over again!
So how does the Photos app know that a burst of iPhone photos should be grouped together? And can we trick it into grouping bursts from other cameras?
The Exif MakerNote
tag
There's no standard Exif tag specifically for burst photo metadata, however there is an interesting tag called Exif.Photo.MakerNote
:
A tag for manufacturers of Exif writers to record any desired information. The contents are up to the manufacturer.
So what does an iPhone burst mode photo store in MakerNote
? Using The Photo Investigator we find this:
1: 1011: EB64C1E0-0922-4E67-8433-6BB057AC1CB914: 42: {length = 512, bytes = 0x15123a02...}20: 125: 5123:epoch: 0flags: 1timescale: 1000000000value: 3618980650633331: 037: 038: 039: 04: 15: 1906: 1807: 18: ("-0.9835601", "0.02229829", "0.00934786")
Interesting! Other people have already figured out what some of these fields are used for:
- 8 holds the values from the iPhone's three accelerometers, telling us how it was oriented when the photo was taken.
- 3 appears to record "active time since last reboot", which is kind of a weird thing to record in photo metadataβ¦
- 17 (not in my burst example) contains a UUID which maps to a corresponding video file's
com.apple.quicktime.content.identifier
. Together they form a Live Photo. - 2 is a big binary-encoded string. Nobody knows what it is.
The interesting one for us is key 11 β β this UUID is shared by all photos taken in a single iPhone burst and is what the Photos app uses to identify and group multiple photos into a single burst.
Writing a Burst UUID to non-iPhone photos
To fool Photos into recognising our non-iPhone burst, we need to add an iPhone-ish MakerNote
field to those photos' Exif data, giving each one the same UUID in key 11.
exiftool is the only tool I've found that can do this. It's also one of those immensely powerful command line tools that is capable of doing everything in the universe and has quite a steep learning curve as a result (π hi ffmpeg and webpack!)
brew install exiftool
Step 1: Add MakerNote
to your photos
exiftool will let us write a BurstUUID
to field 11, but only if the Exif data already contains a MakerNote
that looks like it came from an iPhone.
The easiest way to get one of those is to just copy it from an existing iPhone burst photo onto your target photos. Export an unmodified original burst photo from the Photos app, then:
exiftool -tagsfromfile ./iphone_burst.jpeg -makernotes ./target_photos
You can verify that the MakerNote
was copied across, while the rest of your photo's original metadata remains intact.
exiftool -G ./target_photos/gopro_burst_1.JPG# You should see something like this in the output# alongside all your photo's original metadata# [MakerNotes] Burst UUID : EB64C1E0-0922-4E67-8433-6BB057AC1CB9
Step 2: Update the Burst UUID
Now that your photos have an iPhone-ish MakerNote
, you can replace the Burst UUID from our source photo with a fresh one for your burst set.
exiftool -BurstUUID="$(uuidgen)" ./target_photos -overwrite_original_in_place# You probably have uuidgen installed already, but you can get a UUID from wherever you like# -overwrite_original_in_place stops exiftool making copies and renaming your original files with an _original suffix
To verify it worked, you can read back the BurstUUID
from your photos:
exiftool -BurstUUID ./target_photos
Step 3: Import into Photos
That's it! Your non-iPhone burst photos are now recognised as a burst!
A note about HEIF
Since iOS 11, iPhones >7 have captured images in HEIF rather than JPEG by default (and call it HEIC instead of HEIF because ππ€·ββοΈ).
The HEIF format can store multiple images (like bursts) in a single file, but it doesn't look like Apple devices are doing that.