15 votes

Exporter depuis l'application Mac Photos tout en conservant les données créées par la date ?

J'ai des photos prises en 2012 et lorsque je les exporte en tant qu'originaux dans un dossier, elles ont une date de création de juillet 2016. L'exécution d'un détaillant EXIF a montré que les images ont été prises en 2012, alors pourquoi Photos les exporte et y ajoute une autre date ?

J'ai essayé d'exporter l'ensemble de mon album de 2009 à 2016 et j'ai remarqué que certaines photos prises dans les années antérieures à 2016 apparaissaient en juillet ou dans d'autres mois de cette année également.

J'apprécierais vraiment que quelqu'un puisse m'éclairer sur cette question.

11voto

tubedogg Points 14839

Notez que, pour que vos fichiers aient une date de création qui corresponde à la date EXIF "photo prise", vous devez utiliser l'option Exporter des originaux non modifiés. Les images modifiées peuvent avoir été éditées dans Photos, ce qui entraîne la création d'un nouveau fichier, et l'utilisation de l'exportation normale exportera ce fichier modifié avec la date de création ultérieure.

Il existe quelques options dans ce billet sur Photography SE pour modifier la date de création d'un fichier afin qu'elle corresponde aux données EXIF. Vous ne devez jamais essayer de les utiliser sur des fichiers dans le cadre de la politique de confidentialité de la Commission européenne. .photoslibrary paquet ! Exportez d'abord vos fichiers.

ExifTool est une application en ligne de commande très puissante pour lire et écrire les données EXIF dans une variété de fichiers, y compris les vidéos. Cependant, sur les Macs, elle ne peut pas écrire la date de création du fichier. Il existe un moyen de contourner ce problème en utilisant un peu de script bash.

Voici une commande qui fonctionne à la fois pour les fichiers photo et vidéo :

for file in *; do SetFile -d "$(exiftool -p '$CreateDate' -d '%m/%d/%Y %H:%M:%S' "$file")" "$file"; done

Essentiellement, une boucle est exécutée sur les fichiers du répertoire courant. exiftool est utilisé pour lire l'étiquette de date de création EXIF, et SetFile est utilisée pour écrire la date de création du fichier. La façon dont elle est écrite, elle affectera tous dans le répertoire actuel, je vous suggère donc de déplacer tous les fichiers que vous voulez modifier dans un répertoire sans rien d'autre, et d'exécuter la commande depuis ce répertoire.

3voto

SenorPuerco Points 457

La réponse acceptée suppose que l'on sache utiliser la ligne de commande. Si ce n'est pas le cas, voici les étapes préliminaires supposées :

1) Installez un gestionnaire de paquets, si vous n'en avez pas déjà installé un. (Et utilisez-le ensuite pour toujours pour installer de nouveaux logiciels :))

(Recommandé :)

Pour Mac : utilisez Homebrew - https://brew.sh/

Pour Windows : utilisez Chocolatey - https://chocolatey.org/

2) En utilisant votre gestionnaire de paquets (^^ nouvellement installé), installez exiftool qui est un logiciel libre permettant de visualiser et de travailler avec les métadonnées des médias :

Sur Mac :

brew install exiftool

Sous Windows :

choco install exiftool

3) Naviguez jusqu'au répertoire contenant vos fichiers image/film en utilisant la commande "changer de répertoire" : cd - (Pour en savoir plus sur l'utilisation de la ligne de commande, cliquez ici : https://www.digitalcitizen.life/command-prompt-how-use-basic-commands )

cd {insert-name-of-your-file-directory-here}

4) La dernière commande est basée sur la (les) réponse(s) acceptée(s) ci-dessus, mais j'ai trouvé que je devais la changer en CreationDate pour qu'elle reflète réellement la date de capture des photos/vidéos d'origine. J'ai également choisi d'utiliser touch :

Version en une phrase (à copier et coller) :

for file in *; do touch -t "$(exiftool -p '$CreationDate' -d '%Y%m%d%H%M' "$file")" "$file"; done

