Renommer des photos en fonction de leurs dates

Quand vous organisez un événement avec plusieurs photographes (mariage, baptême et autres orgies sexuelles) et que vous centralisez toutes les photos, une bonne idée pour faciliter le tri est de renommer chaque fichier en fonction de la date et de l’heure de la photo.

Pour ce faire, le plus simple est d’utiliser jhead, qui est un programme en ligne de commande servant à gérer les données EXIF des fichiers JPEG. Il est disponible sous Linux, Windows et OS-X.

Lire les données EXIF

Si vous voulez simplement jeter un œil aux données EXIF d’un fichier, il suffit de lancer jhead seul :

jhead Fichier.jpg

jhead

Renommer les fichiers

C’est donc la donnée « Date/Time » qui va être utilisée pour renommer les fichiers grâce à la commande suivante :

jhead -n Fichier.jpg

Le format par défaut est mmjj-hhmmss. Vous pouvez définir vous même le format avec des « strftime », par exemple pour rajouter l’année devant le nom (utile pour les photos du nouvel an !) et ajouter des séparateurs (format aaaa-mm-jj-hh-mm-ss) :

jhead -n%Y-%m-%d-%H:%M:%S Photo.jpg

Pour appliquer ces transformations à tous les fichiers du dossier courant, il suffit de remplacer le nom du fichier par un joker :

jhead -n *.jpg

Si plusieurs clichés ont été pris exactement à la même date (à la seconde près), un suffixe sera automatiquement ajouté au nom (a, b etc.).

Corriger la date

Ajouter/Retrancher une durée connue

Forcément, vu que René se sert de son appareil tous les six mois, il a oublié de faire le changement d’heure. Il faut donc commencer par ajouter une certaine durée à chacune des dates de ses photos. Exemple pour rajouter une heure à toutes les photos d’un dossier :

jhead -ta+01:00 *.jpg

Autre exemple, si on veut retrancher 30 minutes :

jhead -ta-00:30 *.jpg

Décaler d’une très longue durée

Mais çà c’était sans compter sur Nathalie qui vient de changer sa batterie, et du coup elle a réinitialisé la date de son APN au premier janvier 1980. Deux choix s’offrent alors à vous : soit vous calculez combien d’heures séparent le 1 janvier 1980 et le moment où Nathalie a photographié René en train de mettre sa cravate autour de la tête, soit vous demandez à jhead de faire le calcul.

Admettons que vous sachiez que la soirée a basculé à 01h32 le 13 juillet 2015, mais que les données EXIF de ladite photo indiquent le 2 janvier 1980 à 15h54. Il vous faut alors exécuter la commande suivante :

jhead -da2015:07:13/01:32:00-1980:01:02/15:54:00 *.jpg

Nom des photographes

Si vous souhaitez, malgré le renommage, vous rappeler du nom des auteurs des clichés, le plus simple de l’ajouter aux données EXIF, dans les commentaires :

jhead -cl "Shot by Nathalie" *.jpg

Toutefois, cette méthode va a l’encontre de la philosophie initiale des données EXIF, à savoir ne contenir que des données techniques sur la photographie. Le plus propre est donc d’utiliser les données IPTC. jhead ne fonctionnant que sur les données EXIF, il est nécessaire d’utiliser un autre programme. Exemple avec exiv2 :

exiv2 -M "add Iptc.Application2.Byline Nathalie" *.jpg

La liste des tags (ici Iptc.Application2.Byline) accessibles avec exiv2 est disponible ici.

Pour aller plus loin

Pour obtenir de l’aide sur les différentes options de jhead :

jhead -h

Sinon, vous pouvez consulter la page dédiée à jhead sur le site de son créateur, Matthias Wandel.

De la même façon, vous pouvez obtenir de l’aide sur exiv2 avec la commande suivante :

exiv2 -h

ou en vous rendant sur la page officielle.