Todo lo que debes saber sobre ExifTool, la herramienta para obtener metadatos de archivos
¿Sabías que cuando exportas un nuevo video, creas una nueva diapositivas o cuando tomas una foto, estás incrustando información privada en los archivos? Si no es así, te sorprenderá cuando te expliquemos cómo utilizar una herramienta de línea de comandos llamada exiftool. Exiftool te permite descubrir esta información oculta.
¿Qué son los metadatos y las etiquetas?
Antes de que puedas comprender cómo usar exiftool, debes comprender los metadatos. Exiftool tiene que ver con los metadatos.
Los metadatos son información incrustada en documentos y archivos multimedia que normalmente están ocultos a la vista. Los metadatos se almacenan en estos archivos como etiquetas de metadatos o simplemente como etiquetas. Las etiquetas son extremadamente importantes de entender, ya que casi todo en exiftool se relaciona con las etiquetas de metadatos de alguna manera.
Las etiquetas son pares clave-valor incrustados en archivos que almacenan información sobre ese archivo. Por ejemplo, quizás tomes una foto con tu teléfono. Cuando lo hagas, tu teléfono puede almacenar la imagen e incrustar una etiqueta de metadatos en la imagen llamada Flash. La etiqueta Flash puede tener un valor de fecha que indique cuándo se tomó la fotografía.
Este ejemplo de etiqueta Flash tiene un conjunto definido de valores que puede tener; 27 para ser exactos. Tener este conjunto estándar de valores para etiquetas permite a los usuarios de exiftool saber qué valores están disponibles para etiquetas específicas.
¿Qué es ExifTool?
ExifTool es una utilidad de línea de comandos, técnicamente una biblioteca de Perl escrita por Phil Harvey lanzada por primera vez en 2003. Desde entonces, exiftool se ha convertido en la mejor herramienta para trabajar con metadatos en la línea de comandos. Esto debido a la gran variedad de formatos y tipos de archivos de metadatos que soporta.
ExifTool es una herramienta con una enorme variedad de características capaz de trabajar con más de 23,000 etiquetas de más de 130 grupos diferentes . ¡Incluso puedes definir etiquetas personalizadas también!
Sin embargo, ExifTool hace más que solo leer etiquetas. También puedes escribir tu propia lógica y especificar diferentes condiciones en bibliotecas completas de imágenes sin tener que usar ningún tipo de script de shell. ExifTool está diseñado para que un principiante pueda consultar y transformar metadatos sin tener que ser un desarrollador de software.
ExifTool también es de código abierto. Si deseas contribuir al proyecto, puedes encontrar ExifTool en GitHub con instrucciones sobre cómo compilarlo y comenzar a usarlo.
Si estás atascado en un problema específico mientras lo usas, también puedes encontrar un foro de usuarios activos donde el propio Phil Harvey responde preguntas regularmente. El foro de usuarios es un gran recurso para descubrir cómo solucionar problemas de exiftool o comprender algunas de sus configuraciones avanzadas que pueden no encajar en esta guía.
Instalación
Para poder instalar y usar esta útil herramienta debemos seguir los siguientes pasos:
1. Clonar el repositorio git en tu sistema.
git clone https://github.com/exiftool/exiftool.git
2. Probar la herramienta con un archivo de prueba presente en el repositorio
cd exiftool ./exiftool t/images/ExifTool.jpg
Alternativamente, si utilizas la distribución de Ubuntu puedes usar el siguiente comando:
sudo apt install libimage-exiftool-perl
O simplemente usar el siguiente comando, capturará automáticamente el comando anterior.
sudo apt install exiftool
También puedes hacerlo directamente desde la fuente; debes usar los siguientes comandos. Esto funcionará para cualquier distribución de Linux, incluido CentOS.
wget https://sourceforge.net/projects/exiftool/files/Image-ExifTool-12.16.tar.gz tar xvf Image-ExifTool-12.16.tar.gz cd Image-ExifTool-12.16/ ./exiftool t/images/ExifTool.jpg
Para instalarlo globalmente, debes instalar el archivo.
Nota: como se ejecuta en Perl, debes tener Perl instalado en tu distribución de Linux
perl Makefile.PL make make test make install
Ahora puedes ejecutar ExifTool en cualquier lugar de tu terminal escribiendo ExifTool.
Uso
Lectura de metadatos:
1. Para extraer la lista completa de metadatos del archivo, debes usar el siguiente comando:
exiftool <nombre_archivo>
2. Para extraer los identificadores junto con las etiquetas Exif en su formato hexadecimal, tienes que ejecutar el comando anterior con el indicador -H.
exiftool -H <nombre_archivo>
3. ExifTool tiene una lista de las etiquetas Exif más comunes para cada archivo. Estas se pueden ver con el siguiente indicador.
exiftool --common <nombre_archivo>
4. Con ExifTool también podemos extraer la imagen de vista previa o la miniatura de un archivo de imagen.
exiftool -PreviewImage [filename.jpg] > [Output.jpg] exiftool -ThumbnailImage [filename.jpg] > [Output.jpg]
Ejemplo:
exiftool -b -PreviewImage CSM30803.CR2 > abc.jpg
El indicador -b permite extraer información binaria y almacenar el resultado en el archivo abc.jpg
exiftool -b -ThumbnailImage CSM30803.CR2 > thumb.jpg
5. También podemos generar información extendida con modo detallado. Esto nos mostrará los datos completos sobre el proceso que está realizando.
exiftool -v <nombre_archivo>
Extraer coordenadas GPS
Por si no lo sabes, las fotografías que capturamos usando nuestros dispositivos móviles o cámaras tienen coordenadas GPS incrustadas como metadatos en los archivos de imagen. Para obtener esto, sólo tenemos que ejecutar el siguiente comando:
exiftool <nombre_archivo> | grep GPS
Posteriormente, sólo tenemos que copiar y pegar esta información completa de coordenadas en Google Maps y obtendremos la ubicación exacta de la cámara cuando tomó la foto.
Escribir metadatos:
Para editar cualquier metadato, podemos usar su etiqueta Exif correspondiente para realizar los cambios.
Nota: Solo podemos cambiar las etiquetas que no están protegidas contra escritura.
exiftool -<Exif Tag>= “Hackwise Alert” <nombre_archivo>
Eliminación de metadatos:
Si queremos borrar toda la información existente dentro de las metaetiquetas del archivo, podemos utilizar el siguiente comando. Este comando eliminará todos los metadatos del archivo dejando toda la información de etiqueta básica o protegida.
exiftool -all= <nombre_archivo>
Guardar metadatos:
Podemos guardar la salida de exiftool dentro de otro archivo (preferiblemente un archivo de texto) para almacenar la información para su uso posterior.
exiftool [nombre_archivo] > [meta-data.txt] cat <meta-data.txt>
Otros usos
1. Clasificación de archivos de imagen en carpetas por año y mes
Podemos combinar la información de los metadatos para resolver una variedad de tareas. Supongamos que tenemos muchas imágenes y queremos clasificarlas en nuevas carpetas y organizarlas por año, mes o día, entonces podemos usar el siguiente comando:
El comando copia las imágenes antiguas en directorios según su año y mes.
exiftool -o '-Directory<CreateDate' -d ./newimage/%y/%y%m -r ./oldimage
2. Cambiar el nombre de los archivos de imagen según su fecha de creación
Supongamos que estás trabajando para una empresa de fotografía e hiciste clic en las fotos de muchos eventos, pero las fotos se mezclaron y ahora segregar manualmente cada imagen requerirá mucho esfuerzo desperdiciado.
Aquí aprovecharemos la herramienta exif para segregar/cambiar el nombre de todos los archivos sin procesar presentes dentro de la carpeta actual y su subcarpeta de acuerdo con la etiqueta exif de los metadatos Create Date
y Time
.
exiftool '-filename<CreateDate' -d %y%m%d-%H%M%S%%-03.c.%%e -r ./imagepath
Conclusión
ExifTool es una herramienta muy poderosa para manipular metadatos de archivos. Tiene una amplia gama de aplicaciones y con todos esos indicadores y opciones, las posibilidades son infinitas.