Takeout JSON
ID

Tanggal foto Google Takeout salah? Ini penyebab dan solusinya

Mengapa semua foto dari ekspor Google Takeout menunjukkan tanggal unduhan, di mana tanggal aslinya tersimpan, dan cara mengembalikannya ke foto.

Anda mengunduh koleksi Google Foto, mengekstraknya, lalu membuka foldernya. Foto sepuluh tahun, dan semuanya tertulis diambil Selasa lalu. Saat diurutkan menurut tanggal, foto liburan ke pantai tahun 2012 berada di samping tangkapan layar kemarin.

Tidak ada yang hilang. Tanggalnya masih ada, hanya tidak di tempat yang dicari komputer Anda.

Ke mana tanggalnya pergi

Sebuah foto bisa menyimpan tanggalnya di tiga tempat. Kamera menulis satu tanggal di dalam file itu sendiri, di blok EXIF, sebagai "DateTimeOriginal". Sistem operasi menyimpan dua tanggal lagi di luar file: tanggal dibuat dan tanggal diubah. Finder, Explorer, dan kebanyakan aplikasi galeri membaca EXIF lebih dulu, lalu memakai tanggal file jika EXIF tidak ada.

Takeout merusak ini dengan dua cara. Pertama, saat Google memasukkan file Anda ke zip, tanggal file menjadi waktu zip itu dibuat, atau waktu Anda mengekstraknya. Ini saja tidak masalah jika EXIF-nya utuh.

Kedua, untuk banyak foto, tanggal EXIF tidak ada atau salah. Tangkapan layar tidak pernah punya. WhatsApp dan aplikasi pesan lain membuang metadata saat mengompres foto. Hasil pindai memakai tanggal pemindaian, bukan hari foto cetaknya dibuat. Dan jika Anda pernah mengoreksi tanggal di Google Foto, koreksi itu tersimpan di database Google, bukan di file. Google menaruh informasi yang benar di file .json terpisah di samping setiap foto, bukan menulisnya kembali ke dalam foto.

Komputer Anda sama sekali mengabaikan file .json itu. Jadi yang ditampilkan adalah satu-satunya tanggal yang bisa ditemukannya: tanggal unduhan.

Periksa seberapa parah

Sebelum memperbaiki apa pun, cari tahu berapa file yang benar-benar perlu diperbaiki. Foto langsung dari kamera ponsel biasanya masih punya tanggal EXIF yang benar. Jika sebagian besar foto Anda seperti itu, mungkin hanya sebagian yang perlu diperbaiki.

Jika exiftool sudah terpasang, perintah ini menampilkan setiap file yang tidak punya tanggal EXIF:

exiftool -r -if 'not $DateTimeOriginal' -filename "Takeout/Google Photos"

Pada satu bagian Takeout sungguhan berisi 991 foto yang kami ukur, sidecar adalah satu-satunya sumber tanggal yang benar untuk kira-kira satu dari lima foto. Campuran di koleksi Anda akan berbeda. Koleksi yang penuh tangkapan layar, foto chat, dan hasil pindai lama jauh lebih bergantung pada sidecar.

Buka sebuah sidecar dan lihat isinya

Setiap foto punya file pasangan seperti IMG_2034.JPG.supplemental-metadata.json (ekspor lama memakai IMG_2034.JPG.json). Buka dengan editor teks apa pun. Bagian yang penting terlihat seperti ini:

"photoTakenTime": {
  "timestamp": "1563102330",
  "formatted": "Jul 14, 2019, 11:05:30 AM UTC"
}

Timestamp itu adalah tanggal aslinya, dalam detik sejak 1970, dalam UTC. Ada juga creationTime, yaitu waktu file diunggah ke Google. Jika Anda ingin tanggal pengambilan foto, pakailah photoTakenTime. Isi file selengkapnya kami bahas di apa itu file JSON di Google Takeout.

Memperbaiki secara manual

Untuk beberapa foto saja, atur tanggalnya sendiri. Di Mac, buka foto di Preview atau Photos lalu sesuaikan tanggalnya. Di Windows, klik kanan file, pilih Properties, lalu Details, dan ubah "Date taken". Lakukan ini untuk lima puluh foto, dan Anda akan mencari cara yang lebih baik.

Untuk seluruh koleksi, alat yang biasa dipakai orang adalah exiftool. Satu perintah menyalin timestamp dari setiap sidecar ke dalam foto dan ke tanggal file:

