Tutoriel ExifTool
|
#------------------------------------------------------------------------------ # File: gpx.fmt # # Description: Example ExifTool print format file to generate a GPX track log # # Usage: exiftool -p gpx.fmt -ee FILE [...] > out.gpx # # Requires: ExifTool version 10.49 or later # # Revisions: 2010/02/05 - P. Harvey created # 2018/01/04 - PH Added IF to be sure position exists # 2018/01/06 - PH Use DateFmt function instead of -d option # 2019/10/24 - PH Preserve sub-seconds in GPSDateTime value # # Notes: 1) Input file(s) must contain GPSLatitude and GPSLongitude. # 2) The -ee option is to extract the full track from video files. # 3) The -fileOrder option may be used to control the order of the # generated track points when processing multiple files. #------------------------------------------------------------------------------ #[HEAD]<?xml version="1.0" encoding="utf-8"?> #[HEAD]<gpx version="1.0" #[HEAD] creator="ExifTool $ExifToolVersion" #[HEAD] xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" #[HEAD] xmlns="http://www.topografix.com/GPX/1/0" #[HEAD] xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd"> #[HEAD]<trk> #[HEAD]<number>1</number> #[HEAD]<trkseg> #[IF] $gpslatitude $gpslongitude #[BODY]<trkpt lat="$gpslatitude#" lon="$gpslongitude#"> #[BODY] <ele>$gpsaltitude#</ele> #[BODY] <time>${gpsdatetime#;my ($ss)=/\.\d+/g;DateFmt("%Y-%m-%dT%H:%M:%SZ");s/Z/${ss}Z/ if $ss}</time> #[BODY]</trkpt> #[TAIL]</trkseg> #[TAIL]</trk> #[TAIL]</gpx> |
Collez ce texte dans un fichier, et nommez-le gpx.fmt (au format texte évidemment, mais sans l'extension.txt)
Pour être en adéquation avec mon exemple, placez-le dans le dossier C:\Tool\conf
Utilisation :
Glissez des photos contenant des coordonnées GPS sur le fichier GPX_Gen.bat
ExifTool va extraire les heures et coordonnée GPS de chaque photo, et va constituer le fichier trace.gpx correspondant.
Vous pourrez alors uploader ce fichier vers un site internet capable de le visualiser sur une carte, comme VisuGpx.com
Vous pouvez également l'utiliser dans un logiciel de visualisation tel que GpxSee
Vous pouvez ensuite faire une copie d'écran de la carte et l'enregistrer avec les photos afin d'illustrer votre randonnée
(17/03/2025) Autres fichiers de formatage
Le package "ExifTool Image" téléchargeable, présenté à la fin du chapitre 3B, contient ce fichier fmt anisi que deux autre fichiers de formatage : kml.fmt et gpx_wpt.fmt, dans le dossier fmt_files. Ces fichiers permettent de générer deux autres types de fichiers "trace GPS"
Exemple 5 (18/04/2021) Inscrire des coordonnées GPS dans les photos à l'aide d'une trace gps
Il s'agit de la manip inverse de celle qui vient dêtre décrite dans l'exemple précédent.
Cet exemple ne nécessite pas spécialement de recourir à un fichier batch, mais puisque j'ai abordé le sujet GPS dans l'exemple précédent, je continue ici.
Le moyen "ordinaire" d'obtenir une trace GPS (au format gpx) consiste à utiliser une appli sur smartphone, un GPS, ou un gps logger (si ça existe encore)
Il y a d'autres moyens d'obtenir des fichiers de type GPX, par exemple en allant les télécharger sur des sites de rando.
Certains sites permettent d'en fabriquer "sur mesure" ; j'ai trouvé deux sites qui ont ont une caractéristique intéressante pour cela : visugpx.com et mygpsfiles.com
Ces deux sites permettent d'attribuer des dates / heures de début pour la trace, ainsi qu'une vitesse moyenne, fonction que je n'ai trouvé nulle part ailleurs.
Cet horodatage est indispensable pour estimer l'emplacement de vos photos en fonction des durées écoulées.
Opentraveller.net et calculitineraires.fr permettent de construire une superbe trace en quelques clics, en suivant automatiquement routes et sentiers, et sur un fond de carte IGN pour le premier.
Une fois réalisée, téléchargez votre trace, passez-la ensuite chez visugpx.com pour l'horodater, et vous avez un fichier gpx aux petits oignons.
On prend donc pour point de départ un fichier trace au format gpx, par exemple trace1.gpx , qu'on a copié dans c:\Tool\tests
Ce fichier GPX doit contenir des points gps horodatés correspondant au même intervalle de temps que le lot de photos que vous voulez géoréférencer.
L'opération repose sur une simple option d'ExifTool, -geotag , suivie du nom de fichier contenant la trace gpx.
La forme de la commande, classique, sera pour un raccourci, exiftool "-geotag c:\Tool\tests\trace1.gpx"
Vous pourrez ajouter diverses options, par exemple -geosync si les heures des photos ont un décalage avec les heures GPS.
Voici un lien vers la documentation dans le site d'ExifTool : https://exiftool.org/geotag.html pour des informations complémentaires.
Si la commande est passée en fenêtre de commande ou en batch, il faut préciser en plus l'emplacement des fichiers à traiter, par exemple C:\Tool\temp
La commande aura la forme exiftool "-geotag c:\Tool\tests\trace1.gpx" "c:\Tool\temp"
Je ne connais pas le détail des calculs réalisés pour faire correspondre des emplacements de photos à des horodatages, mais ça marche pas mal.
La même opération est possible avec le logiciel gratuit PicaGeoTag, qui utilise ExifTool.
Celui-ci peut aussi bien géoréférencer vos photos à partir d'une trace gpx, que faire l'opération inverse, c'est à dire de créer un fichier GPX, de manière assez commode.
Exemple 6 (17/04/2021) Entrer des métadonnées contenant des caractères accentués dans des photos.
Les principales informations apportées par cet exemple concernent la gestion des lettres accentuées en français par Windows et Exiftool
1) L'édition d'un fichier bat avec le bloc notes de Windows se heurte à une difficulté :
Soit le fichier bat est enregistré au format ANSI de Windows et, lors de son fonctionnement, il ne gèrera pas les accents correctement
Soit on l'enregistre au format UTF8, et cela provoque un dysfonctionnement de la première ligne du batch.
La solution consiste à utiliser un autre éditeur, comme Notepad++, et enregistrer le fichier batch au format UTF8.
2) Lorsque le batch est en fonctionnement, la fenêtre d'affichage est la console Windows, qui ne gère pas les accents.
Pour y remédier, il faut modifier la police utilisée ; dans le cas d'un raccourci, c'est dans l'onglet "Police" des propriétés : choisissez : Lucida console.
Dans le cas d'un fichier batch, il faut un artifice : créez un raccourci vers le fichier bat, et modifiez la police dans les propriétés du raccourci.
Vous devrez donc lancer le batch en cliquant le raccourci.
3) Quand le batch fonctionne, il faut qu'il utilise un jeu de caractères UTF8.
Pour cela , ajoutez en début de fichier la commande chcp 65001 > null
4) Pour que ExifTool utilise les caractères accentués, ajoutez l'option -L à votre commande ExifTool . -L équivaut à -charset=Latin
5) Pour que les champs IPTC acceptent les caractères accentués, il faut qu'ExifTool inscrive un tag iptc supplémentaire dans la photo :
Ajoutez comme premier tag à écrire "-iptc:CodedCharacterSet=utf8"
Avec ces réglages et paramètres, on peut écrire des caractères accentués dans les métadonnées.
Je n'ai pas étudié le problème des noms de fichiers contenant des caractères spéciaux ou accentués, c'est encore autre chose.
Pour le moment, je me contente de m'abstenir d'utiliser ces caractères, surtout dans les noms de dossiers.
Vous remarquerez que jusqu'ici on a réussi à utiliser ExifTool depuis Windows, alors que vous lisez partout sur le net qu'on ne peut l'utiliser qu'en ligne de commande.
Pour éviter de perdre des lecteurs débutants, j'ai donc mis ce paragraphe en 4e position, et au début il vaut mieux se dispenser d'utilser ExifTool de cette façon.
Pour accéder à "la ligne de commande" de Windows de manière commode dans un dossier spécifique, voici comment procéder.
Affichez le dossier dans l'explorateur (C:\Tool par exemple). Clic-droit, Nouveau, Raccourci... Dans "emplacement" écrivez : cmd , puis cliquez suivant et terminer.
Copiez le chemin indiqué par l'explorateur (C:\Tool dans ce cas), puis avec un clic-droit, ouvrez les propriétés de votre raccourci "cmd", et collez le chemin C:\Tool dans la case "Démarrer dans"
Dans l'onglet "Police", sélectionnez la police Lucida console, afin d'avoir un meilleur affichage des lettres accentuées.
Voilà, le raccourci cmd est prêt, vous pouvez éventuellement le déplacer, puis le double cliquer pour obtenir une fenêtre de commande avec le prompt C:\Tool>
Tapez par exemple juste exiftool et validez.(sous Windows)
...vous allez voir défiler toute la documentation d'aide de ExifTool. Utilisez Ctrl C pour interrompre la sortie.
Voilà, vous avez lancé au moins une fois ExifTool en ligne de commande.
(Si cette doc d'aide intégrée vous intéresse, vous pouvez la copier dans un fichier : tapez exiftool > DocExifTool.rtf
Vous pourrez lire ce fichier avec Wordpad ou tout autre traitement de texte).
Sous Linux, tapez man exiftool pour obtenir ces pages d'aide.
(15/04/2021) Forme générale d'une commande de traitement ExifTool :
exiftool -Option -Option -DonnéeCibleOpérateurDonnéeSource Fichiers
La gestion des espaces dans ces commandes est très stricte.
Les trois éléments -DonnéeCible Opérateur DonnéeSource ne doivent pas être séparés par des espaces, mais contigus.
Si des espaces sont utilisés à l'intérieur de cet ensemble, on encadre le tout avec des guillemets : "-DonnéeCibleOpérateurDonnéeSource"
On peut réaliser plusieurs traitements en une seule ligne, et donc ajouter plusieurs ensembles -DonnéeCibleOpérateurDonnéeSource
exiftool : C'est évidemment l'appel à cet utilitaire. Il est préférable de préciser le chemin d'accès (C:\Tool\exiftool)
C'est une commande interprétée par Windows, et qui respecte les règles inhérentes à ce système d'exploitation.
Options : Chaque option est immédiatement précédée d'un tiret et suivie d'un espace. Exemple : -F -m
Certaines options ont des paramètres, par exemple : -d %Y%m%d , on peut utiliser des guillemets pour entourer l'ensemble : "-d %Y%m%d"
Les options qui peuvent modifier les données source doivent être spécifiées avant la donnée, donc en début de commande
Donnée-cible : une métadonnée définie par son nom, précédée d'un tiret
Si aucune donnée cible ni opérateur ne sont utilisés, le résultat sera renvoyé vers l'affichage.
Opérateur : l'opérateur, placé immédiatement après la cible, permet de définir l'opération à réaliser sur la donnée cible (écriture, ajout, suppression ... )
Donnée-source : Elle peut être une métadonnée, un ensemble de métadonnées, ou une valeur, et tenir compte d'un formatage spécifié par une option.
Elle peut aussi être modifiée par une opération et dans ce cas, elle est contenue dans une expression commençant par ${ et se terminant par l'autre accolade }
Fichiers : il y a divers moyens pour préciser les fichiers qui devront subir le traitement exiftool. C'est le système (Windows) qui gère cet élément, avec ses propres règles. Voyez les exemples plus bas.
Le résultat de la commande est renvoyé au système, qui l'affiche dans la fenêtre d'exécution d'exiftool.
Si la commande ne produit des résultats que vers des métadonnées cibles, le résultat affiché est un simple compte-rendu.
Si le résultat de la commande est destiné à l'affichage (pas de donnée cible spécifiée), il peut être réutilisé par le système et renvoyé dans un fichier, grâce à la fonction de redirection ( >) .
La forme est alors : exiftool -option -option DonnéeSource Fichiers > FichierResultat . Ces éléments sont séparés par des espaces.
Certaines options permettent de générer aussi des fichiers contenant des informations, c'est un mécanisme différent, spécifique à ces options.
Exemples
Je reprends maintenant l'exemple 1 du paragraphe 2C pour illustrer l'utilisation en ligne de commande.
Au prompt C:\Tool> écrivez : C:\Tool\exiftool "-IPTC:Caption-Abstract<Filename" *.jpg
Cette commande contient : L'appel à ExifTool, une opération sur des métadonnées dans les guillemets, et enfin *.jpg qui définit les fichiers à traiter.
L'opération sur les métadonnées consiste à recopier le nom de la photo dans le champ Légende iptc : on retrouve les trois éléments : -DonnéeCible Opérateur DonnéeSource sans espaces de séparation.
L'élément important en mode commande, c'est l'indication des fichiers à traiter, ici *.jpg
Dans cet exemple, ExifTool va traiter tous les fichiers ayant l'extension .jpg du dossier actuel (Tool)
On aurait pu aussi spécifier l'emplacement des photos, par exemple : C:\Tool\exiftool "-IPTC:Caption-Abstract<Filename" "C:\Tool\tests"
Dans ce cas, ExifTool va traiter toutes les images du dossier Tool\tests (tous les fichiers images qui supportent ce type de traitement)
Retenez que dans ce mode d'utilisation, il faut généralement spécifier précisément l'ensemble d'images que l'on veut traiter.
Pensez aussi à utiliser des guillemets (doubles pour Windows, quotes pour Linux et Mac Os) pour encadrer les diverses commandes.
Si vous avancez dans l'utilisation d'ExifTool, il est vrai qu'on peut faire plus et plus vite en ligne de commande ... mais ceci est une autre histoire.
En fait il y a une multitude de traitements possibles, je ne peux pas tout détailler ici.
J'ai écrit un gros paragraphe sur l'utilisation d'ExifTool dans la page consacrée à XnViewMP,
plus précisément dans le chapitre 11, paragraphe 11N.
Vous aurez là-bas plusieurs exemples illustrés, je ne laisse ici que cette petite présentation.
L'utilisation la plus directe d'ExifTool dans XnViewMP consiste à afficher l'onglet ExifTool dans le panneau Informations, ce qui permet de
visualiser toutes les métadonnées vues par ExifTool.
Les noms des champs affichés diffèrent quelque peu de ceux utilisés par XnViewMP, puisqu'ils ont dans ce cas l'orthographe officielle non francisée.
XnViewMP offre en outre la possibilité d'utiliser ExifTool avec des paramètres, à travers le menu "Outils, Ouvrir avec ..."
Ca permet donc de sélectionner confortablement des lots d'images avec XnviewMP, puis de leur appliquer un traitement ExifTool spécifié par les paramètres.
Il y a plusieurs exemples illustrés dans la doc XnViewMP , pour écrire les fichiers sidecar, recopier d'anciennes métadonnées, ou récupérer des mots-clés exif etc .
(17/11/2023) XnViewMP permet de sélectionner ou filtrer commodément un lot d'images de façon très visuelle.
On peut profiter de cette possibilité, et lancer sur les fichiers sélectionnés des traitements batch, à partir de la fonction "Ouvrir avec" de XnViewMP
On va donc préparer un fichier batch, contenant la variable %* qui va énumérer les fichiers, et il suffira de pointer le batch dans la fonction "Ouvrir avec".
Le but est de réaliser des taches complexes en trois phases :
- Sélectionner les fichiers visuellement avec XnViewMP
- Lancer un traitement batch (commandes Windows) qu'on aura préparé et qui va s'effectuer sur chaque fichier
- Utiliser ExifTool à l'intérieur de ce traitement
Voici un exemple de fichier batch qui afiche la métadonnée "IPTC:City" de chaque photo, et la met dans une variable !resultat!
Dans cet exemple, je n'ai pas inclus de traitement spécifique sur cette variable, mais seulement son affichage.
Remarquez ici l'utilisation de l'option -p qui "force" l'affichage simple du contenu de la métadonnée IPTC:City (-p "$iptc:city")
@ echo off
setlocal enabledelayedexpansion
REM Boucle à travers tous les fichiers passés en paramètre (%*)
for %%f in (%*) do (
    for /f "delims=" %%i in ('C:\Tool\exiftool.exe -m -p "$iptc:city" %%f') do (
        set "resultat=%%i"
        echo !resultat!
        REM On pouvait afficher aussi ceci : echo Pour la photo "%%f" la ville est : !resultat!
        REM Ici vous pouvez donc realiser un traitement utilisant la variable !resultat!
        )
    )
endlocal
pause
FastPhototagger est un GUI (Graphical User Interface), c'est à dire une interface graphique pour utiliser ExifTool.
Une brève présentation du logiciel ici,
la notice ici,
et le site de l'éditeur ici.
FastPhototagger est conçu pour entrer rapidement des métadonnées dans vos images, et pour faire des recherches et sélections
dans ces métadonnées (qu'il peut organiser en base de données) à l'aide de requêtes, sans avoir à utiliser de lignes de commandes.
Je ne détaille pas plus ici l'utilisation ordinaire de FastPhotoTagger, et vous renvoie donc à la notice que j'ai écrite.
Depuis la version 3.2, FastPhotoTagger offre une fenêtre de commande Exiftool. On ouvre cette fenêtre en tapant Ctrl E
C'est un simple tableau dans lequel on peut ajouter ou modifier ses propres informations.
La partie haute du tableau permet de noter des options, la partie basse des paramètres (noms de métadonnées, fichiers en entrée ou en sortie etc)
Chaque ligne du tableau est donc rédigée par vos soins, et dans la colonne de droitre on peut ajouter des commentaires ou descriptions.
Chaque ligne comporte aussi une petite case à cocher.
Exemples fournis par l'auteur (cliquez l'image pour aller sur le site)
En haut de l'écran sont listées les images auxquelles le traitement ExifTool sera appliqué;
Pour l'utilisation, sélectionnez des images, cochez des cases options, des cases paramètres et cliquez "Suivant"
(15/10/2019) Metadata++ est également une interface graphique pour ExifTool, et des mises à jour sont régulièrement publiées sur le site Logipole.
Voir par exemple les nouveautés, nombreuses en 2019.
Ce logiciel permet de faire plein de choses intéressantes, mais je suis loin d'en maitriser l'utilisation.
Il faudra que j'en fasse une petite description ici, assortie de quelques exemples ... doc à faire !
(21/04/2021) De nombreux logiciels utilisent ExifTool.
Je viens de citer XnViewMP, FastPhotoTaggger, Metadata++ , auxquels il faut ajouter ExifToolGUI V5 que j'ai cité en introduction.
Ces logiciels sont généralistes, c'est à dire qu'ils permettent un bonne diversité de traitements sur les métadonnées.
D'autres logiciels utilisent aussi ExifTool, mais sont plus spécialisés sur un domaine spécifique d'utilisation des métadonnées.
Par exemple, GeoSetter et PicaGeoTag, sont deux excellents logiciels pour travailler sur la géolocalisation des photos.
Vous trouverez une liste de logiciels utilisant ExifTool avec une brève description dans ma page Logiciels de gestion des métadonnées
Et dans la page officielle ExifTool, vous trouverez enfin une liste très complète de logiciels utilisant ExifTool.
ooooooooooooooooooo
Pour les premiers exemples ci-dessous, on va utiliser la méthode des raccourcis décrite au chapitre 2B.
Pour chaque exemple, je vous conseille de créer un nouveau raccourci, et de lui attribuer un nom mnémonique.
Puis, avec un clic-droit, vous ouvrez les propriétés du raccourci, et, dans la case cible, vous ajoutez les paramètres à la suite du nom exiftool.exe
Observez que chaque paramètre commence par un tiret, précédé d'un espace.
Exemple 1
Nom du raccourci : IPTCtoEXIF
Cible : C:\Tool\exiftool.exe -k
-exif:xpcomment<iptc:caption-abstract -exif:copyright<iptc:copyrightnotice -exif:xpauthor<iptc:by-line
Utilisation : glisser des photos contenant des données IPTC sur le raccourci.
Cet exemple permet de recopier trois métadonnées IPTC vers les (anciens) champs EXIF correspondants
Exemple 2
Nom du raccourci : NAMEtoTITLE
Cible : C:\Tool\exiftool.exe -k -IPTC:Headline<${FileName;s/\.[^.]*$//}
Pour mettre le nom de fichier sans extension dans le titre de l'image.
Utilisation : glisser des photos sur ce raccourci pour que le nom du fichier soit copié dans la métadonnée titre iptc.
Ignorez pour le moment tous les caractères exotiques entourant Filename, il s'agit d'un traitement,
expliqué plus loin.
Exemple 3
Nom du raccourci : XMPtoSIDECAR
Cible : C:\Tool\exiftool.exe -k -o -xmp %d%f.xmp
Utilisation : glisser des photos contenant des données xmp sur le raccourci.
Cette commande va avoir pour effet de créer un fichier XMP sidecar contenant les données XMP qui étaient dans l'image.
Exemple 4 Décalage de date et heure.
Dans cet exemple, je souhaite ajouter 12 ans à la date indiquée par mon appareil photo qui était réglée par erreur sur 2008 ...
En paramètres, on va spécifier les trois champs exif qu'on souhaite modifier, ainsi que le décalage à appliquer :
Nom du raccourci : Add12Years
Cible : C:\Tool\exiftool.exe -k
-ModifyDate+="0012:00:00 00:00:00" -DateTimeOriginal+="0012:00:00 00:00:00" -CreateDate+="0012:00:00 00:00:00"
Remarquez que l'opérateur utilisé pour un décalage positif est +=     . Si on veut soustraire , on utilisera -=
La métadonnée "ModifyDate" est toujours une métadonnée Exif (la date système de modification de fichier est différente, c'est File:FileModifyDate )
Le format de date et heure à utiliser est AAAA:MM:JJ HH:MM:SS , et il faut utiliser des guillemets, au moins pour Windows (sous la touche 3 du clavier)
Si vous voulez faire juste un décalage de 5 minutes et 8 secondes par exemple, vous pouvez utiliser un format plus court : HH:MM:SS ( exemple "00:05:08")
Et enfin, vous pouvez toujours ajouter le paramètre -overwrite_original si vous êtes sûr de la manip ...
Exemple 4bis (26/12/2020) Utiliser le nom de fichier pour dater les photos
De nombreux appareils, notamment les smartphones, incluent la date de réalisation de la photo dans le nom du fichier.
C'est aussi le cas de certains photographes et de certaines applis comme Whatsapp ou Face de bouc.
Par exemple les photos sont nommées sous la forme IMG_20201231_220515_HDR.jpg
Si la photo a été manipulée, recadrée, déplacée ... elle a pu perdre ses dates système ou exif, surtout sur les systèmes Android.
Le nom de fichier doit contenir, dans l'ordre, 4 chiffres pour l'année, 2 pour le mois et 2 pour le jour , qui vont constituer la date ;
Il faut également au moins 4 chiffres pour l'heure, les deux premiers seront interprétés comme heures, les deux autres comme minutes et si ils existent, deux autres comme secondes.
Les lettres minuscules ou majuscules sont ignorées, ainsi que les caractères spéciaux.
La commande ExifTool à utiliser est assez simple
Nom du raccourci : NameToDate
Cible : C:\Tool\exiftool.exe -k "-allDates<Filename"
Utilisation : Glisser des images dont le nom inclut une date, sur le raccourci.
La date présente dans le nom de fichier sera répercutée dans "la plupart" des dates Exif , pour chaque photo.
Les dates fichiers système ne sont pas affectées (ni FileModifyDate, ni FileCreateDate, ni FileAccessDate).
Dans la plupart des cas, ExifTool renvoie un message d'erreur sans conséquence. Vérifiez juste la présence du message <n> files updated à la fin du compte rendu.
Si vous avez besoin de modifier aussi les dates système, il faut ajouter à la commande "-FileCreateDate<Filename" ou "-FileModifyDate<Filename"
J'ai cru comprendre qu'on peut spécifier des formats de date à traiter afin d'éviter les messages d'erreur, c'est à étudier si le format de date que vous avez n'est pas celui décrit ici.
ExifTool peut recevoir des informations depuis un fichier de configuration.
Le but est de réaliser des traitements, qui peuvent être complexes (je n'ai pas étudié ce sujet) et de renvoyer le résultat à ExifTool.
Il faut alors donner à ExifTool le nom de ce fichier de configuration, en lui spécifiant avec le parmètre -config
Si le fichier de configuration se nomme aaa.txt, et s'il est placé dans le même dossier, ça donnera : exiftool -config aaa.txt
Si on utilise un raccourci, on mettra en cible : C:\Tool\exiftool.exe -config "aaa.txt" -k
Ou mieux : C:\Tool\exiftool.exe -config "C:\Tool\conf\aaa.txt" -k en précisant l'emplacement exact du fichier de config.
Le paramètre -config doit être situé en premier parmi les diverses options passées à exiftool (afin qu'il soit évalué en premier).
Les guillemets sont là au cas où le chemin du fichier contiendrait des espaces.
Dans les fichiers de configuration, les noms de métadonnées sont sensibles aux majuscules/minuscules. Verifiez leur orthographe exacte pour les utiliser.
Le fichier .ExifTool_config
Le nom par défaut du fichier de configuration est .ExifTool_config (avec un point en début).
C'est à dire que si le fichier de configuration porte ce nom, il est inutile d'utiliser le paramètre -config
L'ennui, c'est que ce fichier de configuration est systématiquement lu par ExifTool, même quand on n'en a pas besoin, en général j'ai donc évité de l'utiliser.
Cependant, un premier cas d'utilisation est celui où vous souhaitez que ExifTool gère des métadonnées non standard, voyez la fin de l'exemple 8 un peu plus loin.
Un autre cas d'utilisation est le suivant :
- Vous travaillez très souvent sur le même ensemble de métadonnées, et vous trouvez cette liste un peu longue à taper au clavier.
Par exemple celles-ci : IPTC:By-Line, XMP-dc:Creator, IPTC:CopyrightNotice, XMP-dc:Rights
Vous pouvez vous créer un raccourci personnalisé, que vous nommez par exemple MetaPersoDroits, et qui s'utilisera exactement comme une métadonnée (Source)
Rédigez un fichier .ExifTool_config comme ceci : (A vérifier)
%Image::ExifTool::UserDefined::Shortcuts = (
MetaPersoDroits => ["IPTC:By-Line","XMP-dc:Creator","IPTC:CopyrightNotice","XMP-dc:Rights"],
);
Dorénavant, il vous suffira d'utiliser MetaPersoDroits dans les commandes ExifTool gérer les 4 métadonnées ensemble.
Note : il n'est pas toujours facile de nommer un fichier avec un point en début de nom sous Windows.
Le plus simple est d'utiliser "Enregistrer sous ..." avec le BlocNotes, et en enlevant l'option "Type : Fichier texte (txt)"
Exemple 5     Découpage de la métadonnée XpKeywords
Le fichier de configuration que je vais utiliser dans ce nouvel exemple va servir à "découper" des anciens mots clés EXIF, constitués d'une seule chaine de caractères.
On va nommer ce fichier le fichier de configuration : decoupage.txt
La métadonnée Exif:XpKeywords, en effet, ne pouvait contenir qu'un seul mot.
Or, dans le passé, on a voulu y faire entrer plusieurs mots clés, séparés
par une virgule et un espace, de la forme "paysage, plage, parasol"
Ensuite, les paramètres passés à ExifTool vont ranger les différents mots clés dans les métadonnées IPTC (IPTC:keywords) ou XMP (xmp-dc:subject)
Voici les paramètres qu'on va ajouter pour la partie IPTC : -config c:\Tool\conf\decoupage.txt -iptc:keywords<mykeywords -overwrite_original
Et ceux à ajouter dans le cas des mots-clés XMP : -config c:\Tool\conf\decoupage.txt -xmp-dc:subject<mykeywords -overwrite_original
Ne vous étonnez pas de la présence, dans ces deux commandes, d'une métadonnée "mykeywords" : c'est un nom arbitraire utilisé dans le fichier de config.
Les deux commandes vont donc envoyer les mots-clés récupérés dans "mykeywords" vers les iptc:keywords ou dans les xmp-dc:subject
Voici le contenu du fichier de configuration pour cet usage :
decoupage.txt
%Image::ExifTool::UserDefined = (
'Image::ExifTool::Composite' => {
MyKeywords => {
Require => 'XPKeywords',
ValueConv => 'my @v = split(", ",$val); \@v',
},
}
);
1; #end
Vous allez coller ces 9 lignes dans le fichier decoupage.txt , et enregistrer. (Merci à Phil Harvey pour ce script !) Tout est prêt.
Sélectionnez des photos contenant des anciens mots clés EXIF:XPKeywords, et lancez l'une ou l'autre des commandes qui viennent d'être présentées, pour distribuer les mots clés dans les métadonnées IPTC, ou XMP.
Et enfin les raccourcis complets correspondants :
Nom du raccourci : KeywordEXIFtoIPTC
Cible : C:\Tool\exiftool.exe -config c:\Tool\conf\decoupage.txt -k -iptc:keywords<mykeywords
Nom du raccourci : KeywordEXIFtoXMP
Cible : C:\Tool\exiftool.exe -config c:\Tool\conf\decoupage.txt -k -xmp-dc:subject<mykeywords
Remarquez que le paramètre -config doit être situé en premier.
Utilisation : Glisser des photos contenant un mot clé exif:xpkeywords composé de plusieurs mots clés, sur le raccourci.
Ces mots clés seront rangés en liste dans les métadonnées IPTC:Keywords ou XMP-dc:Subject.
Exemple 6     Utiliser les noms de dossiers comme mots-clés.
Passer d'un classement thématique par dossiers de vos photos, à un classement par mots clés.
La manip va consister tout simplement à copier les noms des dossiers dans les mots clés.
Prenons un exemple où les photos sont rangées comme dans l'illustration ci-dessous.
A l'issue du traitement, la photo DSCN000.jpg contiendra les mots-clés Tool Photos Vacances Hiver Raquettes ...
On va encore utiliser la même méthode, un raccourci pour lancer ExifTool avec un minimum de paramètres, et un fichier de config pour le traitement.
Le fichier de config se nommera dirtree.txt
Nom du raccourci : DIRtoAll Keywords
Cible : C:\Tool\exiftool.exe -config C:\Tool\conf\Dirtree.txt -k -r -overwrite_original "-iptc:keywords+<dirtree" "-xmp-dc:subject+<dirtree"
Dans cette commande, le paramètre -config est situé en début (obligatoire), ensuite il y a -k et -r expliqués au chapitre 4;
Le paramètre -overwrite_original est aussi expliqué dans le chapitre 4, et conditionne lourdement la remarque 3 ci-dessous.
Puis les paramètres qui déclenchent la recopie des données obtenues par "dirtree" dans les mots clés iptc puis xmp.
L'opérateur qui permet d'ajouter des mots clés à ceux éventuellement présents est +<
Le fichier de config, qui va découper l'arborescence des dossiers en mots clés séparés est le suivant
Fichier dirtree.txt :
%Image::ExifTool::UserDefined = (
'Image::ExifTool::Composite' => {
DirTree => {
Require => 'Directory',
ValueConv => q{
# excluding all directories before "Tool"
$val =~ s(.*Tool[\\/])();
# split directory into components
my @parts = split '/', $val;
# remove empty first component (if "/" was the first character)
shift @parts if @parts and not $parts[0];
return \@parts;
},
},
},
);
1; #end
Source, de Phil Harvey, sur le forum ExifTool
Remarque 1 : j'ai pris pour exemple une arborescence de dossiers qui se nommerait par exemple C:\Tool\Photos\Vacances\etc
Les lignes 8 et 9 permettent d'éliminer C: et Tool comme mots clés, et de garder seulement ce qui suit (Photos, Vacances, etc) comme mots clés
Vous devrez remplacer Tool dans la ligne 9 par un nom de dossier qui contient vos propres photos (ou supprimer toute la ligne si vous voulez que
tout le chemin figure dans les mots clés)
Remarque 2 : Faites des tests sur des petits lots d'images copiées dans un dossier de test.
Remarque 3 : J'ai mis le paramètre -overwrite_original dans le raccourci, donc vous devez travailler obligatoirement
sur une copie de vos photos, il est trop risqué de le faire sur les originaux.
Et si vous êtes téméraire, le paramètre -r applique la récursivité, c'est à dire que tous les sous-dossiers seront traités ...
Il vous reste à glisser le dossier d'images sur le raccourci, et hop le travail se fait d'un coup.
Par la suite, utilisez un logiciel qui gère les mots clés (XnviewMP, Lightroom, Picasa, ...), réglez les options d'importation de mots clés et le tour est joué.
Pour XnViewMP, il faut que j'écrive un paragraphe de synthèse sur ce sujet.
Voir une autre solution
Et si c'est le nom de la photo que vous voulez recopier en un mot clé, ce sera une simple copie de tag du genre -iptc:keywords+<filename
ou "-iptc:keywords+<${FileName;s/\.[^.]*$//}"
Exemple 7     Reprendre les identifications de personnes de Picasa.
Ce paragraphe devra être complètement repensé. J'ai eu de nouvelles informations, et il faudra retravailler ce sujet de marquage des noms de personnes.
(13/11/2018) Dans cet exemple, l'idée est de récupérer l'identification des visages faite par le logiciel Picasa, pour en faire des métadonnées normalisées.
Pour fonctionner, la manip décrite ici nécessite donc la présence d'un fichier .picasa.ini dans chaque dossier traité. (habituellement, Windows cache ce type de fichiers : voir Outils, options des dossiers, affichage)
On peut tout d'abord faire un détour par "AvPicFaceXmpTagger" qui est un logiciel dédié à cette tâche, auquel j'ai consacré un paragraphe dans cette page.
J'ai également décrit l'ensemble de l'opération dans le paragraphe 11Q du tuto XnViewMp
Ce logiciel (AvPicFaceXmpTagger) est capable d'écrire des mots clés IPTC, XMP, et même les mots clés hiérarchisés XMP-LR, en utilisant ExifTool, avec son propre fichier de config, visible dans un écran du logiciel.
Mais voyons ici comment faire la manip uniquement avec ExifTool ....
Le fichier "picasa_faces.config"
Si AvPicFaceXmpTagger peut le faire, d'autres l'ont fait aussi, simplement en écrivant "à la main" un fichier de config pour ExifTool pour cette tâche .
Ce fichier que l'on peut télécharger, est disponible sur le site Sourceforge.net : picasa_faces.config
Dans ce fichier, assez long et compliqué, il y a une ligne que vous devez modifier, c'est celle qui localise un fichier important de Picasa.
La ligne en question, qui se situe vers la ligne 75, est : my $contactXML = 'C:/Users/MainUser/AppData/Local/PicasaData/Google/Picasa2/contacts/contacts.xml';
Il faut tout d'abord modifier dans cette ligne le mot MainUser, en mettant à la place votre nom d'utilisateur Windows.
Vérifiez, en parcourant votre disque système, si le fichier contacts.xml de Picasa est bien à cet emplacement, et si ce n'est pas le cas, corrigez la ligne et enregistrez.
Dans mon cas, j'ai dû modifier la ligne en écrivant : my $contactXML = 'C:/Users/M/AppData/Local/Google/Picasa2/contacts/contacts.xml';
(n'omettez pas le point virgule à la fin, mettez votre nom d'utilisateur après /Users/ et vous pouvez utiliser des "slash" / ou "antislash" \ au choix.)
Le rôle de ce fichier de config est de récupérer les noms des personnes détectées par Picasa, et de les mettre dans la variable "PicasaRegionNames" (c'est pas moi qui ai choisi ce nom)
Réglages pour ExifTool
En reprenant l'exemple d'emplacement des fichiers que j'indique depuis le début, mettez ce fichier picasa_faces.config dans le dossier C:\Tool\conf .
Voici une première version de la syntaxe à utiliser dans un raccourci pour réaliser l'opération :
Nom du raccourci : PicasaFacesTo keywords
Cible : C:\Tool\exiftool.exe -config C:\Tool\conf\picasa_faces.config -k -r "-xmp-dc:subject+<PicasaRegionNames"
La première partie de cette commande lance ExifTool avec le fichier de config précité et les options habituelles -k -r
Ensuite, l'affectation du contenu de la métadonnée PicasaRegionNames fournie par le fichier de config, dans les mots clés xmp, se fait avec l'opérateur +< (ajout)
Si on souhaite ajouter les mêmes mots clés dans le groupe IPTC, on ajoutera : "-iptc:keywords+<PicasaRegionNames" à la commande.
Ce qui donne :
Nom du raccourci : PicasaFacesTo Keywords
Cible :
C:\Tool\exiftool.exe -config "C:\Tool\conf\picasa_faces.config" -k -r "-xmp-dc:subject+<PicasaRegionNames" "-iptc:keywords+<PicasaRegionNames"
Utilisation : Glisser un dossier de photos déjà traité par Picasa, sur le raccourci PicasaFacesTo Keywords.
Enlever des doublons
Petit écueil, si les images contenaient déjà des mots clés avec les noms des personnes, parce-que ce travail avait été partiellement fait auparavant, on va avoir des doublons.
Il va donc falloir faire une deuxième phase pour cela.
Il existe une commande pour éliminer les doublons, NoDups, elle s'utilise dans une expression délimitée par des accolades, et nécessite l'ajout de l'option -sep "##"
Pour les mots clés iptc,ça donne : C:\Tool\exiftool.exe -sep "##" "-iptc:keywords<${iptc:keywords;NoDups}"
Et si on souhaite éliminer les doublons dans les trois groupes de mots clés, le raccourci pour l'opération complète sera :
Nom du raccourci Picasa NoDups
C:\Tool\exiftool.exe -sep "##" "-xmp-lr:hierarchicalsubject<${xmp-lr:hierarchicalsubject;NoDups}" "-iptc:keywords<${iptc:keywords;NoDups}" "-xmp:subject<${xmp:subject;NoDups}" -k
Remarques :
- Il me semblait qu'on pouvait combiner ces deux phases en une seule commande, mais je n'ai pas réussi à le faire fonctionner.
- Ces opérations n'affectent en rien d'autres mots clés qui pouvaient exister dans les photos. Seuls les visages détectés par Picasa sont concernés.
- Je n'ai pas mis le paramètre -overwrite_original. A vous de juger si vous prenez le risque ... et notez qu'en faisant deux passages c'est plus compliqué à gérer.
- Il reste à étudier le cas des mots clés hiérarchisés LR, ce sera l'occasion d'introduire une nouvelle possibilité, décrite au chapitre 3C suivant.
Fig 13 Raccourcis Picasa
(10/03/2019) Exemple 8     Créer des métadonnées personnalisées
On peut utiliser un fichier de configuration d'ExifTool pour lire et écrire des métadonnées personnalisées.
A priori, seul le groupe XMP permet d'avoir des métadonnées perso; je ne crois pas que ce soit possible en IPTC.
En fait c'est possible aussi en EXIF, mais laissons ça aux constructeurs de matériel, qui y mettent déjà une belle pagaille.
Mes premiers tests consistent à utiliser des métadonnées personnalisées dans le sous-groupe XMP-xmp.
J'ai choisi ce sous-groupe car un exemple de fichier de config est fourni dans le site de l'auteur: https://exiftool.org/config.html
Il est peut-être possible de créer son propre sous groupe, ce serait plus raisonnable, mais je n'ai pas essayé. (XMP:Perso par exemple.)
Le fichier proposé dans le lien est très complet (et très complexe), j'en ai donc écrit une version simplifiée pour mon exemple :
Fig 14 Fichier de config pour métadonnées perso
Vous trouverez ce fichier sous forme texte un peu plus bas, pour pouvoir le copier.
J'ai donc défini dans ce fichier trois nouvelles métadonnées : XMP-xmp:Marque, XMP-xmp:Couleur, XMP-xmp:Puissance
Supposons que ce fichier de config se nomme perso.txt
Pour inscrire une valeur, par exemple Renault, dans la métadonnée "Marque", la syntaxe ExifTool sera :
C:\Tool\exiftool.exe -config "C:\Tool\conf\perso.txt" -XMP-xmp:Marque="Renault" -k
On va créer un raccourci nommé "Renault" par exemple, pour attribuer la marque Renault à un lot de photos.
Voici les étapes :
Placez d'abord dans le dossier C:\Tool\conf le fichier de configuration   perso.txt   contenant les lignes suivantes :
#---- Ajout de tags personnalisés dans le groupe XMP-xmp
%Image::ExifTool::UserDefined = (
'Image::ExifTool::XMP::xmp' => {
Couleur => { Groups => { 2 => 'Author' } },
Marque => { Groups => { 2 => 'Author' } },
Puissance => { Groups => { 2 => 'Author' } },
},
);
1; #end
Puis créez un raccourci vers ExifTool :
Nom du raccourci : Renault
Cible : C:\Tool\exiftool.exe -config "C:\Tool\conf\perso.txt" -XMP-xmp:Marque="Renault" -k
Fichier de config utilisé: perso.txt
Utilisation : glissez des photos sur le raccourci pour leur attribuer la métadonnée personnalisée "Marque", avec la valeur "Renault".
Le résultat est intéressant, mais il n'est pas bien pratique d'utiliser de cette façon ExifTool pour entrer des métadonnées sur un grand nombre de photos.
Il faudrait faire autant de raccourcis que de marques, de couleurs, etc ...
Je vais enrichir cet exemple en proposant d'utiliser un autre logiciel qui va pouvoir tirer parti de cette fonctionnalité d'ExifTool.
L'exemple va porter sur FastPhotoTagger, ce logiciel étant une sur-couche graphique pour ExifTool (en anglais Graphic User Interface : GUI)
(Il y a une notice pour FastPhotoTagger ici)
Lors de son premier démarrage, FastPhotoTagger vous demande de préciser l'emplacement de ExifTool : je vous conseille de mettre une
copie d' exiftool.exe dans le même dossier que le programme FastPhotoTagger lui même, ce qui vous permet de gérer tous les éléments au même endroit (versions, paramètres etc)
Autre avantage dont nous aurons besoin, c'est de pouvoir mettre en plus le fichier de config de cet exemple au même endroit.
Pour ExifTool, on a vu qu'il y a un nom de fichier par défaut pour le fichier de config qui est .ExifTool_config, et ce fichier est sytématiquement utilisé.
On va donc ouvrir notre fichier de config "perso.txt" avec le bloc notes, et l'enregistrer sous le nom .ExifTool_config, dans le dossier de FastPhotoTagger.
Fig 14b Fichier de config pour métadonnées perso
Dorénavant, à chaque appel d'ExifTool, FastPhotoTagger utilisera les paramètres mis dans le fichier de config, pour gérer nos trois métadonnées personnalisées.
On va ensuite déclarer nos trois "nouvelles" métadonnées dans l'écran "Options, Métadonnées" de FastPhotoTagger
Fig 15 Paramétrage pour ces trois métadonnées personnalisées
Et on retrouve ces trois champs dans l'écran principal de FastPhotoTagger, où on va pouvoir les écrire, modifier etc.
Fig 16 Métadonnées perso dans FastPhotoTagger
Il ne vous reste plus qu'à adapter cet exemple à vos besoins ...
Mais si vous y investissez beaucoup de temps, n'oubliez pas que ces métadonnées personnalisées ne serviront probablement jamais à quelqu'un d'autre que vous ...
Je rappelle que FastPhotoTagger peut en plus générer une base de données, qui permet de faire facilement tous les tris et recherches sur les métadonnées de votre choix.
Il faut que je vérifie aussi une chose : il me semble que le logiciel Metadata++ permet de gérer commodément des métadonnées personnalisées ...
(17/05/2023) Exemple 9     Utiliser des métadonnées non gérées nativement dans ExifTool
Lorsque vous listez (avec -a) des métadonnées avec l'option -u ou -U (de type unknown, inconnu), il en apparaît un grand nombre.
En effet, dans le groupe (-G) MakerNotes, chaque fabricant a inclus un grand nombre de données, souvent numérotées, du genre : Sony_0xb04c
Pour pouvoir utiliser ces données, il faut utiliser l'option -u ou -U avec ExifTool.
Pour les logiciels comme FastPhotoTagger ou ExifToolGUI, la méthode pour passer cette option à ExifTool est la suivante :
- Créez un fichier .ExifTool_config avec le Bloc Notes, contenant les lignes suivantes :
%Image::ExifTool::UserDefined::Options = (
Unknown => 1, # ExifTool to include unknown tags
);
1; #end
- Enregistrez sous ... .ExifTool_config , en enlevant l'option "Type : fichier texte (txt)" et en choissant le même dossier qu'exiftool.exe
Voilà, à partir de là, ExifTool utilisera l'option de gestion des métadonnées "unknown"
(Inspiré de https://www.dpreview.com/forums/thread/3454283)
(17/03/2025) Autres fichiers de configuration
Sur la page d'accueil de ExifTool, le premier lien de téléchargement "Download version 13.xx" vous permet de télécharger un fichier dont le nom contient le mot "Image", et dont l'extension est .tar.gz
Il s'agit d'une version à utiliser avec "Perl" installé sur votre système, ce qui est loin d'être le cas de tout le monde.
Cependant, cefichier compressé .tar.gz contient des dossiers de fichiers utiles, par exemple le dossier "config_files"
Vous y trouverez une dizaine de fichiers de config permettant de réaliser diverses tâches plus ou moins complexes...
Cette fonction est moins complexe à utiliser que les fichiers de configuration ; il s'agit seulement de ranger dans un fichier les options et paramètres destinés à ExifTool.
J'ai utilisé cette fonctionnalité pour diminuer la longueur d'une commande, car il y a une limite de longueur dans les raccourcis Windows.
Il y a d'autres avantages ; le premier c'est que les informations sont plus clairement lisibles et accessibles dans un tel fichier, plutôt que dans les propriétés
d'un raccourci. Un autre avantage, c'est de pouvoir laisser ce fichier ouvert dans le bloc notes, et d'ajuster par tests successifs son contenu.
La commande qui appelle le fichier d'arguments est la suivante : -@ "C:\Tool\conf\arguments.txt" en supposant que vous ayez mis le fichier "arguments.txt" dans un dossier C:\Tool\conf\.
Il y a quelques règles à respecter dans ce fichier d'arguments qui est organisé en lignes, notamment de ne pas mettre de guillemets autour des commandes.
Exemple 10 (anciennement exemple 8)
(20/11/2018)
Je vais reprendre l'exemple 7 Picasa du paragraphe précédent. Il aurait mieux valu prendre un autre exemple plus simple, mais j'ai celui-ci sous la main, il est tout récent.
Dans cet exemple 8 je vais combiner plusieurs opérations pour pouvoir inclure les mots clés hiérarchisés à l'opération de l'exemple 7.
La construction du raccourci
On va donc cumuler l'appel à un fichier de configuration (C:\Tool\exiftool.exe -config C:\Tool\conf\picasa_faces.config) comme précédemment
Et, nouveauté, l'appel à un fichier d'arguments (-@ "C:\Tool\conf\arguments.txt")
(la forme finale du raccourci sera présentée un peu plus bas)
Le fichier d'arguments
Mon objectif, dans cet exemple, est d'ajouter plusieurs ensembles de mots clés dans trois groupes de métadonnées : iptc, xmp et xmp-lr. (plus rigoureusement : iptc, xmp-dc, xmp-lr)
Je vais donc mettre un certain nombre de commandes dans le fichier d'arguments:
Les deux premières lignes correspondent à l'exemple 7 du paragraphe précédent, pour les mots clés iptc et xmp.
-xmp-dc:subject+<PicasaRegionNames#
-iptc:keywords+<PicasaRegionNames#
Les troisième et quatrième lignes, c'est un test qui vérifie si au moins une personne a été détectée par Picasa :
-if
"$PicasaRegionNames"
Ce test est nécessaire pour les trois lignes suivantes. Il faut éviter d'ajouter le mot clé "famille" à tort aux photos qui ne comportent aucune personne.
Les trois suivantes ajoutent donc le mot clé "famille" car je souhaite que ce mot clé accompagne tous les noms de personnes détectés par Picasa.
-xmp-dc:subject+=famille
-iptc:keywords+=famille
-xmp-lr:hierarchicalsubject+=famille
Et enfin les deux dernières lignes illustrent bien l'idée de mettre dans ce fichier toutes les options destinées à ExifTool : -k
et -r
Le fichier arguments.txt, que vous pouvez créer avec le bloc notes, va donc contenir ces 9 lignes :
-xmp-dc:subject+<PicasaRegionNames#
-iptc:keywords+<PicasaRegionNames#
-if
"$PicasaRegionNames"
-xmp-dc:subject+=famille
-iptc:keywords+=famille
-xmp-lr:hierarchicalsubject+=famille
-k
-r
Enregistrez ce fichier arguments.txt dans le dossier C:\Tool\conf\.
Vous pouvez adapter ce fichier à votre propre traitement en supprimant les 5 lignes traitant du mot clé "famille" si vous préférez (voir les remarques, en bas)
Ca se complique
Il manque à ce stade l'écriture des noms de personnes dans les mots clés hiérarchisés, mais ce n'est pas aussi simple que pour les IPTC ou XMP.
Cette écriture devra être faite avec la commande -api "Filter=s/^/Family|/" "-xmp-lr:hierarchicalsubject+<PicasaRegionNames"
Je n'ai pas réussi à "faire entrer" cette commande dans le fichier d'arguments, c'est dommage pour la lisibilité, mais elle devra rester "dehors", dans le raccourci.
Le raccourci va donc contenir trois commandes qui ne peuvent pas figurer à l'intérieur du fichier d'arguments :
Nom du raccourci : PicasaFull Keywords
Cible :
C:\Tool\exiftool.exe -config "C:\Tool\conf\picasa_faces.config" -@ "C:\Tool\conf\arguments.txt" -api "Filter=s/^/Family|/" "-xmp-lr:hierarchicalsubject+<PicasaRegionNames"
A l'utilisation, on risque de rencontrer le même problème d'éventuels doublons dans les mots clés que dans l'exemple précédent.
Le raccourci Picasa NoDups de l'exemple 7 devra donc être aussi utilisé si vos mots clés contenaient déjà des noms de personnes.
Utilisation:
Glisser un dossier contenant des photos de personnes identifiées par Picasa, sur le raccouci PicasaFull Keywords, puis répétez l'opération sur le raccourci Picasa NoDups.
Remarques
- Je n'ai pas expliqué la troisième commande du raccourci -api n'ayant pas tout compris moi-même.
- L'ajout du mot clé "famille", en particulier dans les mots clés hiérarchisés, est conforme à la norme de hiérarchisation choisie par Adobe.
Par exemple avec deux personnes on écrit : "famille, famille|Jean, famille|Pierre". Dans les mots clés simples, IPTC ou XMP-dc, ça s'écrit aussi en trois mots clés : "famille, Pierre, Jean"
- Ce problème du mot clé racine ("famille", dans mon exemple) n'est pas résolu par le logiciel AvPicFaceXmpTagger. Personnellement, ça m'oblige à tout rectifier avec XnViewMP.
(17/03/2025) Autres fichiers Arguments
De la même façon qu'expliqué à la fin du chapitre précédent, le package ExifTool Image contient aussi un lot de fichiers arguments préparés par l'auteur.
Ils sont regroupés dans le dossier arg_files et permettent de transférer des ensembles de métadonnées d'un groupe dans un autre.
(10/05/2020) Plusieurs internautes m'ont fait part du besoin d'exporter, puis d'importer des métadonnées sur des lots importants de photos.
Le but étant de faire une mise à jour massive, ou d'utiliser des fonctions de traitement ou de tri des métadonnées avec un tableur avant réimportation.
Une fois la mise à jour des métadonnées terminée dans le tableur, on va donc avec Exiftool "importer" ces métadonnées dans les photos.
Pour compléter les informations de ce chapitre, la page http://carlibrary.org/ExifTool.htm (en anglais) décrit ces opérations.
Exporter
La méthode qui permet d'exporter les métadonnées d'un ensemble de photos est décrite dans les exemples 2 et 3 du chapitre 2C.
Cette méthode repose sur l'utilisation d'un fichier batch, mais les mêmes paramètres peuvent être utilisés aussi bien en ligne de commande.
Il s'agit simplement en fait de faire "afficher" les métadonnées par ExifTool, et de rediriger ces données vers un fichier (en utilisant l'opérateur de redirection ">" de windows)
Les données exportées pourront être formatées par ExifTool (avec l'option -csv) de manière à être facilement lues et exploitées dans un tableur.
Il y a probablement des options à éviter lors de l'exportation, comme -lang, et d'autres à spécifier, comme -n ou -csvDelim. A étudier.
Pour information, le même résultat peut être facilement obtenu avec XnViewMP, avec la fonction "Créer, Liste de fichiers", mais sur un échantillon moins riche de métadonnées.
Importer
Une fois que vous avez exporté, puis travaillé et mis au point vos tableaux de métadonnées, on va les réinjecter dans les photos.
On se place donc du point de vue des photos qui vont recevoir ces métadonnées, pour parler "d'importation"
- Une première précaution consiste à choisir des noms différents et précis pour les fichiers exportés par ExifTool, et pour ces mêmes données une fois mises au propre dans un nouveau fichier.
Le tableau terminé, retravaillé, destiné à être importé dans les photos pourrait se nommer Meta-a-Importer.csv par exemple.
- La deuxième précaution (outre le fait d'avoir toujours une sauvegarde à l'abri) consiste à bien gérer les fichiers _original générés par ExifTool.
Bien qu'un peu lourde, la méthode apporte une certaine sécurité; allez lire les paragraphes concernant les options -Restore_Original et -Delete_Original
On va donc partir d'un tableau de données, calqué sur le modèle de ce qu'on a obtenu lors de l'exportation.
C'est à dire une ligne d'en-tête qui définit exactement les métadonnées à écrire, et une ligne du tableau pour les métadonnées destinées à chaque photo.
Voici un exemple de tableau de données :
Fig 17 Format de fichier CSV exporté / format pour importation.
Notez que la première colonne se nomme "SourceFile", qu'il n'y a pas d'espace autour des virgules, et que les métadonnées ont leur nom de groupe (IPTC:) pour éviter les ambigüités.
Il y a dans cet exemple une métadonnée vide, juste à gauche de "Chamrousse", correspondant à une légende vide pour cette photo.
Dans ce paragraphe, je désignerai les photos qui "dorment" dans votre disque dur et qui vont recevoir les métadonnées par le nom "photos cibles".
Pour les indiquer à Exiftool, il y aura plusieurs formulations possibles:
- Soit par type de fichiers, par exemple -ext jpg suivi du nom de dossier qui les contient.
- Soit simplement en spécifiant le nom du dossier cible
Les métadonnées énumérées dans UNE ligne du tableau sont destinées précisément à UNE photo, celle dont le nom est spécifié dans la première colonne.
Je nommerai les photos présentes dans cette première colonne "photos source"
Il peut y avoir des différences entre le nombre de photos source et destination ...
Si il y en a moins en source, ça signifie que des photos destination ne sont pas concernées et ne seront donc pas modifiées.
Si il y en a moins en destination, ExifTool renverra des compte-rendus d'erreur pour les photos qu'il n'aura pas trouvées et donc pas pu mettre à jour.
Si vous utilisez le format csv, lors de l'importation, si des champs de métadonnées sont vides dans votre tableau, ceux-ci ne seront pas écrits dans les photos, ils seront ignorés.
Pour forcer l'effacement d'une métadonnée dans les photos cibles, le champ doit contenir un - , et l'option -f d'ExifTool doit être utilisée.
Pour entrer des métadonnées en liste, par exemple des mots clés, il faut leur définir un séparateur avec l'option -sep
Par exemple la colonne xmp-dc:description contiendrait animal:mammifere:chat avec l'option -sep :
Pour ajouter des métadonnées dans une liste, utilisez -csv+= pour définir le nom du fichier csv
La syntaxe
Pour provoquer l'écriture des métadonnées du tableau dans les photos cibles, la syntaxe est la suivante :
C:\Tool\exiftool -ext jpg -csv="c:\Tool\bat\Meta-a-Importer.csv" "c:\Tool\Test\"
Cette commande peut être lancée en mode commande, ou mise dans la case "cible" d'un raccourci pour rester dans le style habituel des autres exemples.
- Il y a l'option -ext jpg qui précise que seules les photos jpg sont concernées (cela ne me parait pas indispensable, mais une petite sécurité en plus...)
- L'option -csv= qui est le point crucial de cette manip, et derrière laquelle on ajoute le nom du tableau contenant les données, avec les guillemets
Dans mon exemple, le tableau Meta-a-Importer.csv est placé dans le dossier C:\Tool\bat\
(30/11/2024) Dans certains cas, les métadonnées peuvent contenir des virgules; il faudra alors choisir un autre caractère comme délimiteur
On le spécifie avec l'option -csvDelim aussi bien en exportant qu'en important les données.
Exemples : Utilisez -csvDelim ";" pour le point-virgule. Et "\t", "\n", "\r","\\" représentent TAB CR LF \
- Et enfin le nom du dossier qui contient les photos à modifier, C:\Tool\Test dans cet exemple
Cette manip est résumée dans l'exemple 11 ci-dessous.
Exemple 11
Nom du raccourci : ImportDossierTest
Cible : C:\Tool\exiftool -ext jpg -csv="c:\Tool\bat\Meta-a-Importer.csv" "c:\Tool\Test\"
Utilisation : Vérifier que le tableau c:\Tool\bat\Meta-a-Importer.csv soit correct, et double cliquer le raccourci.
Cet exemple permet d'écrire les métadonnées IPTC:Caption-Abstract, IPTC:City et IPTC:Headline du tableau préparé, vers les 5 photos du dossier c:\Tool\Test\
Pour aller plus loin
Il faut étudier le Paragraphe 12
et le Paragraphe 26 des FAQ du site exiftool...
Il y a aussi le paragraphe consacré à l'option -csv dans le fichier de documentation générale ExifTool.
Et enfin une astuce (à manier avec précaution):
Pour provoquer l'écriture des mêmes métadonnées dans toutes les photos cibles, la première colonne peut contenir le nom *, et le tableau comportera alors une seule ligne de données.
ooooooooooooooooooo
Conventions d'écriture
Dans les chapitres précédents, j'ai suffisamment décrit la notion de raccourci, la façon d'enchaîner les paramètres avec des espaces,
la nécessité de bien considérer l'espace comme significatif, l'utilisation des guillemets, et l'écriture des chemins d'accès aussi bien pour
ExifTool que pour les divers fichiers de paramétrage.
Souvenez-vous que les paramètres sont lus de gauche à droite, et donc qu'il est important de placer ceux-ci dès le début de l'expression.
Dans ce chapire 4 qui décrit des paramètres ou options, je vais donc alléger l'écriture des exemples en écrivant uniquement les paramètres.
Je continue de sous entendre que l'appel à ExifTool et les options ou paramètres sont enregistrés dans la case "cible" d'un raccourci.
Cela induit que vous allez déposer des photos, ou des dossiers de photos sur le raccourci, photos sur lesquelles le traitement va être réalisé.
Par exemple cette case contiendra C:\Tool\exiftool -k -exif:all
Dans le cas où vous utilisez ExifTool en ligne de commande, il faut généralement ajouter des indications sur les fichiers à traiter.
Voici quelques options auxquelles j'ai été confronté, ou que j'ai trouvées intéressantes.
Il en existe beaucoup, et je ne pense pas pouvoir les décrire toutes.
Pour ceux qui se débrouillent avec la langue anglaise, vous pouvez aller voir la documentation dans le site officiel
Les options y sont triées par familles et la liste est complète.
L'option -k
L'option -k permet de conserver la fenêtre d'ExifTool ouverte. C'est utile pour pouvoir lire les éventuels messages d'erreur.
Entre chaque paramètre précédé d'un tiret, il doit y avoir un espace donc pensez à bien séparer les paramètres avec des espaces.
Je propose d'ajouter systématiquement cette option dans les paramètres envoyés à exiftool.
-overwrite_original
J'ai regroupé les informations liées à cette option dans le chapitre 5. Allez-y sans tarder ...
Le paramètre -r Récursivité
Ce paramètre introduit la récursivité, c'est la possibilité de lancer autant de fois le traitement qu'il y a de sous-dossiers.
C'est à dire qu'en sélectionnant un nom de dossier, ExifTool va traiter tout le contenu, y compris tous les sous-dossiers.
A manier avec prudence !
Le paramètre -P Préserver
Paramètre qui permet de ne pas toucher à la "date de modification" de l'image.
Certains utilisateurs se basent sur cette date pour connaître l'état d'avancement de leur travail, et donc souhaitent la préserver.
Perso, je considère que c'est pas bien fiable, n'importe quel logiciel (notamment Windows lui même) pouvant gérer ou modifier cette date à tout moment.
Le paramètre -p Print
Remarquez le p minuscule, c'est l'un des rares cas où ExifTool fait la différence entre majuscules (ci-dessus) et minuscules
Ce paramètre permet de préciser un nom de fichier texte qui doit contenir les métadonnées à utiliser, et des indications de mise en forme du résultat.
On va donc passer à ExifTool le chemin d'accès et le nom du fichier, de préférence avec des guillemets.
Exemple : exiftool -p "C:\Tool\conf\tableau.txt"
Vous aurez donc préparé un fichier texte, "tableau.txt" contenant les données à afficher et la mise en forme des résultats.
Dans ce fichier texte, de nombreuses possibilités peuvent être utilisées pour la mise en forme, qu'il serait trop long de détailler ici.
Je vous renvoie à la
documentation de l'auteur pour l'écriture de ce fichier de formatage.
(04/02/2023) Notez tout de même l'extraordinaire puissance de cette option avec cet exemple :
Préparez un fichier Texte.txt contenant cette ligne : Fichier: $FileName - (f/$Aperture, ${ShutterSpeed}s, ISO $EXIF:ISO)
Avec la commande exiftool -p Texte.txt DSC001.jpg vous obtenez un affichage comme ceci : Fichier: DSC001.jpg - (f/5.6, 1/60s, ISO 100)
Remarquez que les métadonnées sont précédées du symbole $, et que ${ShutterSpeed}s constitue un traitement de la métadonnée ShutterSpeed avec le $ et les accolades, permettant de l'afficher sous forme de fraction de secondes.
Vous pouvez donc vous préparer une panoplie de fichiers texte de ce type, contenant telle ou telle sélection de métadonnées à afficher avec leur mise en forme.
Il vous suffira d'invoquer un de ces fichiers dans l'option -p pour obtenir l'affichage les données souhaitées, sans avoir besoin de vous souvenir de la syntaxe exacte de chaque donnée.
(04/02/2023) Une deuxième utilisation de cette option consiste à donner directement les informations à la suite du -p
L'intérêt est de permettre un traitement de la métadonnée directement dans la commande.
Exemple : exiftool -p "${directory;s(.*/)()} $xmp:Title" DSC001.jpg
cette commande affiche le nom du dossier (à droite du dernier caractère \ du chemin) et le titre xmp de la photo.
C'est aussi un moyen de provoquer l'affichage réduit d'une métadonnée dont on aurait besoin dans un traitement plus général.
Un exemple d'utilisation est donné à la fin du chapitre 2E avec la commande exiftool.exe -m -p "$iptc:city"
Le paramètre -f Force print
Paramètre qui permet de "forcer" l'affichage d'une métadonnée, même si elle est vide
C'est une option utile lorsqu'on souhaite récupérer des données en colonnes (avec le format -t par exemple), une métadonnée absente ne devant pas décaler les colonnes.
Le paramètre -F Fix offset (lettre F majuscule)
Certains logiciels ou types d'appareils photo écrivent des données EXIF incorrectes, il devient alors impossible de les modifier.
Associé au paramètre -m (ignorer les erreurs mineures) , le -F tente de recalculer des données EXIF correctes.
Utilisés seuls (-F -m), ces deux paramètres permettent de contourner l'anomalie, et de modifier des dates exif, des coordonnées gps etc ...
Mais l'anomalie reste dans les exif; consultez la doc officielle de -F pour tenter de la corriger.
Le paramètre -lang Langue
En précisant fr, ce paramètre permet de traduire plus ou moins en français les noms des tags qu'ExifTool va afficher.
on écrit donc -lang fr
A utiliser de préférence avec le paramètre -L pour gérer les caractères accentués, voir ci-dessous.
Remarque : Windows en mode de commande (la fenêtre noire affichée par ExifTool) affiche du texte au format ANSI qui ne gère pas les accents.
Une astuce consiste à utiliser la police Lucida console dans les propriétés des raccourcis. Les accents sont alors bien mieux affichés.
Autre solution, ajoutez l'option -w txt , la sortie se fera dans un fichier texte, et dans ce fichier, les accents sont bien gérés.
Le paramètre -L Latin
Ce paramètre a une autre forme: -charset latin qui équivaut à -L
Cela semble permettre l'utilisation de données contenant des caractères accentués en français.
Pour pouvoir écrire les caractères accentués dans des métadonnées IPTC, il faut aussi ajouter "-IPTC:CodedCharacterSet=utf8" dans la commande ExifTool
Le paramètre -g Grouper
Utilisé seul, ce paramètre liste les tags par groupes. Le nom du groupe délimite un paragraphe.
Il n'est donc utile que dans les cas ou ExifTool va produire une liste de tags, ce qui rend le résultat plus lisible.
On peut ajouter des valeurs à ce paramètre ( -g0 ou -g1 ...) : voir la doc.
Le paramètre -G
Affiche les noms de métadonnées avec le nom du groupe dans une première colonne. La lettre G est en majuscules.
Exemple : IPTC Caption-Abstract
A la différence du g minuscule, les données sont ici affichées en colonnes, et non en paragraphes.
Le paramètre -ext Extension
Ce paramètre permet de spécifier une extension de nom de fichier en entrée, c'est à dire les fichiers qui vont être lus pour être traités.
Par exemple, pour limiter un traitement uniquement aux fichiers de type jpg, on écrira -ext jpg
Plus spécifiquement, si on veut appliquer un traitement à des fichiers normalement ignorés, on peut ainsi le spécifier, par exemple -ext gpx
Si on veut exclure un type de fichier, il faut doubler le tiret. Ex: traiter tous les fichiers reconnus sauf les JP2 ce sera --ext JP2
(Pour spécifier un type de fichier en sortie, la méthode sera différente, voir le paramètre -o par exemple)
Le paramètre -a all
Il existe des noms de tags ambigus, c'est à dire portant le même nom dans des groupes ou sous-groupes différents.
Par exemple "keywords" existe dans le groupe IPTC, et aussi dans le groupe XMP (destinés aux documents pdf. XMP:xmp-pdf:Keywords)
Par défaut, ExifTool va privilégier l'un de ces groupes, notamment en lecture. ("preferred group" dans la doc en anglais)
Le paramètre -a force la lecture de tous les tags portant le même nom ( exemple -a -keywords )
Si on précise les noms complets des tags, inutile d'utiliser -a
Si on ne précise aucun tag , -a signifie "all" c'est à dire tous les tags.
(16/05/2023) Le paramètre -u unknown
Si on utilise -a -u sans préciser de nom de tag, ExifTool va afficher tous les tags de l'image concernée, y compris les tags inconnus.
Pour avoir le nom "correct" de ces tags inconnus, utilisez aussi -s et -G afin d'avoir un affichage précis, et repérer ainsi le nom qui vous intéresse.
Lorsqu'on souhaite afficher précisément un tag "inconnu" , l'option -u ou -U est obligatoire.
Exemple : pour afficher le tag Maker Notes Sony b04c, la syntaxe est : exiftool -k -u "-MakerNotes:Sony_0cb04c"
Le caractère séparateur underscore (_) est requis.
Le paramètre -h HTML
Provoque l'affichage du résultat de la commande sous forme html
Cela peut être utile si vous prévoyez de publier le résultat dans un site internet, ou si vous souhaitez afficher le résultat avec un navigateur web.
Le paramètre -s
Provoque l'affichage des noms de métadonnées telles qu'elles doivent être écrites dans les commandes Exiftool.
je suppose que c'est contradictoire avec -lang
Exemple de nom : Caption-Abstract
Le paramètre -n
Par défaut, ExifTool réalise une conversion de la valeur de certaines métadonnées, pour les rendre plus lisibles.
Exemple, la balise Exif Orientation affiche "horizontal" en anglais, "0° (haut/gauche)" en français avec lang=fr.
En utilisant l'option -n, ExifTool ne fera pas la conversion et conserve la valeur réelle de la métadonnée. (orientation = 1)
Une méthode alternaitve à l'utilisation de -n consiste à ajouter le suffixe # à la métadonnée.
Par exemple, les commandes exiftool -exif:orientation# test1.jpg et exiftool -n -exif:orientation donnent le même résultat
Le paramètre -d
Permet de spécifier le format de date, lorsqu'une métadonnée contenant une date est lue, puis utilisée.
Lisez la partie décrivant l'utilisation du symbole % à ce sujet dans le chapitre 4B ci-dessous
La doc officielle pour les formats de date est ici
Le paramètre -m (minor)
Vous pouvez rencontrer ce paramètre dans des exemples, il sert à éliminer les compte rendus d'erreurs mineures.
Le paramètre -o (output)
Certaines commandes ExifTool provoquent l'écriture de fichiers. L'option -o permet de préciser le nom du dossier ou du fichier à utilser en sortie.
Dans certains cas de déplacement ou de traitement sur les fichiers, ce paramètre provoque la copie des fichiers au lieu de leur déplacement.
C'est une précaution importante au cas où vous auriez fait une erreur dans votre manip.
Ce paramètre ne concerne pas les formats de sortie qui sont précisés autrement, par exemple avec un paramètre du type -csv
Le paramètre -w
Un exemple , ajouter -w txt après une commande provoque le renvoi de l'affichage dans un fichier texte portant le nom de la photo (avec extension.TXT),
fichier qui sera créé dans le même dossier que la photo originale.
Opérateur <
On a vu dans les exemples précédents l'opérateur < , par exemple dans ce cas : -IPTC:Caption-Abstract<Filename -L
Il permet de récupérer une valeur pour l'écrire dans un tag : l'expression -IPTC:Caption-Abstract<Filename se lit de droite à gauche :
le "Filename" est extrait, puis envoyé dans la métadonnée IPTC:Caption-Abstract
Précaution : le sybole < étant interprété par windows, la commande qui le contient doit être encadrée par des guillemets.
"-IPTC:Caption-Abstract<Filename" -L
Opérateur - et - -
Remarquez le tiret qui précède IPTC:Caption-Abstract dans l'exemple précédent; c'est aussi un opérateur qui signifie que le tag va être écrit.
Si le tiret est doublé, ça signifie que le tag ne doit pas être écrit (dans une commande suceptible d'écrire plusieurs tags à la fois)
En règle générale, ce double tiret signifie "excepté" et peut concerner aussi un groupe de tags.
Opérateur =
Si on veut inscrire une valeur dans un tag, l'opérateur sera le signe = (Exemple : -City=Avignon)
Si vous mettez un espace immédiatement après le signe = il sera interprété comme un séparateur de commande et le tag sera effacé.
L'opérateur ^= insère un texte vide dans le tag, au lieu de l'effacer (Exemple : -City^=)
En utilisant les guillemets c'est plus clair, comme ceci : "-City=" efface le tag, "-City^=" vide le tag, "-City=Le Mans" écrira Le Mans.
Tags liste
Il existe des tags dits "en liste"; c'est le cas par exemple des mots clés IPTC ou XMP, qui contiennent une liste de mots-clés.
Dans les tags en liste, les opérateurs += et -= permettent d'ajouter ou d'enlever un élément d'une liste
Si on souhaite ajouter une valeur à une liste, on utilisera += (exemple : -iptc:keywords+=chat)
Si on souhaite retirer une valeur à une liste, on utilisera -= (exemple : -iptc:keywords-=chat)
De même, avec l'opérateur <, on peut vouloir travailler sur des tags en liste.
Par exemple, pour ajouter des mots clés provenant de iptc:keywords dans les mots clés xmp (xmp-dc:subject), l'expression s'écrira :
-xmp-dc:subject+<iptc:keywords
Cas particulier des opérateurs += et -=
L'opérateur += , selon le contexte dans lequel il est utilisé, peut avoir une autre fonction, quelque peu différente de ce qui vient d'être décrit.
Si il est utilisé pour un tag contenant une valeur numérique, il additionne la valeur spécifiée
Exemple : exiftool -ExposureCompensation+=0.5 ajoute 0.5 à la valeur qui était dans ce tag.
Attention, si on veut soustraire, il faut utiliser += avec un nombre négatif : exiftool -exposurecompensation+=-0.5
Pourquoi ? Parce que l'opérateur -= n'est pas utilisé de la même façon... il sert à "enlever" une valeur seulement si elle existe.
Exemple : exiftool -Credit-="Reuters" efface la métadonnée Credit si elle contient Reuters.
Dans un autre contexte, ces deux opérateurs, += et -= fonctionnent encore différemment, c'est le cas pour les dates.
Ils permettent d'ajouter ou de soustraire des durées (par exemple si l'appareil photo avait une date ou une heure incorrectes)
Exemple : exiftool -DateTimeOriginal+="0:0:0 01:55:00" ajoute 1h 55min à la date de prise de vue.
(15/10/2019) L'opérateur de traitement : $ {nom de tag;traitement}
Dans les exemples précédents, vous avez pu voir apparaître le symbole $, comme par exemple dans l'expression "-iptc:keywords<${iptc:keywords;NoDups}"
Le symbole Dollar introduit un traitement sur le tag qui est mentionné dans l'expression entre accolades , le traitement étant décrit à la suite du point virgule.
Donc, dans l'exemple ci dessus, le tag -iptc:Keywords de gauche va recevoir le résultat du traitement "NoDups", réalisé sur le (même) tag source qui est écrit à droite du signe <.
Ce traitement 'NoDups" consiste à éliminer les éventuel doublons présents dans le tag source.
La forme générale est donc : $ accolade tag point-virgule traitement accolade
Pour enchainer plusieurs traitements, utilisez le point virgule comme séparateur.
Un autre exemple cité au tout début de la doc est : ${FileName;s/\.[^.]*$//}
Le traitement consiste ici à remplacer l'extension du nom de fichier par "rien du tout"
Ce traitement est une "expression régulière" de substitution ; il commence donc à partir du point virgule
Et il est de la forme s/texte recherché/texte qui remplace/ (le s signifie substituer)
La partie texte recherché est \.[^.]*$ et la partie texte qui remplace est entre les deux // à la fin, c'est à dire vide.
La signification de \.[^.]*$ est la suivante :
le dollar indique que nous cherchons des critères en commençant par la fin de texte. Ici, le dollar est interprété en tant qu'élément de l'expression régulière.
Puis, lisez de g à d : trouver un point (neutralisé ou échappé par un \), suivi de caractères différents du point [.^] présents x fois (l'astérisque *)
(15/05/2024) : J'apprends qu'on peut utiliser le tag Basename (nom de fichier sans extension) à la place de Filename !
(15/05/2024) Exemples avec regexp
On vient de voir dans l'exemple précédent un traitement regex ou regexp, ce qui est un peu hors sujet dans cette page.
Les traitements regexp existent sans parenté avec ExifTool, faites vos recherches à ce sujet...
C'est un sujet à ne pas négliger, car les regexp sont extrêmement puissants.
Je vais citer néanmoins ici quelques exemples dont j'ai eu besoin récemment en traitant par exemple le nom de fichier 24-05-11:13-30-DSC001.jpg
- La substitution ne s'effectue qu'une fois. ${filename;s/\-/" "/} donnera 24 05-11:13-30-DSC001.jpg
- Utilisez l'option g pour "global" : ${filename;s/\-/" "/g} donnera 24 05 11:13 30 DSC001.jpg (ôter tous les tirets)
- Une autre syntaxe pour faire la même chose : ${filename;s(\-)(" ")g}
- Un autre moyen, utiliser tr au lieu de s : ${filename;tr/\-/" "/} donnera aussi 24 05 11:13 30 DSC001.jpg
- Utilisation de variables. Des expressions évaluées entre parenthèses sont stockées dans les variables $1 $2 $3 ...
Exemple ${filename;s/(^.{6}):(.{5})(\-)(.*$)/$1" "$2" "$4/} donnera 24-05-11 13-30 DSC001.jpg (découpage en trois groupes)
Remarquez dans ces exemples que le symbole dollar, comme tout ce qui est après le point virgule, est interprété par regexp, et non par ExifTool.
Fin de la parenthèse regexp
J'espère un jour pouvoir faire une doc sur les différents autres traitements possibles fournis par ExifTool, hors regex.
L'opérateur $ est utilisé de manière assez similaire dans l'option -p : il précède les noms de tags, mais les accolades peuvent être omises s'il n'y a pas de traitement.
Exemple : exiftool -p "$xmp:Title" DSC001.jpg   affiche le titre xmp de la photo DSC001.jpg
Vous avez pu voir aussi apparaîte le symbole $ dans d'autres situations, dans les fichiers de configuration par exemple.
Dans ces cas là, on n'est plus dans une écriture d'opérations sur les tags, mais dans une forme de langage de script.
Le dollar sert alors à désigner des variables dans les scripts ($val ou $PicasaRegionName...), et il n'y a pas d'accolades dans cette écriture.
(15/04/2021) Le symbole % dans le renommage de fichiers
Le symbole % est utilisé lorsqu'on veut modifier les noms des photos, ou les noms de dossiers.
Les deux métadonnées concernées sont FileName et Directory.
Il y a quelques informations sur ces deux métadonnées à la fin du chapitre 5 "tags spéciaux"
- Variables :
%f : nom de fichier sans extension. %e : extension. %d : nom du dossier.
Par exemple, renommer le fichier 1234.jpg en ajoutant IMG devant son nom :
exiftool "-FileName<IMG%f.%e" 1234.jpg
L'opération consiste à modifier la métadonnée FileName, qui est le nom du fichier.
On y écrit IMG suivi du nom de fichier (%f), du point, et de l'extension (%e).
- Formats de date
Le symbole % est aussi utilisé pour les formats de date , après l'option -d :
%Y : année sur 4 chiffres. %m : mois sur 2 chiffres. %d : jour sur 2 chiffres
%y : année sur 2 chiffres. %B : nom du mois. %b : mois abrégé. %A : nom du jour. %a : jour abrégé.
%j : numéro de jour dans l'année. %w : numéro de jour dans la semaine. %W : numéro de semaine
%c ou %x ou %X : représentation de la date selon les règles habituelles de votre pays.
- Et les formats d'heures :
%H : Heure (24). %I : Heure (12). %M : Minute (60). %S : Secondes (60). %s : Nombre de secondes depuis le 01/01/1970.
%z : Time zone (+/- hhmm). %Z : Nom de Time zone
- On peut aussi utiliser les variables %f ou %e ou %d dans une déclaration de format de date, on doublera alors le symbole %
- Exemples
exiftool -d %Y%m%d_%H%M.%%e "-FileName<CreateDate" photos
Cette commande renomme les fichiers (de type jpg par exemple) contenus dans le dossier "photos" en utilisant leur date de prise de vue.
-FileName est la métadonnée cible, CreateDate est la métadonnée source dans laquelle on va chercher an, mois, jour, minutes, secondes.
Le paramètre -d annonce la spécification du format de date, qui sera donc du type aaammjj_hhmm
On obtiendra par exemple en résultat un nom de fichier comme 20210413_1915.jpg
Remarquez la présence du double caractère % dans %%e qui représente l'extension de nom de fichier jpg (précédée du point).
Comme le point, le caractère _ (tiret bas) est simplement ajouté dans le format pour apparaitre dans le résultat.
Important :
- Les commandes ExifTool sont évaluées de gauche à droite. Le format de date -d doit donc précéder l'expression qui l'utilise.
- Utilisez -testname à la place de -filename pendant la mise au point de vos paramètres !
- La métadonnée FileName contient le nom du fichier avec l'extension, la variable %f contient le nom de fichier sans extension.
En utilisant le caractère dollar et des accolades, on peut réaliser un traitement sur la métadonnée filename
Exemple : ${filename;s/\.[^.]*$//} ici on supprime l'extension du nom de fichier
Si vous voulez qu'un caractère "espace" soit utilisé dans un nom de fichier, mettez des guillemets...
- Soit autour du format de date :
exiftool -d "%Y%m%d %H%M.%%e" "-filename<CreateDate" photos pour obtenir par exemple la forme 20210413 1915.jpg
- Soit autour de la commande de modification de nom
exiftool "-filename=Nom de mon fichier"
Et n'utilisez pas les caractères interdits dans les noms de fichiers. (/ \ ? * : | " < >)
Pour les éliminer, utilisez un traitement avec le point virgule : exiftool "-filename<${CreateDate;}"
Autre exemple, déplacer les photos du dossier temp vers des dossiers annuels
exiftool -d %Y "-directory<DateTimeOriginal" temp
Lisez également la fin du chapitre 5 sur les tags spéciaux FileName et Directory...
(17/03/2025) L'opérateur # à la fin des noms de tags
Par défaut, lorsque ExifTool affiche un tag, il fournit une valeur "traduite" pour en faciliter la lecture.
Pour en obtenir la valeur non traduite on peut utiliser l'option -n
Exemple : avec -GpsAltitudeRef on obtient Above Sea Level. Avec -n -GpsAltitudeRef on obtient 0
Dans une expression un peu compliquée, on peut souhaiter éviter l'utilisation de l'option -n, mais avoir ponctuellement besoin d'une valeur non traduite.
Dans ce cas, on peut utiliser le suffixe # sur le nom de la métadonnée. ( -GpsAltitudeRef# )
C'est notamment le cas dans un test :
Exemple exiftool -if "$EXIF:Iso# eq 100" "-Iptc:CaptionAbstract=Sensibilité 100 ISO"
a suivre
@, ...
en cours d'écriture
- ${Filesequence} Variable qui prend les valeurs de 1 à N lors du traitement de N fichiers dans un répertoire
Exemple : exiftool "-datetimeoriginal+<0:0:${filesequence}0' c:\Tool\tests" pour incrémenter l'heure de 10 en 10 secondes (avec le zéro qui suit !) des images du répertoire c:\Tool\tests
ooooooooooooooooooo
Des fonctions sous forme de tags
La plupart des tags utilisés dans ExifTool correspondent à des métadonnées "classiques" normalisées dans les groupes exif, iptc ou xmp.
Mais il existe aussi des tags que le développeur à créés pour permettre divers traitements et fonctions dans ExifTool
-ver
La commande: exiftool -ver affiche la version d'ExifTool
-overwrite_original
Par défaut, lorsqu'il modifie un fichier, ExifTool laisse une copie du fichier original dans le même dossier.
Ainsi, après une opération sur un fichier DSC000.JPG, vous trouvez aussi un fichier nommé DSC000.JPG_original
Si vous souhaitez éviter d'avoir ces copies d'originaux, l'option -overwrite_original doit être ajoutée aux paramètres.
Dans ce cas, je vous conseille de tester le traitement ExifTool sur une copie de votre lot de photos.
Quand vous êtes sûr que la méthode est au point, vous pouvez alors ajouter l'option -overwrite_original
L'autre solution, c'est de ne pas utiliser cette option, afin de pouvoir utiliser deux autres options (-restore_original ou -delete_original)
-overwrite_original_in_place
Cette fonction est très proche de la précédente, mais ici certains attributs de fchiers seront préservés.
La doc officielle semble se concentrer sur Mac OS, et je n'ai pas fait de tests sous Windows, alors je n'en sais pas plus.
La documentation officielle indique que cette fonction est plus lente que "overwrite_original"
Cependant, si vous modifiez avec ExifTool des informations "système", la "date système de modification" sera tout de même modifiée.
-restore_original
La commande: exiftool -restore_original C:\photos va rétablir à leur place, dans le dossier "photos", les images originales ayant l'extension _original
suite à traitement qui n'aurait pas été satisfaisant.
Créez un nouveau raccourci, nommé Restore Original, contenant C:\Tool\exiftool.exe -restore_original -k dans la case cible.
Pour annuler un traitement ExifTool, glissez les images ou le dossier traités sur ce raccourci.
Pour que cette "restauration" puisse se faire, il faut que le fichier .jpg et .jpg_original existent dans le même dossier
Je fais une utilisation intensive de cette fonction pendant mes tests, c'est très pratique, ça restitue mes images de test à l'état initial.
-delete_original
La commande: exiftool -delete_original C:\photos va effacer, dans le dossier "photos", tous les fichiers en double qui ont l'extension _original
Créez un nouveau raccourci, nommé Delete Original, contenant C:\Tool\exiftool.exe -delete_original -k dans la case cible.
Glissez un dossier sur ce raccourci afin d'éliminer tous les doubles de fichiers ayant l'extension _original, quand vous serez sûr que les modifications apportées lors d'un traitement précédent sont bonnes.
-csv=
Commande d'importation, décrite dans le chapitre 3D
-list
...
Les tags spéciaux
Ces tags sont proches des métadonnées classiques en ce sens qu'ils sont utilisés un peu de la même manière.
-alldates
Ce tag permet de manipuler en même temps les trois métadonnées EXIF suivantes : DateTimeOriginal, CreateDate, ModifyDate
-all
Permet de lister tous les tags, ou tous les tags d'un groupe. Ce n'est pas vraiment un paramètre, c'est plutôt un nom de tag "joker"
Par exemple, lister les tags exif s'écrit -exif:all
Il me semble que ce all est implicite, par exemple exiftool -k -xmp va lister tous les tags xmp
-IPTC:CodedCharacterSet
Ce tag, quand il prend la valeur utf8 ( -IPTC:CodedCharacterSet=utf8 ) permet d'utiliser des caractères accentués dans les métadonnées IPTC.
Je n'ai pas réussi à le rendre visible ... peut-être est il impossible de l'afficher ? En tout cas, ça fonctionne.
(Remarque : La console Windows a besoin du paramètre chcp 65001 et de la police Lucida pour gérer les caractères accentués)
-geotag
-globalTimeShift
...
-hierarchicalkeywords
Il s'agit là d'un tag correspondant à une métadonnée introduite par Adobe (xmp-lr:hierarchicalsubject) pour enrichir la façon d'utiliser des mots clés.
Par exemple, voici une hiérarchie à trois niveaux, trois mots clés sont écrits dans l'image :
hierarchicalkeywords1 animal
hierarchicalkeywords2 animal|mammifere
hierarchicalkeywords3 animal|mammifere|chat
les chiffres 1,2 ou 3 ajoutés au nom de la métadonnée correspondent à une convention d'écriture pour ExifTool, c'est ce qui en fait une spécificité.
Ils peuvent être ajoutés pour spécifier un niveau hiérarchique, en particulier lors de la lecture.
En écriture on peut s'en dispenser, si on écrit -hierarchicalsubject+=animal|mammifere, c'est forcément un niveau 2 dans la hiérarchie.
Je n'ai pas beaucoup pratiqué ExifTool sur ces mots-clés, c'est bien plus confortable avec d'autres logiciels, comme XnViewMP.
Les tags Fichier ou Répertoire
ExifTool est capable de modifier les noms de fichiers, ou les noms de répertoires
Il permet donc de renommer des fichiers, et comme les noms de répertoires décrivent l'emplacement des fichiers, il peut aussi les déplacer.
Il y a des précautions évidentes à prendre avant de manipuler ces tags.
-testname
Le tag testname permet de faire des essais sans lancer de modification sur un vrai fichier, en prenant la place des noms de fichiers cibles.
Exemple : -k -d %Y-%W- -TestName<${CreateDate}${FileName;s/^[0-9]{4}//}
Ces paramètres permettent de renommer par exemple 20210406-1300image.jpg en 2021-14-0406-1300image.jpg (insertion du numéro de semaine)
-filename
...
-directory
...
exiftool -directory<DateTimeOriginal -d %Y/%m/%d C:\Tool\tests
ou
exiftool.exe" -o . "-Directory<DateTimeOriginal" -d "X:\CopyTo\%Y" -r "X:\CopyFrom\"
Les caractères à ne pas utiliser dans les noms de dossier ou de fichier pour Windows sont : / \ ? * : | " < >
Si vous récupérez une valeur dans un tag, pour l'injecter dans un nom de fichier (exemple: -filename<Headline), on peut éliminer les éventuels caractères interdits.
La méthode est de faire un traitement ($) sur la donnée en ajoutant seulement un point virgule dans les accolades, comme ceci : -filename<${Headline;}
Il y a un cas particulier où il faut se méfier des tags filename et directory, c'est lorsqu'on extrait des tags en nombre d'un fichier pour les injecter dans un autre.
Doc originale du site officiel : https://exiftool.org/filename.html
Le groupe MWG
Exemple : MWG:copyright
De ce que j'en ai compris, MWG n'est pas un nouvel ensemble de métadonnées qui s'ajouterait à exif, iptc et xmp, mais une asutce utilisée par ExifTool
Le nom MWG vient de Metadata Working Group, et il est qualifié de groupe composite car il essaie de rassembler des informations.
MWG signifierait exif + iptc + xmp. C'est un moyen commode pour nommer et manipuler des métadonnées homologues dans les trois groupes en une seule fois.
Donc, en écriture, MWG-copyright représente trois métadonnées : EXIF:Copyright, IPTC:CopyrightNotice et XMP-dc:Rights (et quelques autres).
Des tags correspondant à certaines métadonnées qui n'existent pas dans le groupe exif concerneront seulement iptc et xmp
Exemple : MWG:keywords représente les métadonnées iptc:keywords et xmp:subject (et aussi deux autres métadonnées iptc).
De même, MWG:City représente iptc:city et xmp:city et quelques autres.
Cas particulier d'IPTC en écriture: le tag MWG va écrire les métadonnées IPTC uniquement si le groupe IPTC existe déjà dans la photo.
En lecture, il y a un ordre de priorité lorsqu'on utilise MWG : il semble que les données XMP soient lues en priorité.
Etc... La documentation correspondante est ICI
Voici les métadonnées les plus classiques regroupées selon la préconisation MWG :
Tag Name | Derived From |
City | IPTC:City |
XMP-photoshop:City | |
XMP-iptcExt:LocationShownCity | |
Copyright | EXIF:Copyright |
IPTC:CopyrightNotice | |
XMP-dc:Rights | |
Country | IPTC:Country-PrimaryLocationName |
XMP-photoshop:Country | |
XMP-iptcExt:LocationShownCountryName | |
CreateDate | Composite:SubSecCreateDate |
EXIF:CreateDate | |
IPTC:DigitalCreationDate | |
IPTC:DigitalCreationTime | |
XMP-xmp:CreateDate | |
Creator | EXIF:Artist |
IPTC:By-line | |
XMP-dc:Creator | |
DateTimeOriginal | Composite:SubSecDateTimeOriginal |
EXIF:DateTimeOriginal | |
IPTC:DateCreated | |
IPTC:TimeCreated | |
XMP-photoshop:DateCreated | |
Description | EXIF:ImageDescription |
IPTC:Caption-Abstract | |
XMP-dc:Description | |
Keywords | IPTC:Keywords |
XMP-dc:Subject | |
Location | IPTC:Sub-location |
XMP-iptcCore:Location | |
XMP-iptcExt:LocationShownSublocation | |
ModifyDate | Composite:SubSecModifyDate |
EXIF:ModifyDate | |
XMP-xmp:ModifyDate | |
Orientation | EXIF:Orientation |
Rating | XMP-xmp:Rating |
State | IPTC:Province-State |
XMP-photoshop:State | |
XMP-iptcExt:LocationShownProvinceState |
Le groupe Composite (07/03/2023)
Comme MWG, ce groupe est un artifice.
Le développeur a souhaité rendre plus accessibles certaines informations qui nécéssitent un calcul, ou plusieurs métadonnées.
Ne confondons pas : le groupe MWG est qualifié de "composite" car il gère en une seule opération des métadonnées (exif + iptc + xmp) équivalentes.
Ici, le groupe est nommé "Composite" car les métadonnées qu'il affiche sont une combinaison (ou un calcul sur) des métadonnées.
Exemples :
- Des données GPS auxquelles une correction doit être apportée.
- Un temps d'exposition de 0.008s dont on souhaite obtenir la forme en fraction : 1/125e
- Une heure exif à laquelle on doit ajouter un décalage lié à l'heure d'été
- Une focale d'objectif recalculée pour son équivalent 24x36
- Une forme d'affichage de coordonnées GPS du type 45°20'30" N, 5°45'15" E en une seule expression.
Dans ExifTool, ces calculs ont été préparés, et pour en obtenir le résultat, il suffit d'invoquer la pseudo métadonnée composite correspondante.
On obtient de cette façon une information plus facilement utilisable en lecture.
Par conséquent, il n'y a pas de possibilité d'écrire de telles métadonnées, puisqu'elles résultent d'un calcul.
Si vous en trouvez de manifestement fausses, il faudra modifier en amont la métadonnée qui est à la source de l'erreur.
Il faudra que j'ajoute ici quelques exemples...
ooooooooooooooooooo
Tous les liens sont dans le site officiel de Phil Harvey : https://exiftool.org/
Il y a aussi le site MetaCpan qui reprend une bonne partie de la documentation, et qui fournit une liste d'exemples commentés :
https://metacpan.org/pod/distribution/Image-ExifTool/exiftool
Ah, j'ai retrouvé le même document dans le site officiel : https://exiftool.org/exiftool_pod.html
En vrac, quelques pages intéressantes du site officiel, dont j'ai du mal à retrouver l'accès :
https://exiftool.org/geotag.html
https://exiftool.org/filename.html
https://exiftool.org//TagNames/Extra.html
https://exiftool.org/struct.html
Et dans la liste ci-dessous, d'autres pages intéressantes, par exemple Erreurs courantes lors de l'utilisation d'ExifTool (en anglais)
Vous pouvez également télécharger et utiliser la documentation générale du site exftool :
- Téléchargez la version exiftool image (le premier lien de la page d'accueil)
- Décompressez ce fichier tar.gz, et cliquez sur index.html dans le dossier html ...
Le forum ExifTool pourra également apporter pas mal d'informations.
D'autres liens :
Une page écrite par un utilisateur :
https://ninedegreesbelow.com/photography/exiftool-commands.html et traduite par Google
ICI
Une autre doc Gérer ses métadonnées avec exiftool.
(la même doc, avec illustrations ICI )
Encore une :https://hobography.net/exiftool-cheatsheet/
Dans mon propre site, la page voisine consacrée à XnViewMP contient un certain nombre d'exemples d'utilisation de ExifTool, et aussi un paragraphe qui parle des problèmes de dates sur Android.
Un fichier PDF "Tag Names" listant les noms de tags d'ExifTool : https://exiftool.org/TagNames.pdf
vrac
ExifTool -d %y%m%d-%H%M%S%%-c.%%e "-testname<CreateDate"
ExifTool -d %y%m%d-%H%M%S%%-c.%%e "-filename<CreateDate"
http://exiftool.org/forum/index.php/topic,9423.0/topicseen.html
https://www.tela-botanica.org/wikini/DevInformatiques/wakka.php?wiki=AideExifTool
https://ninedegreesbelow.com/photography/exiftool-commands.html
exiftool -T -Directory -Filename -RegionPersonDisplayName -r * .jpg> PeopleTags.txt
Et ici je pose un document rédigé par StarGeek dans le forum ExifTool
Il s'agit des métadonnées utilisées par Windows7 et peut-être Windows10.
https://exiftool.org/forum/index.php?topic=6591.0
Windows property, File type | Tags Read Priority order unless otherwise noted |
Tags Written |
Title, Jpeg | XMP:Title EXIF:ImageDescription IPTC:Caption-Abstract XMP:Description EXIF:XPTitle |
XMP:Title EXIF:ImageDescription IPTC:Caption-Abstract XMP:Description EXIF:XPTitle |
Title, Tif | XMP:Title EXIF:ImageDescription XMP:Description IPTC:Caption-Abstract EXIF:XPTitle |
XMP:Title EXIF:ImageDescription XMP:Description IPTC:Caption-Abstract (Only if previously existed) EXIF:XPTitle |
Subject, Jpeg & Tif | EXIF:XPSubject EXIF:ImageDescription |
EXIF:XPSubject |
Rating, Jpeg & Tif | XMP:RatingPercent EXIF:RatingPercent XMP:Rating EXIF:Rating |
XMP:RatingPercent EXIF:RatingPercent XMP:Rating EXIF:Rating |
Tags, Jpeg | All combined entries in XMP:Subject IPTC:Keywords EXIF:XPKeywords |
XMP:Subject IPTC:Keywords EXIF:XPKeywords XMP:LastKeywordIPTC XMP:LastKeywordXMP |
Tags, Tif | All combined entries in XMP:Subject IPTC:Keywords EXIF:XPKeywords |
XMP:Subject IPTC:Keywords EXIF:XPKeywords XMP:LastKeywordIPTC |
Comments, Jpeg & Tif | EXIF:UserComment XMP:UserComment EXIF:XPComment |
EXIF:XPComment (EXIF:UserComment and XMP:UserComment cleared) |
Authors, Jpeg & Tif | EXIF:Artist IPTC:By-line XMP:Creator EXIF:XPAuthor |
EXIF:Artist IPTC:By-line XMP:Creator EXIF:XPAuthor |
Date Taken, Jpeg & Tif | EXIF:DateTimeOriginal IPTC:DateCreated + IPTC:TimeCreated XMP:CreateDate EXIF:CreateDate XMP:DateTimeOriginal |
EXIF:DateTimeOriginal EXIF:CreateDate XMP:CreateDate IPTC:DateCreated IPTC:TimeCreated(?) |
Date Taken, PNG | PNG:CreationTime | PNG:CreationTime |
Program Name, Jpeg | EXIF:Software | not writable |
Date Acquired, Jpeg | XMP:DateAcquired | XMP:DateAcquired |
Copyright, Jpeg | EXIF:Copyright IPTC:CopyrightNotice XMP:Rights |
EXIF:Copyright IPTC:CopyrightNotice XMP:Rights |
Notes: Date Taken - When setting through Windows, only the date appears to be editable. Title - The priority that windows fills this tag is different for jpegs and tifs. IPTC Data written - Testing seems to indicate that these tags are not created by default. I still need to test whether the tag or just the IPTC block needs to exist. RatingPercent - Setting: 5 Stars = 99, 4 stars = 75, 3 stars = 50, 2 stars = 25, 1 star = 1, 0 stars = removes tags. Reading: 88-100+ = 5 Stars, 63-87 = 4 stars, 38-62 = 3 stars, 13-37 = 2 stars, 1-12 = 1 star, no tag or 0 = 0 star PNG - Png files only seem to have one tag related property for Windows |
Telechargement du logiciel CCE.zip Version 5.2.7 la plus récente (4.2Mo)
Telechargement du logiciel CCE_V3.1.zip
Cette page vous a t-elle été utile? Avez-vous un commentaire ? Avez-vous trouvé des erreurs ?
Contact par mail :