ExifTool ist ein quelloffenes Kommandozeilen-Werkzeug von Phil Harvey, geschrieben in Perl. Es liest und schreibt Metadaten in über 200 Dateiformaten — Bildformate (JPEG, TIFF, PNG, RAW), Video (MP4, MOV, MKV), Audio (MP3, FLAC), PDF, Office-Dokumente und viele Spezialformate. Unterstützt werden gängige Standards: EXIF, IPTC, XMP, ICC-Profile, ID3, GPS-Daten u. a.

Praktisch alle Archiv- und Digitalisierungs-Workflows enthalten an irgendeiner Stelle einen ExifTool-Aufruf — sei es zur Inspektion, zur Migration oder zur Bereinigung von Metadaten.

Installation

# macOS
brew install exiftool

# Debian/Ubuntu
apt install libimage-exiftool-perl

# Windows: ZIP-Distribution von exiftool.org

Metadaten lesen

exiftool foto.jpg                          # alle bekannten Tags
exiftool -a -G1 foto.jpg                   # mit Gruppen-Präfix (EXIF, IPTC, XMP, …)
exiftool -EXIF:All foto.jpg                # nur EXIF-Tags
exiftool -DateTimeOriginal -ImageWidth -ImageHeight foto.jpg
exiftool -filename -mimetype -filesize -s -G1 foto.jpg

-s unterdrückt die Beschriftung (kürzere Ausgabe), -G1 zeigt die Gruppe.

Output-Formate

exiftool -j foto.jpg                       # JSON
exiftool -X foto.jpg                       # XML
exiftool -csv foto.jpg                     # CSV
exiftool -j -G1 -struct ordner/            # rekursiv, JSON, mit Strukturen (XMP)
exiftool -j foto.jpg | jq '.[].Composite.ImageSize'

Verzeichnisse und Filter

exiftool -r ordner/                        # rekursiv
exiftool -ext jpg -ext tif -r ordner/      # nur bestimmte Endungen
exiftool -if '$DateTimeOriginal lt "2000:01:01"' -r ordner/   # nur ältere
exiftool -fast foto.jpg                    # schneller, aber weniger gründlich

Metadaten schreiben

exiftool -Artist="Kränzle & Ritter" foto.jpg
exiftool -Copyright="© 2026 …" -CopyrightNotice="© 2026 …" -overwrite_original foto.jpg
exiftool -keywords+="archiv" -keywords+="koeniz" foto.jpg
exiftool -all= -tagsfromfile @ -ColorSpace -ICC_Profile foto.jpg   # alles entfernen ausser Farbe

-overwrite_original schreibt direkt in die Datei (sonst wird foto.jpg_original als Backup angelegt).

Stapel-Umbenennung

# nach Aufnahmedatum umbenennen
exiftool '-FileName<DateTimeOriginal' -d "%Y-%m-%d_%H-%M-%S.%%le" -r ordner/

# nach Aufnahmedatum in Unterordner verschieben (Jahr/Monat)
exiftool '-Directory<DateTimeOriginal' -d "archiv/%Y/%m" -r quellordner/

%%le = lowercase Extension. < ist die Tag-Wert-Übernahme; > schreibt umgekehrt.

Vergleich zweier Dateien

exiftool -G1 -a -s -diff datei1.jpg datei2.jpg

Praktisch, um nach einer Konvertierung zu prüfen, welche Metadaten erhalten geblieben sind.

Eigene Tag-Definitionen

ExifTool kann mit einer User-Konfig erweitert werden (~/.ExifTool_config):

%Image::ExifTool::UserDefined::Composite = (
  Coordinates => {
    Require => { 0 => 'GPSLatitude', 1 => 'GPSLongitude' },
    ValueConv => '"$val[0], $val[1]"',
  },
);

Anschliessend ist -Coordinates ein normaler Tag.

Aus unserer Praxis

Für die wiederkehrenden Aufgaben in Archiv-Workflows haben wir das PHP-Paket exif-extract veröffentlicht — es nutzt ExifTool unter der Haube und liefert die EXIF-Metadaten von Bilddateien als strukturierte Arrays. Siehe exif-extract in unseren Open-Source-Paketen.