Takeout JSON

Fotos do WhatsApp com data errada: o que dá para corrigir

O WhatsApp apaga o EXIF de toda foto que envia. Que informação de data sobra, o que não tem como recuperar, e como definir uma data para uma pasta inteira.

Você salvou anos de fotos de família recebidas pelo WhatsApp, ou o celular fez backup da pasta do WhatsApp no Google Fotos e agora elas estão misturadas na sua biblioteca. Todas mostram a data errada, nenhuma tem localização, e os nomes são como IMG-20190714-WA0012.jpg.

O que o WhatsApp faz com uma foto

O WhatsApp recodifica toda foto que envia. Ele reduz a imagem, comprime de novo e joga fora o bloco de metadados. A data EXIF, o modelo da câmera, as coordenadas GPS: tudo some. Isso é de propósito. Economiza dados e impede que alguém vaze a própria localização mandando uma foto.

O arquivo que chega no celular de quem recebe é um JPEG novo sem DateTimeOriginal. A única data que ele tem é a data de modificação do próprio arquivo, que é o momento em que foi recebido, e a data no nome do arquivo, que o WhatsApp também define como o dia do recebimento.

Então uma foto tirada em 2015 e encaminhada para você em 2019 tem 2019 no nome e nenhuma outra data em lugar nenhum. O 2015 não está no arquivo. Não tem como recuperar do arquivo, porque nunca foi gravado nele.

O que dá para recuperar

A data de recebimento. IMG-20190714-WA0012.jpg diz 14 de julho de 2019. Não é quando a foto foi tirada, mas para uma foto que alguém mandou no mesmo dia em que tirou, que é a maioria, chega perto o suficiente. O exiftool consegue ler essa data do nome e gravar no EXIF:

exiftool "-DateTimeOriginal<${filename;s/IMG-(\d{4})(\d{2})(\d{2}).*/$1:$2:$3 12:00:00/}" -ext jpg .

Isso define a data EXIF como meio-dia do dia que está no nome. Depois disso, qualquer app de fotos coloca a foto no dia certo.

Se as fotos passaram pelo Google Fotos e voltaram pelo Takeout, o .json ao lado tem um photoTakenTime que o Google definiu como a hora do envio, que para o backup automático do WhatsApp é de novo o dia do recebimento. Não é perfeito, mas é consistente. Veja o que são os arquivos JSON do Google Takeout.

O que não dá para recuperar

A data original de captura, se quem mandou tirou a foto muito antes de enviar. A localização, sempre. A câmera, sempre. Se uma foto foi encaminhada por várias pessoas, a data do nome é a do último salto.

A única fonte da data verdadeira é o arquivo original de quem mandou. Se importa, peça o original, enviado como documento em vez de como foto. O WhatsApp não apaga metadados de arquivos enviados como documento.

Definindo uma data para uma pasta inteira

Muitas vezes as fotos são um conjunto: um casamento que alguém mandou, uma viagem que seus pais compartilharam, fotos antigas digitalizadas que um parente encaminhou. Você sabe mais ou menos quando foi o evento e quer que todas caiam no mês certo. A hora exata não importa.

Com o exiftool, para uma pasta:

exiftool -DateTimeOriginal="2015:06:20 14:00:00" -overwrite_original .

Cada JPEG da pasta recebe essa data. Acrescente -GPSLatitude e -GPSLongitude se também sabe onde foi.

Um cuidado: pastas de WhatsApp costumam ser misturadas. Fotos que você tirou e enviou ficam ao lado de fotos que você recebeu. Definir uma data para a pasta inteira só é certo quando a pasta é um evento só. Separe em pastas por evento primeiro.

Mantendo as fotos do WhatsApp fora da biblioteca principal

Muita gente não quer essas fotos na biblioteca de jeito nenhum. O celular salvou automaticamente cada meme e cada figurinha encaminhada, e o Google Fotos fez backup de tudo. Em uma exportação do Takeout elas são reconhecíveis: nomes começando com IMG- e com -WA no meio, e nenhuma câmera no EXIF.

Um modelo de pasta que mantém as suas pastas atuais, em vez de separar tudo por data, deixa a pasta do WhatsApp como uma coisa à parte, onde você decide depois. Mover essas fotos para uma pasta separada antes de organizar é o jeito mais simples de mantê-las longe.

Fazendo com o app

O Takeout JSON Metadata Fixer não consegue inventar uma data que o WhatsApp destruiu, e não finge que consegue. O que ele faz é deixar as duas opções honestas fáceis: usar a data que existe, ou definir uma data você mesmo.

Para uma pasta de fotos do WhatsApp, ele lê o JSON do Takeout se houver, depois o EXIF, depois a data do próprio arquivo. Fotos do WhatsApp não têm os dois primeiros, então recebem a data do arquivo, que na maioria dos celulares é a data de recebimento. Se essa data está errada, ou se os arquivos foram copiados de um lado para o outro e viraram hoje, use a data de pasta: escolha uma data e um lugar para todas as fotos da pasta, digitando o nome de uma cidade ou coordenadas. O app grava isso no EXIF, então a data e o lugar viajam com as fotos para o Fotos da Apple, o Immich ou qualquer outro destino.

Ele também arruma os nomes, então IMG-20190714-WA0012.jpg vira 2019-07-14-1200.jpg ou o modelo que você escolher, e consegue organizar em pastas Ano/Mês junto com o resto da biblioteca, ou manter separado se você preferir.

Offline, no Windows, no Linux e no Mac. Grátis para 1000 fotos, US$ 19,99 uma vez para ilimitado.

Perguntas frequentes

Algum programa consegue recuperar a data original de uma foto do WhatsApp?

Não. Os metadados foram removidos antes de o arquivo chegar até você. Não há nada no arquivo para ler. Ferramentas que dizem conseguir estão lendo o nome do arquivo ou a data do arquivo, que é a data de recebimento.

A data no nome do arquivo é confiável?

É a data em que a foto chegou no celular que a salvou. Para fotos enviadas no mesmo dia em que foram tiradas, está certa até o dia. Para fotos encaminhadas ou antigas que alguém desenterrou, está errada.

Enviar como documento mantém os metadados?

Sim. O WhatsApp só apaga metadados ao enviar como foto. Um JPEG enviado como documento chega byte a byte, com EXIF e GPS. Peça os originais desse jeito quando importar.

Devo definir uma data em fotos onde estou chutando?

Se a alternativa é a data de hoje, sim. Uma data chutada no ano certo coloca a foto perto das vizinhas. A data de hoje enterra a foto debaixo de todo o resto. Use o dia 1º do mês se só sabe o mês.