MacEXIF - Exiftool based GUI for MacOS

Started by greybeard, October 04, 2024, 09:53:21 AM

Previous topic - Next topic

greybeard

I have been developing a MacOS specific graphical application based on Exiftool (MacEXIF).  The initial version will soon be ready for beta testing and I'm trying to gauge interest.

The target audience would be developers and researchers. This would include those who help with the analysis of unknown or partially known metadata tags.

It would work OK as a simple image/metadata viewer but that's not its primary purpose.

I haven't found anything else with the same exact focus – the closest would have been JExifToolGUI but the developer seems to have stopped work and the version of Exiftool in the Mac version is around 18 months old.

Until now I've written metadata apps that are difficult or impossible to base on Exiftool. This includes apps for the iPad, web based apps that run within web browsers and Adobe Lightroom plug-ins. These apps have all been written from scratch in various languages native to the platform. They have all supported image files from Fujifilm cameras – mainly because these are the cameras I own and use.

I'd now like to write something with a wider audience so MacEXIF will support any image format supported by Exiftool but will run only on Macs (and not other computers or tablets or within the web). Porting the Exiftool logic to other languages would be a massive task (at least until AI tools are sufficiently advanced) so MacEXIF will directly use Exiftool as the primary source of metadata.

MacEXIF will be written in Swift/SwiftUI and will start one or more Exiftool external processes and communicate with these processes via memory based pipes.

Its not intended to replace the command line Exiftool functionality but just support that subset that benefits from a graphical representation.

The application will:
  • Run under the MacOS sandbox and be notarized by Apple. This means there are no security workarounds during installation or update and the application can be made available from the App Store.
  • Require at least MacOS Sonoma (and be tested with Sequoia).
  • Be designed to support screen sizes of at least the size of the 14 inch MacBook.
  • Automate the process of upgrading to the most recent version of Exiftool (every time the program starts it checks that its running the latest version of Exiftool and, if not, runs the installation).
  • Not be dependent on any other copy of Exiftool currently running on the computer – and in fact not require Exiftool to have been installed at all.
  • Display still images alongside the Metadata.
  • Have options to show as much metadata detail as possible in the most useful format. For an example there would be a single click option to display the very helpful Exiftool -htmldump option within an overlay window.
  • Display (and parse) the verbose output from Exiftool with the -v3 option. The intention is to go beyond the restrictions of the command line and show the detail formatted and in colours.
  • Have the option to export directly to Excel.
  • Compare metadata between two different images and display the differences (a common technique used in identifying the purpose of new or not yet fully understood metadata tags).
  • Compare the metadata from different versions of Exiftool from the same image file (typically helpful to understand the exact effect of an updated version of Exiftool).

Here is an example of the basic (partial) view of a single image file:



Overlay with Exiftool -htmldump format


Overlay with the verbose option (this is a placeholder for a reformatted version)


Here are examples of the compare option:

The tag name and value are given colours that indicate the difference:
- Black shows tags that exist on both files and are identical.
- Blue shows tags that exists on both files but have different values.
- Red shows tags that only exist in one of the two files

First the same Fujifilm RAW file is compared using the two most recent versions of Exiftool to show the zoom tags are unknown in version 12.96 and identified in 12.97



Second the same image is compared in JPG and raw formats with the most recent version of Exiftool showing differences in the maker notes



Third two Fujifilm raw files are compared in the same version of Exiftool showing that different zoom levels were used when the photos were taken


wywh

Great! Looks good. This would be a useful tool to troubleshoot when someone asks why some date or tag is not as expected, and if s/he has not used the Terminal.

Feature suggestions:

Add FileCreateDate to the list because if internal metadata dates are missing, as a last resort Photos.app grabs the date from it.

Could there be a custom input GUI panel for read/write so the user could paste commands via the GUI?

So exiftool based iOS/iPadOS version is not possible? That is a pity. I feel like my hands are tied when dealing with metadata in mobile devices because the options are quite limited there:

Just the other day someone asked why AirDropping from iPhone to another iPhone inserts the transfer date to the image. I tested this and it seems this happens if the AirDropped image has no internal metadata EXIF date, and it does not help if the date is edited in iOS Photos before sending. iOS app ViewExif does let you check whether there is EXIF date, though.

- Matti

greybeard

Thanks for the quick response.

Isn't FileCreateDate the same as one of those timestamps Exiftool puts in the System group?

Thats an interesting idea as to the custom commands - I'll have to think about it - there would have to be restrictions.

I've been looking for an option to run Exiftool on the iPad for the last few years - and asked about it on these forums - haven't found anything that works. Thats why I went back to first principles and coded the extract in Swift.

I've never much cared much about dates - other than the date the picture was taken so haven't noticed the Air Drop issue.

I hadn't looked at the ViewExif app before but spent £0.99 to check it out. All it does is display the metadata that Apple provides which is very, very limited. You have to parse up the binary files to get anything interesting - such as maker notes.

Phil Harvey

Quote from: greybeard on October 04, 2024, 12:03:35 PMIsn't FileCreateDate the same as one of those timestamps Exiftool puts in the System group?

Yes.

QuoteI've been looking for an option to run Exiftool on the iPad for the last few years - and asked about it on these forums - haven't found anything that works.

If you can find a Perl that runs on iPad then you can run ExifTool with that.

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

greybeard

Quote from: Phil Harvey on October 08, 2024, 09:22:26 AM
QuoteI've been looking for an option to run Exiftool on the iPad for the last few years - and asked about it on these forums - haven't found anything that works.

If you can find a Perl that runs on iPad then you can run ExifTool with that.

- Phil

Maybe so - if there is one I haven't found it.

Even if there was - there would have to be some way to run it.