exiftool -r -d %s -tagsfromfile "%d/%F.supplemental-metadata.json" \
  "-DateTimeOriginal<PhotoTakenTimeTimestamp" \
  "-FileCreateDate<PhotoTakenTimeTimestamp" \
  "-FileModifyDate<PhotoTakenTimeTimestamp" \
  -ext jpg -ext jpeg -overwrite_original "Takeout/Google Photos"

Cara ini berhasil, tetapi ada jebakannya. Google memotong nama sidecar yang panjang di 46 karakter, jadi pola di atas melewatkan sebagian. Duplikat mendapat (1) di posisi yang berbeda pada nama sidecar dibandingkan pada nama foto. Video memerlukan tag yang berbeda. HEIC dan PNG perlu dijalankan terpisah. Semuanya kami bahas di panduan exiftool. Ada juga skrip komunitas gratis seperti GooglePhotosTakeoutHelper yang menangani keanehan nama ini untuk Anda, jika Anda nyaman memakai terminal.

Aplikasinya

Jika Anda tidak ingin menghabiskan satu malam di command line, Takeout JSON Metadata Fixer melakukannya sebagai aplikasi desktop di macOS, Windows, dan Linux.

Arahkan aplikasi ke file zip Takeout atau ke folder yang sudah diekstrak. Aplikasi mencocokkan setiap foto dengan sidecar-nya, termasuk nama supplemental-metadata gaya 2024, nama yang terpotong, dan duplikat (1). Lalu aplikasi menulis photoTakenTime ke EXIF foto dan menyamakan tanggal dibuat dan tanggal diubah pada file. Foto tanpa sidecar tetap memakai tanggal EXIF jika ada, dan memakai tanggal file jika tidak, jadi tidak ada foto yang keluar tanpa tanggal.

Video juga mendapat tanggalnya, ditulis ke dalam MP4 atau MOV di tempat yang dicari pemutar video. Koordinat GPS dikembalikan ke foto jika sidecar berisi koordinat yang nyata. Anda juga bisa membuat aplikasi mengganti nama file sesuai tanggal asli dan menyusunnya ke folder tahun dan bulan, tetapi itu opsional. Jika Anda hanya ingin tanggalnya diperbaiki, pilih opsi untuk mempertahankan nama file dan folder Anda.

Ada uji coba (dry run) yang menunjukkan apa yang akan berubah tanpa menulis apa pun. 1000 foto pertama gratis, dan pembelian sekali seharga US$19,99 menghapus batasnya. Semuanya berjalan di komputer Anda sendiri; foto Anda tidak pernah diunggah.

Setelah tanggalnya ada di dalam file, tanggal itu tetap benar ke mana pun foto dipindahkan berikutnya: Apple Photos, NAS, Immich, flashdisk, atau ponsel baru.

Pertanyaan yang sering diajukan

Apakah tanggalnya akan berada di zona waktu yang benar?

Sidecar menyimpan waktu yang persis dalam UTC. Alat mengubahnya ke waktu setempat komputer Anda saat menulis EXIF, yang secara bawaan tidak menyimpan zona waktu. Foto yang diambil pukul 11.05 di Paris akan tertulis 11.05 jika komputer Anda diatur ke waktu Paris, dan 05.05 jika diatur ke New York. Atur komputer Anda ke zona tempat sebagian besar foto diambil sebelum memperbaikinya, atau terima selisih beberapa jam pada foto liburan.

Apakah ada yang hilang saat menulis ke EXIF?

Menulis tag tanggal hanya mengubah blok metadata. Piksel gambar tidak disentuh. Simpan file zip asli sampai Anda puas dengan hasilnya, yang memang kebiasaan yang baik.

Mengapa hanya sebagian foto yang salah?

Karena hanya sebagian foto yang sejak awal tidak punya tanggal EXIF. Foto kamera biasanya punya. Tangkapan layar, gambar chat, hasil pindai, dan foto apa pun yang tanggalnya pernah Anda ubah di Google Foto bergantung pada sidecar.

Bolehkah saya menghapus file JSON setelah tanggalnya diperbaiki?

Boleh. Setelah tanggal dan GPS ditulis ke dalam foto, tugas sidecar sudah selesai. Simpan dulu sampai Anda sudah memeriksa beberapa foto di koleksi baru, lalu hapus.