Photos
Fichier JSON Google Takeout : le fusionner avec vos photos (dates fausses)
Google Takeout range les dates de vos photos dans des fichiers JSON séparés. Quatre outils gratuits les réintègrent : ce que corrige chacun, les commandes exactes et comment vérifier.
Aussi disponible en: العربيةবাংলাDeutschespañolગુજરાતીहिन्दीIndonesiaitaliano日本語ಕನ್ನಡ한국어EnglishमराठीpolskiportuguêsрусскийKiswahiliதமிழ்తెలుగుไทยTürkçeукраїнськаاردوTiếng Việt中文
Vous avez téléchargé votre bibliothèque Google Photos avec Google Takeout. Vous voilà avec des milliers de photos à côté de milliers de fichiers .json, et votre visionneuse affirme qu'une photo de 2019 a été prise hier. Pour régler le problème, il faut fusionner chaque fichier JSON Google Takeout avec sa photo. Un outil lit la date de prise de vue dans le fichier JSON et l'écrit dans la photo, pour que toutes les applications affichent de nouveau la bonne date.
Ce guide explique pourquoi les fichiers JSON existent, pourquoi la fusion échoue parfois et comment quatre outils gratuits la réalisent. Vous aurez la commande exacte de chacun, la date que chacun modifie et une façon de vérifier le résultat avant de supprimer quoi que ce soit.
Pourquoi vos photos arrivent avec des fichiers JSON
Pour chaque photo, Takeout vous donne deux fichiers : l'image, par exemple IMG_1234.jpg, et un fichier JSON contenant la date d'origine, les coordonnées GPS, la description et les albums auxquels elle appartient. Un guide d'export décrit la première impression typique : une photo de 2019 affichait « hier » comme date, sans lieu ni album, alors que rien n'avait été perdu. L'information se trouvait dans le fichier JSON (PixelUnion). Illinois Tech donne la même explication au fait qu'un export compte plus de fichiers que votre bibliothèque ne compte de photos (Illinois Tech).
Le fichier photo peut contredire le fichier JSON. L'auteur de google-photos-exif a remarqué que si vous changez une date dans Google Photos, les métadonnées de l'image ne sont pas mises à jour : la nouvelle date n'existe que dans le fichier JSON. Certaines images, souvent celles qu'on a partagées avec vous, ne contiennent aucune date (google-photos-exif). Le README de gphotos-takeout-repair montre l'autre moitié du problème : dans un export décompressé, la photo, sa version modifiée et le fichier JSON affichent tous la date de l'export Takeout comme date de création (gphotos-takeout-repair).
Une application qui ne lit que le fichier photo ne voit donc aucune date, ou bien le jour de votre export. La bonne date se trouve dans le fichier JSON, et la fusion la remet à sa place.
Trois choses qui font échouer la fusion
Tout outil de fusion doit trouver le bon fichier JSON pour chaque photo. Trois particularités de Takeout compliquent la tâche.
- Une photo et son fichier JSON peuvent se trouver dans des zips différents. La FAQ de migration d'Ente donne l'exemple de
flower.jpegdans un zip et deflower.jsondans un autre, ce qui empêche de les associer (Ente). Le README de Porte cite le même cas comme limitation connue : il ne trouve pas les fichiers de métadonnées placés dans une archive différente de celle de leur image (Porte). - Les noms des fichiers JSON ne sont pas cohérents. Pour
IMG123.jpg, vous pouvez obtenirIMG123.jpg.jsonou simplementIMG123.json, et certains dossiers contiennent des fichiers JSON sans image correspondante (google-photos-exif). - Les photos retouchées sortent en double. Takeout exporte l'original et la copie retouchée comme deux fichiers distincts aux empreintes (hash) différentes, si bien qu'un détecteur de doublons qui compare les empreintes ne les repère pas (Ente). Le fichier retouché porte le suffixe
-edited, commeIMG_0001-edited.jpgà côté deIMG_0001.jpg(gphotos-takeout-repair).
La solution au premier point est la même pour tous les outils : téléchargez tous les zips, puis extrayez-les tous dans un même dossier parent en conservant les sous-dossiers tels quels (Ente). Si deux zips contiennent un dossier du même nom, fusionnez le contenu des dossiers au lieu de remplacer l'un par l'autre (google-photos-exif).
Un conseil d'Illinois Tech pour le téléchargement : gardez la fenêtre Takeout au premier plan. Si vous la réduisez ou travaillez dans une autre fenêtre, les téléchargements échouent au bout de 15 minutes, car Google vous demande de vous reconnecter (Illinois Tech).
Quatre outils gratuits pour le fichier JSON Google Takeout, et la date que chacun corrige
Une photo possède deux sortes de date. La date EXIF (DateTimeOriginal) est stockée dans l'image et la suit dans n'importe quelle application ou service. La date du fichier (modification ou création) appartient au système de fichiers. On la perd facilement : le README de gpth avertit que déplacer des fichiers sur un téléphone Android la réinitialise généralement (gpth). Avant de choisir un outil, vérifiez laquelle des deux il écrit.
Dans toutes les commandes ci-dessous, le premier dossier est votre Takeout extrait et le second un nouveau dossier de sortie vide.
Porte : écrit la date et le lieu dans la photo
Porte copie l'horodatage et la géolocalisation du fichier JSON associé dans les données EXIF de l'image, sans la recompresser. S'il ne trouve pas de date, il essaie le nom du fichier, et il retient la date la plus ancienne qu'il trouve, afin qu'une date de modification du fichier ne soit pas prise pour la date de prise de vue. Il copie les fichiers dans le dossier de sortie au lieu de les modifier sur place, met les fichiers en échec dans un dossier à part et enregistre un journal. Il ne conserve pas les données d'album. Vous pouvez télécharger un programme prêt à l'emploi depuis la page des versions du projet (Porte) :
porte srcpath destpath
google-photos-exif : complète une date EXIF manquante
Cet outil Node.js lit photoTakenTime dans chaque fichier JSON. Il règle la date de modification du fichier et ne remplit DateTimeOriginal que si la photo n'en a pas déjà une. Les fichiers qu'il ne peut pas traiter vont dans un dossier d'erreurs (google-photos-exif). L'auteur de PixelUnion l'a utilisé et indique qu'il a traité toute la bibliothèque en une vingtaine de minutes (PixelUnion).
yarn start --inputDir ~/takeout --outputDir ~/output --errorDir ~/error
gpth : trie dans un seul dossier ou par mois, puis règle la date du fichier
Google Photos Takeout Helper est interactif : vous le lancez et répondez à ses questions. Il rassemble toutes les photos dans un seul dossier, ou dans des dossiers par mois avec l'option --divide-to-dates, et règle la date de dernière modification du fichier. Réécrire les données JSON dans l'EXIF figure encore sur sa liste de choses à faire ; son README fournit donc une commande exiftool supplémentaire qui copie la date du fichier dans les dates EXIF des photos qui n'en ont pas. Lancez cette commande avant de toucher à nouveau aux fichiers. Notez que gpth déplace les fichiers par défaut : gardez donc vos zips d'origine (gpth).
exiftool -overwrite_original -r -if 'not defined DateTimeOriginal' -P "-AllDates<FileModifyDate" "your/output/folder/ALL_PHOTOS/"
gphotos-takeout-repair : supprime les fichiers JSON et les doublons retouchés
Cet outil copie vos photos dans un nouveau dossier, conserve l'arborescence et règle la date de création de chaque fichier à partir de photoTakenTime dans le fichier JSON. Lorsqu'une copie -edited existe, il garde cette version (généralement la meilleure) et écarte l'original : la sortie ne contient donc ni fichiers JSON ni doublons retouchés (gphotos-takeout-repair). Installez-le avec npm install -g gphotos-takeout-repair, puis :
gphotos-takeout-repair --src ./unzipped-takeout-dir --dest ./output-dir
Si vous voulez la date dans l'image pour chaque photo, Porte l'écrit directement. Avec les trois autres, vérifiez ensuite la date EXIF, comme indiqué ci-dessous.
Vérifiez que les dates sont vraiment dans les photos
Ne vous fiez pas à la colonne « date de modification » de l'explorateur de fichiers. Vérifiez les métadonnées elles-mêmes.
- Sans logiciel supplémentaire : faites un clic droit sur une photo et choisissez Lire les informations sur Mac ou Propriétés sous Windows. Après une bonne fusion, vous devriez voir la bonne date de prise de vue, les coordonnées GPS si la photo en avait et le modèle d'appareil quand il est disponible (PixelUnion).
- Pour un dossier entier : ExifTool peut afficher la balise
DateTimeOriginalde chaque JPG d'un dossier. Cette ligne s'appuie sur un exemple de sa documentation (ExifTool) :
exiftool -DateTimeOriginal -S -s -ext jpg .
Une ligne vide ou une date de la semaine de votre export signifie que cette photo n'a pas été fusionnée. Regardez alors le dossier d'erreurs ou d'échecs de l'outil, et vérifiez si le fichier JSON correspondant venait d'un autre zip.
- Comparez les totaux. Le dossier de sortie et le dossier d'erreurs réunis devraient contenir à peu près autant de photos et de vidéos que le Takeout extrait, moins les doublons retouchés si votre outil les supprime.
Une alternative en un clic
Si vous ne voulez pas utiliser la ligne de commande, une application de bureau peut faire le même travail. PHOTOK est un produit de Pacix Labs. D'après sa page, il lit les fichiers .json que Google éparpille un peu partout et remet en place les vraies dates et les vrais lieux, puis range les photos dans des dossiers Année / Mois / Lieu et met de côté les doublons exacts. Il fonctionne sous Windows 10 et 11 et sur les Mac équipés d'une puce Apple, n'envoie rien en ligne et ne supprime jamais de fichiers. L'aperçu est gratuit et la version complète coûte 49 € en paiement unique (PHOTOK).
Quelle que soit la voie choisie, les outils gratuits ci-dessus ou une application, les mêmes règles s'appliquent : travaillez sur une copie, vérifiez un échantillon et gardez les zips.
Liste de contrôle
- Téléchargez tous les zips et gardez-en une copie sur un second disque.
- Extrayez tous les zips dans un même dossier parent, conservez les sous-dossiers et fusionnez les dossiers portant le même nom.
- Choisissez un outil et sachez quelle date il écrit : date EXIF, date du fichier ou les deux.
- Lancez-le sur une copie, vers un nouveau dossier de sortie.
- Vérifiez
DateTimeOriginalsur un échantillon de différentes années, et regardez dans le dossier d'erreurs. - Décidez quoi faire des copies
-edited. - Ne supprimez les fichiers JSON et les zips qu'après la vérification et une seconde sauvegarde.
Questions fréquentes
Pourquoi Google Takeout me donne-t-il des fichiers JSON avec mes photos ?
Google enregistre la date de prise de vue, le lieu, la description et les informations d'album qu'il connaît pour chaque photo dans un fichier .json séparé, à côté de la photo. Le fichier photo lui-même ne contient pas forcément les mêmes informations, par exemple si vous avez modifié la date dans Google Photos.
Puis-je supprimer les fichiers JSON ?
Seulement une fois que les dates et les lieux sont dans les photos et que vous avez vérifié un échantillon. Avant cela, le fichier JSON est le seul endroit où sont stockés la date et le lieu que Google connaît pour la photo.
Quelle date un outil de fusion corrige-t-il ?
Cela dépend de l'outil. Certains écrivent la date dans les métadonnées EXIF de la photo (DateTimeOriginal), qui voyagent avec le fichier. D'autres ne règlent que la date de modification ou de création du fichier, que certaines méthodes de copie réinitialisent. Lisez le README de l'outil avant de choisir.
Pourquoi certaines photos sont-elles encore fausses après la fusion ?
En général, la photo et son fichier JSON se trouvaient dans des zips différents et n'ont jamais été réunis, ou le fichier JSON porte un nom différent de celui de la photo. Extrayez tous les zips dans un seul dossier, relancez l'outil sur une nouvelle copie et regardez le dossier d'erreurs ou d'échecs de l'outil.
Dois-je garder les fichiers zip d'origine ?
Oui, jusqu'à ce que la bibliothèque fusionnée ait été vérifiée et que vous ayez une autre sauvegarde. Certains outils déplacent les fichiers au lieu de les copier, et les zips sont votre seul moyen de recommencer.
Sources
- Ente: Google Photos migration FAQ (split zips, wrong dates, duplicates)
- PixelUnion: how to export your Google Photos library without losing the metadata
- Illinois Tech: use Google Takeout to export Google Photos
- google-photos-exif (GitHub README)
- Porte: fixing and organizing a Google Takeout photos export (GitHub README)
- Google Photos Takeout Helper, gpth (GitHub README)
- gphotos-takeout-repair 1.4.2 (README)
- ExifTool documentation