Reading and writing metadata from multimedia files

An ExifTool GUI

Several projects have attempted to make the complex system of EXIF tags more accessible with a graphical user interface. At least three of these projects can be found in the Arch Linux repositories:

  • DigiKam is up-to-date and works quite well, but sometimes it uses special tags that are not fully compatible with ExifTool's tags.
  • PyExiftoolGUI is a Python 2-based (now obsolete) application that causes problems during installation.
  • jExifToolGUI [5] ports pyExifToolGUI to Java. The developer provides a Debian package, an AppImage, and a JAR archive with the current version [6]. The universal JAR should launch on all platforms.

Please note that jExifToolGUI's developer, Harry van der Wolf, has been rapidly implementing many new features during 2020. The features described here are as of Version 1.4.

The jExifToolGUI interface (Figure 1) is fairly easy to use. The Load Directory and Load Image buttons open images. To view the embedded preview in RAW files, jExifToolGUI requires the dcraw command-line program. A double-click on a file name or a thumbnail opens the image in a display program of your choice.

Figure 1: jExifToolGUI presents the images and their EXIF tags in a clear and concise way.

The five tabs on the right side of the program window organize jExifToolGUI's actions. View Data only displays an image's data, Edit Data lets you edit some of the data, and Copy Data supports transferring data between images. In Your Commands, you can define and execute your own ExifTool command lines. The Exiftool Database tab helps you search for tags.

When you start, the View Data tab is active: In the right-hand pane, with the All button selected, jExifToolGUI shows you all output generated by ExifTool when you call it with a file name and without options. Usually this results in far too much information, so it is often more useful to limit the output to certain groups.

You can limit output with the Common Tags button, which limits the information accordingly in the field to the right. Many images do not actually contain information in all groups, so the output remains empty. The By Group and By Camera options have similar effects.

Editing EXIF tags is one of jExifToolGUI's main focuses. The Edit Data tab has seven categories that give you direct access to the data. Using the first tab, Exif, you can load the standard EXIF tags from one image onto the clipboard and then transfer them to all selected images.

The xmp tab is used for editing XMP tags. The tags summarized here let you describe the subject, not the image's technical properties. In particular, the Keywords tag is accessible here; you can enter several keywords separated by commas.

The gps tab lets you manually transfer the location data of one image to several others. To do this, first select the source image and copy the data to the buffer with Copy from selected image. Then select the target images and transfer the buffer's contents by selecting Save to selected image(s). Open gives you an additional option for defining an image's coordinates via the web browser.

Geodata from external tracks can be added to the images in the Geotagging tab. To do this, either load a folder with images in advance or use the currently loaded images. Then load a file with the track data in a format that can be interpreted by ExifTool in the GPS log file field.

Geosync time lets you compensate for the time offset between the camera and tracker as described above. Write geotag information to image(s) then writes the position data to the image files (Figure 2).

Figure 2: Geotagging makes it easy to link geodata from external tracks to images.

Additional tabs under Edit Data (Gpano, Lens, and XMP_IPTC_String+) serve very specialized purposes.

The Your Commands tab lets you execute any command line. The developer was planning significant changes for this dialog in upcoming versions, including an additional history.

The last tab Exiftool Database (Figure 3), which is more for advanced users, grants access to the internal ExifTool tag database, with all currently known tags of all families and groups. This is especially easy to use thanks to the Search like input box, which performs a full text search. The By Group and Camera make buttons let you restrict the results. jExifToolGUI emulates the internal database in the form of an SQLite database, which enables structured queries.

Figure 3: Search all tags of all groups with Exiftool Database.


As Phil Harvey moves ahead with ExifTool's development, he is maintaining compatibility with new standards and image formats. However, this development inevitably increases the complexity, making it more difficult to learn. So far, however, Harvey has succeeded in ensuring backward compatibility. Command lines that used to work successfully in the past will usually still work today.

Thanks to the jExifToolGUI user interface, which is also progressing in giant leaps, working with ExifTool is easier, especially for less experienced users.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus