Modifier et/ou créer des données EXIF

Ou plutôt, des tas d’astuces pour créer des données EXIF, mais aussi les modifier, les manipuler, les corriger …

 

Capture d'écran du Terminal sous Mac OS X
Exiftool en ligne de commande

Personnellement, je garde des copies numériques de certains documents. Certains diront que je suis conservateur maladif. En partie vraie …

Certes, l’export en PDF est aisé ; plus ou moins intégré de base selon les logiciels et/ou OS (encore une fois, vive Mac et Linux). J’en fais aussi un usage intensif.

Mais parfois, une numérisation est indispensable car le document en question est sous forme papier.
Et parfois une copie au format JPG est préférable (document qui sera conservé au sein d’une photothèque).

Le souci étant que ladite image ne possède pas de données Exif (Exchangeable image file format) alors que les photothèques gèrent les images selon leurs métadonnées Exif.

Sous UNIX (donc sous Linux et sous Mac), il existe un logiciel terrible pour manipuler les données Exif ; soit pour les retirer, soit pour les modifier, soit pour créer.

Voici, pour mémoire personnelle et pour aider qui le souhaitent, ma petite façon de faire grâce à exiftool, petit programme très puissant qui s’utilise en ligne de commande et que j’ai aussi bien sur Linux (Ubuntu en général) que sur Mac OS X.

Pour simplifier les manipulations, je bosse toujours dans un dossier spécifique nommé AZERTY ; comme ça, je ne touche qu’à la ou qu’aux image(s) contenues dans ce dossier. Préférable quand on a des enfants qui sautent et crient autour …

Imaginons pour exemple 3 images issues d’une numérisation d’anciennes photos argentiques de moi prise le 18 juin 1984. Pour ce cas, on part du principe que ces images s’appelleront (modestement) “je-suis-le-plus-beau.jpg” ; “je-suis-le-plus-fort.jpg” et “je-suis-vraiment-parfait.jpg” … mais ce n’est qu’un exemple évidemment, on peut me trouver d’autres qualités 😀 …

En cas de numérisation, j’applique le protocole suivant :

  1. Avoir date et heure d’origine
  2. Avoir date et heure de numérisation
  3. Avoir une heure arbitraire à midi (soit 12:00:00)
  4. Garder le nom de fichier d’origine
  5. Ajouter la date en fin de nom de fichier

Voici la démarche :

  1. Placer l’image, nue de données EXIF utiles (pas de date) dans AZERTY
  2. Aller dans ce dossier (ici le dossier AZERTY est sur le bureau) :
    cd /Users/alban/Desktop/AZERTY
  3. Créer des données EXIF de date d’origine :
    exiftool -xmp:dateTimeOriginal="1984:06:18 12:00:00" *.*
  4. Créer des données EXIF de date de numérisation :
    exiftool -exif:CreateDate="1984:06:18 12:00:00" *.*
  5. Ajouter la date à la fin du nom de fichier :
    exiftool -d %%f_%d-%m-%Y.%%e "-filename<CreateDate" *.*

Évidemment, grâce à l’astuce de *.* je peux bosser sur tous les fichiers du dossier AZERTY, donc mes 3 images d’un seul coup.

Ainsi, les fichiers seront dotés des données EXIF identiques mais aussi renommés à la volée en 4 lignes de commande.

Dans le cas présent, voici ce que ça donne :

“je-suis-le-plus-beau.jpg” –> “je-suis-le-plus-beau_18-06-1984.jpg”

“je-suis-le-plus-fort.jpg” –> “je-suis-le-plus-fort_18-06-1984.jpg”

“je-suis-vraiment-parfait.jpg” –> “je-suis-vraiment-parfait_18-06-1984.jpg”

A noter, bien sûr, que vous pouvez aussi simplement vous servir de ce programme pour gérer vos photos.

Je veille toujours à avoir un Appareil Photo Numérique (APN) à la bonne date et la bonne heure.

Il présente le défaut de repartir à zéro une fois 9999 photos faites, je peux donc me retrouver avec 2 photos nommées DSCF1230.JPG et ceci est toujours risqué.

La solution ?

A chaque fois que je vide ma carte mémoire, je bascule toutes les images directement dans le dossier AZERTY puis leur ajoute leur date en fin de nom grâce à Exiftool. Une seule ligne de commande permet de traiter des dizaines voire même des centaines de photos.

Comme ça, je peux avoir une photo DSCF1230_06-02-2011.JPG et une autre DSCF1230_18-06-2014.JPG sans risque de crainte de doublon.

Je renote ici la ligne magique :

exiftool -d %%f_%d-%m-%Y.%%e "-filename<CreateDate" *.*

Edit :
Pour mémoire, je note également la commande à taper avec JHEAD pour créer un entête EXIF (avec date et heure du jour) ; toujours dans la même idée de base = donner une date EXIF à un document numérisé.

En général, je mets la bonne date mais simplifie l’heure à “midi”.

Créer des données EXIF (vides pour le moment) :

jhead -mkexif fichier_numerise.jpg

Ça renvoie :

Modified: fichier_numerise.jpg

Ensuite, on entre les données à insérer (exemple le 20 avril 2000) :

jhead -ts2000:04:20-12:00:00 fichier_numerise.jpg

Ça renvoie :

Modified: fichier_numerise.jpg

