Como manipular metadados de fotos no Linux com o exiv2

Atualização 21/06/2011: o Xavi comentou abaixo que o Shotwell tem uma opção para editar os metadados em lote. Fica a dica para quem prefere a interface gráfica. Para mais informações http://yorba.org/shotwell/help/edit-time-date.html

Algumas vezes quando viajo mais de uma pessoa leva câmera fotográfica. Quando volto, gosto de juntar todas essas fotos em um único diretório e renomear elas de acordo com a data de criação para poder vem as fotos em ordem independente da câmera. Para fazer isso uso a ferramenta para renomear em lote do software digiKam. Para fazer isso, usava o digiKam mas não encontrei essa opção na nova versão que vem com o Ubuntu 9.10. Utilizei então o Krename.

Porém, algumas vezes a data e o horário de uma das câmeras não está certo e, por tanto, o metadado referente a data de criação das fotos está errado. Para poder renomear as fotos levando em conta a data de criação é necessário então primeiro corrigir o metadado. Para isso utilizo o exiv2, uma ferramenta de linha de comando para linux para editar metadados de fotos.

Para instalar o exiv2 no Ubuntu basta rodar o seguinte comando:

sudo aptitude install exiv2

Para ver os metadados de uma foto basta passar o nome do arquivo como primeiro parâmetro para o software (onde foto.jpg deve ser trocado pelo nome do arquivo):

exiv2 foto.jpg

Também é possível inserir, deletar, modificar ou renomear metadados. Informações sobre como utilizar esses recursos podem ser obtidas na man page do programa:

man exiv2

Existe ainda o recurso de ajustar a data e horário de criação de uma ou mais fotos passando um número de horas, ou dias, ou meses (etc). Com isso basta descobrir em quanto a data da câmera que tirou as fotos estava errada (comparando por exemplo os metadados de duas fotos tiradas com câmeras diferentes mais ou menos no mesmo horário) e utilizar o recurso de ajustar data e horário do exiv2.

A opção para ajustar é a ad e ela depende de pelo menos mais um parâmetro que pode ser (tradução livre da man page):

  • -a tempo – Ajustar tempo no formato [-]HH[:MM[:SS]]. Essa opção só pode ser usada com a ação de ajustar (ad). Exemplos: 1 adiciona uma hora, 1:01 adiciona uma hora e um minuto, -0:00:30 subtrai trinta segundos.
  • -Y anos – Ajuste de tempo com base num número positivo ou negativo de anos.
  • -O meses – Ajuste de tempo com base num número positivo ou negativo de meses.
  • -D dias – Ajuste de tempo com base num número positivo ou negativo de dias.

Por exemplo, para arrumar em uma hora e meia o horário de todas as fotos da extensão JPG que estão em um determinado diretório:

exiv2 ad -a 1:30 *.jpg

Ou então para subtrair duas horas, quarenta minutos, quinze dias e dois meses:

exiv2 ad -a -2:40 -D 15 -O 2 *.jpg

Ps: alguém conhece alguma interface gráfica para Linux que permite fazer esse tipo de manipulação de fotos?