Exiv2 es un software que nos permite manipular los metadatos de imágenes (Exif, IPTC, XMP), incluyendo otras funciones adicionales como la importación/exportación a partir de un archivo de texto, el renombrado masivo de imágenes, soporte de etiquetado MakerNote o la lectura de metadatos en formatos de vídeo.
Exiv2 se ejecuta en la linea de comandos por lo que nos recuerda bastante a exiftool, posiblemente la herramienta más conocida para este tipo de labores.
La principal diferencia entre ambos es que Exiv2 está escrito en C++ y exiftool en Perl, lo que hace algo más rápido al primero. Por contra exiftool es más completo y ofrece soporte a mayor número de formatos.
Examinar el conjunto de metadatos
Parámetros como el tipo de cámara, la localización geográfica si es una cámara dotada de GPS, software de edición utilizado, hora y fecha de la foto, etiquetas, comentarios, zoom, velocidad ISO, distancia focal, resolución exif, balance de blancos, miniatura, apertura, modo de exposición…son algunas de las cosas que podemos ver ejecutando un simple:
exiv2 nombre_archivo.jpg
Si queremos una salida de datos más completa, con las propiedades exif específicas:
exiv2 -pt archivo.jpg
Modificar la fecha y hora
Puede ser que nos apetezca cambiar la fecha original de la imagen. Para ello vamos a buscar primero ese valor, que nos marca el momento de la captura:
[jose@replicante Escritorio]$ exiv2 -g Date -pt archivo.jpg Exif.Image.DateTime Ascii 20 2014:04:15 07:50:08 Exif.Photo.DateTimeOriginal Ascii 20 2014:04:15 07:50:08 Exif.Photo.DateTimeDigitized Ascii 20 2014:04:15 07:50:08
Y a continuación lo cambiamos:
[jose@replicante Escritorio]$ exiv2 -M'set Exif.Photo.DateTimeOriginal 2019:11:01 00:00:00' archivo.jpg [sourcecode language="bash"][jose@replicante Escritorio]$ exiv2 -g Date -pt archivo.jpg Exif.Image.DateTime Ascii 20 2014:04:15 07:50:08 Exif.Photo.DateTimeOriginal Ascii 20 2019:11:01 00:00:00 Exif.Photo.DateTimeDigitized Ascii 20 2014:04:15 07:50:08
Nada nos impide cambiar los otros dos valores exif relativos a la fecha/hora, en este caso vamos a hacer los dos del tirón, no hay sin necesidad de ir uno a uno:
[jose@replicante Escritorio]$ exiv2 -M"set Exif.Photo.DateTimeDigitized 2019:11:01 00:00:00" -M"set Exif.Image.DateTime 2019:11:01 00:00:00" archivo.jpg [jose@replicante Escritorio]$ exiv2 -g Date -pt archivo.jpg Exif.Image.DateTime Ascii 20 2019:11:01 00:00:00 Exif.Photo.DateTimeOriginal Ascii 20 2019:11:01 00:00:00 Exif.Photo.DateTimeDigitized Ascii 20 2019:11:01 00:00:00
Borrando los metadatos
Quizá lo único que deseemos sea borrar todos los metadatos de un archivo determinado. Lo podemos hacer con:
exiv2 rm archivo.jpg
Renombrado de archivos
Además de poder manejar los metadatos, exiv2 nos va a servir en un momento dado, para renombrar los archivos que tengamos en un determinado directorio.
Si se trata de archivos jpg tiramos de comodín (*) para ejecutar:
exiv2 rename *.jpg
y a continuación elegir entre las habituales opciones de sobreescribir, renombrar o saltar.
RTFM
El programa incluye muchas más funciones. Un vistazo a la ayuda del programa;
exiv2 --help
y a su excelente manual:
man exiv2
nos va a ser de gran ayuda, si queremos sacarle el máximo partido.
Exiv2 es software libre y está disponible en los repositorios de las principales distribuciones GNU/Linux.
habra script que lo borre automaticamente?
Interesante, voy a revisar la ayuda teniendo en cuenta que se puede haber un renombrado masivo, tal vez también se pueda hacer un… «exiv2 rm *.jpg» y borrar los metadatos de un directorio completo.
Gracias Tannhausser por la info.
…me respondo yo mismo, positivo un «exiv2 rm *.jpg» borra los metadatos de todo lo que termine en .jpg en el directorio que lo ejecutas u otro que le indiques y bien rápido que lo hace, muy util.
Saludos.
Acabo de probar con media docena de fotos (no había visto tu segundo comentario) y es como dices, le quita los metadatos a todos los archivos al instante.
Gracias por la sugerencia 🙂
Yo he usado siempre Exiftool para estos menesteres.