Vídeos do Google Takeout com data errada: corrija MP4 e MOV

O Takeout dá a todos os vídeos o dia da exportação como data do arquivo, e alguns vídeos não têm nenhuma data interna. Solte os ZIPs do seu Takeout abaixo: cada vídeo recebe a data de captura do respectivo arquivo JSON no próprio cabeçalho e como data do arquivo. Nada é recodificado nem enviado.

Solte aqui todos os arquivos ZIP do seu Takeout

Todas as partes de uma vez — takeout-…-001.zip, -002.zip … O JSON de uma foto muitas vezes está em outra parte. Os arquivos não saem do seu computador.

Por que os vídeos do Takeout mostram a data errada

O que a ferramenta altera em um vídeo

OndeO quêQuando
Cabeçalho do vídeo (mvhd)data de criação e de modificação = a data de captura do JSON, em UTCquando a data gravada está vazia, é anterior a 1970 ou é igual ou posterior ao envio de um vídeo gravado antes — ou sempre, com Substituir datas… marcada
Cada cabeçalho de faixa e de mídia (tkhd, mdhd)a mesma data e horajunto com o cabeçalho do vídeo
Texto de data nos metadados (com.apple.quicktime.creationdate, ©day)o mesmo momento, no mesmo formato de textosó quando o vídeo já tem esse texto — nada é adicionado
Data do arquivo no ZIP corrigidoa data de capturasempre

Esses campos têm tamanho fixo, então são sobrescritos no próprio arquivo: o vídeo mantém exatamente o mesmo tamanho, nenhum box muda de lugar (assim os deslocamentos das amostras continuam válidos, esteja o índice antes ou depois dos dados de mídia) e os bytes de imagem e som são copiados sem alterações. Os testes automatizados decodificam vídeos criados com o ffmpeg antes e depois da alteração e comparam cada quadro.

Formatos: MP4, MOV, M4V, 3GP e 3G2, além dos arquivos .MP de fotos com movimento do Pixel. AVI, MKV, WebM e outros contêineres recebem apenas a data do arquivo.

Como corrigir as datas dos vídeos do Takeout

  1. Solte todas as partes ZIP do seu Takeout acima. Muitas vezes, um vídeo e o arquivo JSON dele estão em partes diferentes.
  2. Deixe Substituir datas e locais já gravados pela câmera desmarcada: um vídeo que já tem uma data de gravação plausível a mantém. Marque essa opção apenas se você corrigiu datas no Google Photos.
  3. Clique em Corrigir e salvar e extraia o ZIP corrigido. Para conferir um vídeo, veja Propriedades → Detalhes → Mídia criada no Windows ou execute ffprobe -show_entries format_tags=creation_time video.mp4.

Live Photos e fotos com movimento

Uma Live Photo sai do Takeout como um HEIC ou JPEG mais um MOV ou MP4 curto, sem arquivo JSON próprio. A ferramenta dá ao vídeo a data da foto (a menos que você desmarque essa opção) e trata o cabeçalho dele pelas mesmas regras.

Vídeos sem arquivo JSON

Nomes como VID_20190101_101010.mp4 ou PXL_20190809_203449253.mp4 (Pixel, UTC) indicam uma data. Ela define a data do arquivo e preenche um cabeçalho de vídeo vazio; um cabeçalho que já tem data nunca é substituído pela data do nome.

Vídeos grandes

Para um vídeo armazenado sem compactação no ZIP, apenas o cabeçalho é lido; assim, um vídeo de 10 GB exige a leitura de poucos kilobytes. Um vídeo armazenado compactado precisa ser descompactado na memória para ser editado; acima de 256 MB, ele recebe apenas a data do arquivo, e o relatório informa isso.

Perguntas frequentes

O vídeo é recodificado ou recompactado?

Não. Somente os campos de data nos cabeçalhos são sobrescritos. O arquivo mantém o tamanho, e a imagem e o som continuam sendo exatamente os mesmos bytes de antes.

Qual data o vídeo recebe?

O photoTakenTime do respectivo arquivo JSON — a data que o Google Photos mostra. Se o JSON tiver apenas a data de envio (creationTime), o vídeo recebe essa data como data do arquivo, e o cabeçalho não é alterado.

A ferramenta vai sobrescrever as datas que a minha câmera gravou?

Por padrão, não. Se um JPEG ou HEIC já tiver uma “data de captura” (DateTimeOriginal) ou uma posição de GPS, ela é mantida. Um vídeo mantém a data de gravação do cabeçalho quando ela é plausível; uma data de vídeo vazia, anterior a 1970 ou que seja apenas a hora de envio ou de processamento (igual ou posterior ao envio de um vídeo gravado antes) é substituída. Ative Substituir datas e locais já gravados pela câmera se você alterou datas no Google Photos e quer usar essas.

Quais apps leem a data dentro de um vídeo?

A data de criação do cabeçalho do vídeo é o lugar padrão: o ExifTool a mostra como CreateDate, o ffprobe como creation_time, o Explorador de Arquivos do Windows como Mídia criada, e o Immich a lê ao importar um vídeo. Apps que ordenam pela data do arquivo usam a data do arquivo, que o ZIP corrigido também restaura.

Em qual fuso horário ficam as datas?

O Google armazena o momento em que a foto foi tirada em UTC. A ferramenta converte esse horário para o fuso que você escolher — por padrão, o do seu computador — e também grava a diferença em relação ao UTC (OffsetTimeOriginal) para que os apps possam mostrar o momento exato. Os cabeçalhos de vídeo armazenam UTC por definição, então os vídeos recebem o momento exato e os apps o exibem no próprio fuso. Fotos tiradas em viagem vão mostrar o horário no fuso que você escolheu, não o horário local da viagem.

Minhas fotos são enviadas?

Não. Os arquivos ZIP são lidos pelo navegador no seu próprio computador, e o arquivo corrigido também é gravado nele. Nada é enviado a um servidor — você pode se desconectar da internet depois que a página carregar, e ela continua funcionando.