Estoy haciendo un script para que Photos actualice las fechas de las fotos en un álbum, para que coincidan con el orden de las fotos en el álbum. Se trata de escaneos de fotos antiguas, por lo que las fechas de modificación no coinciden con la fecha en que se tomaron las fotos.
Casi funciona, pero algunas fotos tienen una fecha una hora antes. Eso parece un problema de zona horaria, excepto que las fotos no tienen información de ubicación, así que no puedo saber de dónde vendría.
tell application "Photos"
set currentAlbum to album named "Album name"
-- Start with a date slightly in the past, based on the album size.
set currentAlbumCount to (count of media items in currentAlbum)
set photoDate to (current date) - currentAlbumCount
repeat with currentItem in media items in currentAlbum
set photoDate to photoDate + 1
set date of currentItem to photoDate
end repeat
end tell
Después de ejecutar esto, el EXIF de las fotos tiene la hora/fecha de algunas una hora antes que otras - por ejemplo, una a las 4:16:13 pm, la siguiente a las 3:16:14, y luego a las 4:16:15, sin razón aparente de por qué algunas están fuera de una hora.
Lo intento porque cuando exporto y uso las fotos en otros sitios (como Google Fotos) se ordenan por fecha, y quiero conservar el orden de clasificación.
0 votos
Intente registrar el valor de
photoDate
en cada iteración.0 votos
Si añado
log photoDate
los valores son exactamente lo que yo esperaría: se adelantan un segundo por cada nuevo valor de fecha, sin desplazamientos de una hora.0 votos
Bien (más o menos). Sugiere que su script es bueno, y que EXIF es una especificación de mierda. Hice una búsqueda rápida en línea sobre esto (términos de búsqueda como
"exif time zone"
,"exif incorrect date time"
,"exif local time utc"
y hay un montón de informes sobre los casos en los que EXIF parece inconsistente en cuanto a la fuente de información de fecha/hora para varios campos. Parece especialmente relevante cuando las fotos han sido escaneadas, y por lo tanto no tienen una cámara de suministro de información de fecha / hora. Continúa...0 votos
...Continuación Es posible que tenga que editar los metadatos EXIF directamente para garantizar resultados fiables y coherentes con todo lo demás. Creo que
Image Events
puede hacer esto para algunos elementos de metadatos, así que compruebe su diccionario AppleScript.exiftool
es una herramienta de línea de comandos. Las funciones de AppleScriptObjCNSBitmapImageRep
tienen una propiedad llamadaNSImageEXIFData
que puede utilizarse para obtener y establecer elementos de metadatos (para los JPEG, al menos).