Descriptions Google Photos dans les fichiers avec exiftool et Google Takeout

Pour des photos prises avec un smartphone Android, Google Photos est très pratique pour partager facilement un album photo. J’y retrouve les différentes fonctions basiques dont j’ai besoin, ajout de commentaire, recadrage avec maintien des proportions, rotation et gestion du contraste/luminosité. Mais j’aime bien également conserver une copie de mes albums… S’i est possible de télécharger un album depuis l’interface, les photos ne contiennent malheureusement pas les commentaires. Heureusement il est possible de résoudre ça avec Google Takeout et exiftool.

Il faut d’abord demander l’extraction sur Google Takeout désélectionnez tous les produits Google sauf Google Photos, et sélectionnez les albums qui vous intéressent via le bouton « Tous les albums photo inclus »:

Vous recevrez un mail une fois le processus d’extraction Google Takeout terminé pour aller télécharger l’archive. Une fois dézippée vous y retrouverez un répertoire par album avec pours chaque photo :

  • Le fichier image original
  • Un fichier portant le même nom avec l’extension json qui comporte les méta-données de la photo dans Google Photos
  • Et si vous avez apporté des modifications, la photo modifiée suffixée par « -modifié »

Il y a également un autre fichier json qui comporte les méta-données de l’album.

Pour copier les méta-données Google du fichier JSON dans l’image le logiciel exiftool est une fois de plus parfait. J’utilise la commande suivante (source) :

  • -d %%Y -Copyright<"(c) ${DateTimeOriginal}"   pour ajouter une mention de Copyright avec l’année. A noter qu’il faut positionner cette partie avant -tagsfromfile pour avoir accès aux tags du fichier source et que les guillemets sont obligatoires pour pouvoir utiliser l’affectation « <« .
  • -tagsfromfile "%%d/%%F.json"   va lire le fichier json correspondant au nom du fichier et le parser pour mettre à disposition le contenu dans des tags
  • "-Keywords<Tags" "-Subject<Tags" "-Caption-Abstract<Description" "-ImageDescription<Description"  pour copier un certain nombre de tags dans les champs EXIF
  • "-Comment<Description" -Charset cp1252  pour copier le commentaire avec le bon encoding
  • -overwrite_original_in_place -progress --ext json -r .  pour traiter récursivement tous les fichiers à partir du répertoire courant, sauf les fichiers json, et sans faire de copie de sauvegarde

Et comme je suis flemmard, j’ai fait un script pour automatiser l’ensemble. Il me suffit de copier ce fichier dans le répertoire à traiter et de le lancer pour qu’il traite tous les sous répertoires. Deux petites complications notables dans ce script :

  • Il remplace les fichiers originaux par les fichiers modifiés (ceux suffixés par -modifié) ; voir la première boucle for
  • Il contient directement le script exiftool pour renommer sous Windows (voir ce post) pour n’avoir qu’un unique fichier à créer ; le script est temporairement écrit puis supprimé ; voir la deuxième boucle for qui extrait le script entre les deux balises à la fin
Ce script peut bien sur être adapté pour fonctionner sous Linux (et sera même beaucoup plus simple)

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.