(Même code, mais formaté pour la lisibilité au cas où vous voudriez comprendre ce qui se passe) :

for file in *; do   \
    touch -t "$(exiftool -p '$CreationDate' -d '%Y%m%d%H%M' "$file")" "$file";   \
done

3voto

Comme dans le cas des photos icloud d'Apple, lorsque vous avez toutes les informations dans les détails EXIF, comme vous le savez déjà.

Pour restaurer toutes les informations relatives aux dates, j'ai suivi les étapes suivantes

  1. Télécharger exiftool

  2. Exécutez la commande suivante pour fixer les dates dans tous les fichiers du dossier (de manière récursive).

    exiftool -r '-FileModifyDate<DateTimeOriginal' "hereYourDirName"
  3. Exécutez la commande suivante pour fixer les dates des fichiers MOV dans le dossier (récursivement)

    exiftool -r '-FileModifyDate<CreationDate' "hereYourDirName/*.mov"
  4. Si vous avez le Pas d'étiquettes inscriptibles... cela signifie probablement que vous n'avez pas la permission, donc vous pouvez fixer le propriétaire et la permission avec ces commandes

    sudo chown -R yourSessionUser directoryName
    sudo chmod -R 775 directoryName

Cela rétablira toutes les dates. J'espère que ces informations vous seront utiles



Maintenant, quelques autres commandes d'aide

Pour vérifier si votre fichier contient toutes les informations EXIF, vous pouvez le vérifier avec cette commande. Utile pour être sûr que vous avez la DateTimeOriginal avec la bonne date. .

exiftool -a -s -G directoryName

Si vous souhaitez mettre à jour l'EXIF uniquement sur certaines extensions, par exemple uniquement les photos, vous pouvez utiliser cette commande. Utile si vous avez un tas de fichiers mov ou des fichiers sans l'information EXIF, comme ça vous les sauterez, vous n'aurez pas d'avertissement et l'exiftool finira plus vite.

  1. Générez le fichier appelé filesToUpdate.txt avec la liste des fichiers que vous voulez mettre à jour.

    find hereTheAbsolutePathToTheFolder/* -type f | grep -E
    '\.(jpg|jpeg|png|heic|JPG|JPEG|PNG|HEIC)$' > filesToUpdate.txt

La liste de jpg|jpeg|png|heic|JPG|JPEG|PNG|HEIC, est la liste des extensions que vous souhaitez prendre en compte.

  1. Maintenant la commande pour exécuter tous ces fichiers est comme ceci :

    exiftool '-FileModifyDate<DateTimeOriginal' -@ filesToUpdate.txt

Cette commande permet de vérifier quels fichiers d'extension vous avez dans un dossier. Utile pour vérifier quelles extensions vous voulez inclure dans la commande précédente.

find hereThePathToTheFolderThat/* -type f | 
perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u

2voto

user Points 21

Au cas où vous souhaiteriez utiliser touch au lieu de SetFile :

for file in *; do touch -mt "$(exiftool -p '$CreateDate' -d '%Y%m%d%H%M.%S' "$file")" "$file"; done

1voto

Riccardo Points 11

Je viens de tomber sur cet article alors que j'essayais d'exporter tous les éléments d'une bibliothèque Photos pour les réimporter dans une autre afin de consolider tout ce que j'ai dans une seule bibliothèque. En utilisant les options par défaut d'exportation sans modification de l'original, je me suis rendu compte que certains éléments perdent la "date de prise" et que, lorsqu'ils sont réimportés, ils apparaissent comme s'ils avaient été créés aujourd'hui, ce qui a pour conséquence de les désorganiser. Je me suis rendu compte que la plupart de ces éléments sont des films et des trucs acquis à partir de Whatsapp. Il semble que Photos possède certaines métadonnées sur ces éléments qui ne sont pas exportées dans les métadonnées EXIF. J'ai résolu tout cela en utilisant ce fantastique outil Python :

Il dispose de nombreux paramètres pour configurer correctement l'exportation. Le plus utile est "--exiftool" qui stocke les informations exif dans les éléments exportés.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X