Et voilà 😉

Edit2 du 28/03/2016 :
Votre APN n’est pas à l’heure suite au passage à l’heure d’été (ou d’hiver) ??? Ben, oui … ça arrive de s’en rendre compte après avoir réalisé quelques photos … Les ordinateurs et SmartPhones sont automatiquement réglés donc on oublie de régler son APN 😉

Oups, ça sent le vécu … :-$

ExifTool permet de traiter par lot également afin d’ajouter (ou retirer) du temps aux données EXIF mal réglées.

Voici la ligne de code pour ajouter 1 heure à vos données EXIF :

exiftool -AllDates+=1:00

Et “date de création” + “date d’origine” sont incrémentées d’une heure en plus 😉

Edit3 du 11/06/2016 :
Vos avez fait des vidéos mais besoin de les modifier. Du coup, la vidéo faite le 15/11/2006 que vous venez de raccourcir n’est plus à la bonne date ?

Perso, je fais ceci:

exiftool -AllDates='2006:11:15 12:00:00' *.*

Pour forcer les dates dansles données EXIF de la vidéo.

Puis:

touch -t 200611151200 *.*

Pour que les dates dites “date de création” et “date de modification” passe aussi au 15/11/2006 à 12h00 🙂

(et oui, je suis encore en train de faire du ménage informatique ;-))

Edit4 du 24/07/2016 :
Bon, ben, en fait, je trie toujours les photos de la sauvegarde du vieux Mac. Et je viens de remarquer que des erreurs existaient.

Ben oui … quand votre enfant est né (exemple) en novembre 2010 et que vous avez des photos de lui en janvier 2010, c’est que l’APN avait pile un an de retard (en fait, je me souviens de cette erreur qui a près de 7 ans).

Le programme JHEAD peut vous aider.

Sur Linux, mais aussi sur Mac. Comme je suis sur Mac, là, en ce moment, j’y vais.

On télécharge le programme ici : jhead

Puis, on se rend dans le dossier de téléchargements ; on applique les droits ; on copie le programme dans le bon dossier.
Voici les 3 lignes de commandes à utiliser (les unes après les autres).

cd /Users/alban/Downloads
chmod +x jhead
cp jhead /usr/local/bin/jhead

Ensuite :

jhead -ta+8760:00:00 nom_de_la_photo.*

Pour cet exemple, j’avais juste un an pile de décalage soit 870 heures ; sachant que la ligne est pour heures:minutes:secondes.

Je vous laisse faire vos calculs ; moi, je vais me coucher …

Edit5 du 05/06/2017 :
Heu … Vous allez me prendre pour un dingue … mais … Je trie toujours des photos …

Bon, je vous rassure, je ne fais pas ça tous les jours, mais là, j’ai (enfin) fait une mise à jour du Mac Mini* (mise à niveau de 10.9.5 à 10.12.5) et, suite à un bug d’importation des photos de mon dossier manuel dans l’application “Photos”, j’ai vu que certains fichiers avaient une date de création au 01/01/1970.

Grrr, Je n’aime pas ça ; des fichiers plus vieux que moi !!! 😉

* : en fait, Linux Mint, c’est plus simple à mettre à jour et à niveau.

Une astuce pour ces fichiers sans vraie date de création ???

Je passe par le Terminal pour vérifier ; LinuxPower is with me :

exiftool -s photo.jpg | grep Date

Ça donne, par exemple :

FileModifyDate : 2010:03:03 21:30:50+01:00
FileAccessDate : 2017:06:05 14:59:34+02:00
FileInodeChangeDate : 2014:07:27 16:01:15+02:00
ModifyDate : 2009:03:02 15:25:50
DateTimeOriginal : 2009:03:02 15:25:50
CreateDate : 2009:03:02 15:25:50
DateStampMode : Off

Mais, pour autant, le Mac dit que le fichier a été créé le 01/01/1970

Et la ligne de code :

touch -t 200908231947 photo.jpg

Devant permettre de modifier la date ne donne rien … Pffff …

–> Bon, ben, on y va pour la méthode bourrin du coup :

exiftool -exif:CreateDate="2009:09:20 19:47:19" photo.jpg

Ça force la modification das données EXIF et ça transforme le fichier puisque ça transforme le fichier en photo.jpg_original et ça va créer un nouveau fichier photo.jpg avec une date de création à la date et l’heure actuelles.

Du coup, là, on retente un petit de :

touch -t 200908231947 photo.jpg

Et … TaDa !!! Es fonktionniert ! (ouais, je sais, j’assure grave en langue)

Bon, le truc pas cool, c’est que j’avais près de 300 fichiers à modifier.

Alors, là, j’ai un peu les yeux qui piquent et les doigts qui en ont marre ! 😉

Ha oui, si vous savez faire mieux et/ou plus simple et/ou ‘ce que vous voulez’ = vous pouvez me le dire ; je lis mes courriels.

Edit6 du 31/10/2017 :
Et, maintenant que je suis passé à WordPress (Octobre 2017), y a même les commentaires.

A bientôt,

A propos de Alban

Papa de 4 enfants étant lui même resté un enfant. Tombé par obligation dans l'informatique à 22 ans pour le boulot et s'étant "un peu" pris au jeu ... Pas un génie de l'informatique (loin de là), mais intéressé et carrément orienté Linux et entraide.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*