Pacix Labs

Fotoğraflar

Google Takeout JSON Dosyalarını Fotoğraflarla Birleştirme (Yanlış Tarihleri Düzeltin)

Google Takeout fotoğraflarınızın tarihlerini ayrı JSON dosyalarında tutar. Dört ücretsiz araç bunları fotoğraflara geri yazar: her biri neyi düzeltir, tam komutlar ve sonucu nasıl kontrol edersiniz.

· 6 dk okuma

Şu dillerde de mevcut: العربيةবাংলাDeutschespañolfrançaisગુજરાતીहिन्दीIndonesiaitaliano日本語ಕನ್ನಡ한국어EnglishमराठीpolskiportuguêsрусскийKiswahiliதமிழ்తెలుగుไทยукраїнськаاردوTiếng Việt中文

Google Fotoğraflar kitaplığınızı Google Takeout ile indirdiniz. Şimdi binlerce fotoğrafın yanında binlerce .json dosyası var ve fotoğraf görüntüleyiciniz 2019'dan bir fotoğrafın dün çekildiğini söylüyor. Bunu düzeltmek için her JSON dosyasını kendi fotoğrafıyla birleştirirsiniz. Bir araç çekim tarihini JSON dosyasından okur ve fotoğrafın içine yazar; böylece her uygulama yeniden doğru tarihi gösterir.

Bu rehber JSON dosyalarının neden var olduğunu, birleştirmenin neden bazen başarısız olduğunu ve dört ücretsiz aracın bu işi nasıl yaptığını anlatıyor. Her biri için tam komutu, her birinin hangi tarihi değiştirdiğini ve herhangi bir şeyi silmeden önce sonucu kontrol etmenin bir yolunu bulacaksınız.

Fotoğraflarınız neden JSON dosyalarıyla geliyor

Takeout her fotoğraf için size iki dosya verir: görüntünün kendisi, örneğin IMG_1234.jpg, ve orijinal tarihi, GPS koordinatlarını, açıklamayı ve ait olduğu albümleri içeren bir JSON dosyası. Bir dışa aktarma rehberi tipik ilk izlenimi şöyle anlatıyor: 2019'dan bir fotoğrafın tarihi "dün" görünüyordu, konumu ve albümü yoktu, oysa hiçbir şey kaybolmamıştı. Bilgiler JSON dosyasındaydı (PixelUnion). Illinois Tech de bir dışa aktarmada neden kitaplığınızdaki resimlerden daha fazla dosya bulunduğunu aynı şekilde açıklıyor (Illinois Tech).

Fotoğraf dosyası JSON dosyasıyla çelişebilir. google-photos-exif aracının yazarı, Google Fotoğraflar içinde bir tarihi değiştirirseniz görüntünün içindeki meta verinin güncellenmediğini fark etmiş: yeni tarih yalnızca JSON dosyasında bulunur. Bazı görüntülerin, çoğu zaman sizinle paylaşılanların, içinde hiç tarih yoktur (google-photos-exif). gphotos-takeout-repair README dosyası sorunun diğer yarısını gösteriyor: çıkarılmış bir dışa aktarmada fotoğraf, düzenlenmiş sürümü ve JSON dosyası, oluşturulma tarihi olarak hep Takeout dışa aktarma tarihini gösterir (gphotos-takeout-repair).

Yani yalnızca fotoğraf dosyasını okuyan bir uygulama ya hiç tarih görmez ya da dışa aktardığınız günü görür. Doğru tarih JSON dosyasındadır ve birleştirme onu yerine koyar.

Birleştirmeyi bozan üç şey

Her birleştirme aracı her fotoğraf için doğru JSON dosyasını bulmak zorundadır. Takeout'un üç özelliği bunu zorlaştırır.

  1. Bir fotoğraf ve JSON dosyası farklı zip dosyalarında olabilir. Ente'nin taşıma SSS sayfası, flower.jpeg bir zip'te ve flower.json başka bir zip'teyken ikisinin eşleştirilemediği örneğini veriyor (Ente). Porte README dosyası aynı durumu bilinen bir sınırlama olarak listeliyor: görüntüsünden farklı bir arşivde bulunan meta veri dosyalarını bulamıyor (Porte).
  2. JSON dosya adları tutarlı değil. IMG123.jpg için IMG123.jpg.json ya da yalnızca IMG123.json alabilirsiniz; bazı klasörlerde ise eşleşen görüntüsü olmayan JSON dosyaları bulunur (google-photos-exif).
  3. Düzenlenmiş fotoğraflar iki kez çıkar. Takeout orijinali ve düzenlenmiş kopyayı farklı hash değerlerine sahip ayrı dosyalar olarak dışa aktarır; bu yüzden hash karşılaştıran bir yinelenen dosya bulucu onları işaretlemez (Ente). Düzenlenmiş dosya -edited ekini taşır; örneğin IMG_0001-edited.jpg ile yanındaki IMG_0001.jpg (gphotos-takeout-repair).

İlk maddenin çözümü her araç için aynıdır: tüm zip dosyalarını indirin, ardından hepsini tek bir üst klasöre çıkarın ve alt klasörleri olduğu gibi bırakın (Ente). İki zip dosyasında aynı adlı bir klasör varsa, birini diğeriyle değiştirmek yerine klasörlerin içeriğini birleştirin (google-photos-exif).

İndirme için Illinois Tech'ten bir ipucu: Takeout penceresini önde tutun. Pencereyi simge durumuna küçültür ya da başka bir pencerede çalışırsanız, Google yeniden oturum açmanızı istediği için indirmeler 15 dakika sonra başarısız olur (Illinois Tech).

Dört ücretsiz araç ve her birinin düzelttiği tarih

Bir fotoğrafın iki tür tarihi vardır. EXIF tarihi (DateTimeOriginal) görüntünün içinde saklanır ve onunla birlikte her uygulamaya ya da hizmete gider. Dosya tarihi (değiştirilme ya da oluşturulma) dosya sistemine aittir. Kaybetmesi kolaydır: gpth README dosyası, bir Android telefonda dosyaları taşımanın bu tarihi genellikle sıfırladığı konusunda uyarıyor (gpth). Bir araç seçmeden önce ikisinden hangisini yazdığını kontrol edin.

Aşağıdaki her komutta ilk klasör çıkardığınız Takeout, ikincisi ise yeni ve boş bir çıktı klasörüdür.

Porte: tarihi ve konumu fotoğrafın içine yazar

Porte, ilgili JSON dosyasındaki zaman damgasını ve coğrafi konumu görüntüyü yeniden sıkıştırmadan görüntünün EXIF verisine kopyalar. Tarih bulamazsa dosya adını dener ve bulduğu en eski tarihi kullanır; böylece bir dosya değiştirilme tarihi çekim tarihi sanılmaz. Dosyaları yerinde değiştirmek yerine çıktı klasörüne kopyalar, başarısız dosyaları ayrı bir klasöre koyar ve bir günlük kaydeder. Albüm verilerini korumaz. Hazır programı projenin sürümler sayfasından indirebilirsiniz (Porte):

porte srcpath destpath

google-photos-exif: eksik EXIF tarihini doldurur

Bu Node.js aracı her JSON dosyasından photoTakenTime değerini okur. Dosyanın değiştirilme tarihini ayarlar ve DateTimeOriginal alanını yalnızca fotoğrafta henüz yoksa doldurur. İşleyemediği dosyalar bir hata klasörüne gider (google-photos-exif). PixelUnion yazarı aracı kullanmış ve tüm kitaplığı yaklaşık yirmi dakikada işlediğini bildiriyor (PixelUnion).

yarn start --inputDir ~/takeout --outputDir ~/output --errorDir ~/error

gpth: tek klasöre ya da aylara göre ayırır, sonra dosya tarihini ayarlar

Google Photos Takeout Helper etkileşimlidir: çalıştırırsınız ve sorularını yanıtlarsınız. Tüm fotoğrafları tek bir klasörde ya da --divide-to-dates seçeneğiyle aylara göre klasörlerde toplar ve dosyanın son değiştirilme tarihini ayarlar. JSON verilerini EXIF'e geri yazmak hâlâ yapılacaklar listesinde olduğundan, README dosyası EXIF tarihi olmayan fotoğraflar için dosya tarihini EXIF tarihlerine kopyalayan ek bir exiftool komutu veriyor. Dosyalara yeniden dokunmadan önce bu komutu çalıştırın. gpth aracının dosyaları varsayılan olarak taşıdığını unutmayın; bu yüzden orijinal zip dosyalarınızı saklayın (gpth).

exiftool -overwrite_original -r -if 'not defined DateTimeOriginal' -P "-AllDates<FileModifyDate" "your/output/folder/ALL_PHOTOS/"

gphotos-takeout-repair: JSON dosyalarını ve düzenlenmiş kopyaları kaldırır

Bu araç fotoğraflarınızı yeni bir klasöre kopyalar, klasör yapısını korur ve her dosyanın oluşturulma tarihini JSON dosyasındaki photoTakenTime değerinden ayarlar. Bir -edited kopyası varsa o sürümü (genellikle en iyisi) tutar ve orijinali dışarıda bırakır; böylece çıktıda ne JSON dosyası ne de düzenlenmiş yinelenen kopya kalır (gphotos-takeout-repair). npm install -g gphotos-takeout-repair ile kurun, ardından:

gphotos-takeout-repair --src ./unzipped-takeout-dir --dest ./output-dir

Her fotoğrafta tarihin görüntünün içinde olmasını istiyorsanız, Porte onu doğrudan yazar. Diğer üçüyle EXIF tarihini sonradan, aşağıda gösterildiği gibi kontrol edin.

Tarihlerin gerçekten fotoğrafların içinde olduğunu kontrol edin

Dosya tarayıcısındaki "değiştirilme tarihi" sütununa güvenmeyin. Meta verinin kendisini kontrol edin.

  1. Ek yazılım olmadan: bir fotoğrafa sağ tıklayın ve Mac'te Bilgi Al'ı, Windows'ta Özellikler'i seçin. İyi bir birleştirmeden sonra doğru çekim tarihini, fotoğrafta varsa GPS koordinatlarını ve mevcutsa kamera modelini görmelisiniz (PixelUnion).
  2. Bütün bir klasör için: ExifTool bir klasördeki her JPG için DateTimeOriginal etiketini yazdırabilir. Bu satır belgelerindeki bir örneğe dayanıyor (ExifTool):
exiftool -DateTimeOriginal -S -s -ext jpg .

Boş bir satır ya da dışa aktarma haftanızdan bir tarih, o fotoğrafın birleştirilmediği anlamına gelir. O zaman aracın hata ya da başarısız klasörüne bakın ve eşleşen JSON dosyasının başka bir zip'ten gelip gelmediğini kontrol edin.

  1. Sayıları karşılaştırın. Çıktı klasörü ile hata klasörü birlikte, çıkarılan Takeout ile yaklaşık aynı sayıda fotoğraf ve video içermelidir; aracınız düzenlenmiş kopyaları kaldırıyorsa onlar düşülerek.

Tek tıklamalı bir alternatif

Komut satırını kullanmak istemiyorsanız, bir masaüstü uygulaması aynı işi yapabilir. PHOTOK bir Pacix Labs ürünüdür. Sayfasına göre, Google'ın her yere dağıttığı .json dosyalarını okur ve gerçek tarihleri ve yerleri geri koyar; ardından fotoğrafları Yıl / Ay / Yer klasörlerine ayırır ve birebir aynı kopyaları kenara koyar. Windows 10 ve 11'de ve Apple çipli Mac'lerde çalışır, hiçbir şey yüklemeden çalışır ve asla dosya silmez. Önizleme ücretsizdir; tam sürüm tek seferlik ödemeyle 49 € tutar (PHOTOK).

Hangi yolu seçerseniz seçin, yukarıdaki ücretsiz araçlar ya da bir uygulama, aynı kurallar geçerlidir: bir kopya üzerinde çalışın, bir örneği kontrol edin ve zip dosyalarını saklayın.

Kontrol listesi

  • Her zip dosyasını indirin ve ikinci bir sürücüde bir kopyasını tutun.
  • Tüm zip dosyalarını tek bir üst klasöre çıkarın, alt klasörleri koruyun, aynı adlı klasörleri birleştirin.
  • Bir araç seçin ve hangi tarihi yazdığını bilin: EXIF tarihi, dosya tarihi ya da ikisi birden.
  • Aracı bir kopya üzerinde, yeni bir çıktı klasörüne çalıştırın.
  • Farklı yıllardan bir örnekte DateTimeOriginal değerini kontrol edin ve hata klasörüne bakın.
  • -edited kopyalarla ne yapacağınıza karar verin.
  • JSON dosyalarını ve zip dosyalarını yalnızca kontrolden ve ikinci bir yedekten sonra silin.

Sık sorulan sorular

Google Takeout fotoğraflarımla birlikte neden JSON dosyaları veriyor?

Google, her fotoğraf hakkında bildiği çekim tarihini, konumu, açıklamayı ve albüm bilgilerini fotoğrafın yanındaki ayrı bir .json dosyasında saklar. Fotoğraf dosyasının kendisi aynı bilgileri içermeyebilir; örneğin tarihi Google Fotoğraflar içinde değiştirdiyseniz.

JSON dosyalarını silebilir miyim?

Ancak tarihler ve yerler fotoğrafların içine yazıldıktan ve bir örneği kontrol ettikten sonra. O zamana kadar JSON dosyası, Google'ın fotoğraf için bildiği tarih ve konumun saklandığı tek yerdir.

Birleştirme aracı hangi tarihi düzeltir?

Araca bağlıdır. Bazıları tarihi fotoğrafın EXIF meta verisine (DateTimeOriginal) yazar; bu bilgi dosyayla birlikte taşınır. Diğerleri yalnızca dosyanın değiştirilme veya oluşturulma tarihini ayarlar; bazı kopyalama yöntemleri bu tarihi sıfırlar. Seçmeden önce aracın README dosyasını okuyun.

Birleştirmeden sonra bazı fotoğraflar neden hâlâ yanlış?

Genellikle fotoğraf ve JSON dosyası farklı zip dosyalarındaydı ve hiç bir araya getirilmedi ya da JSON dosyasının adı fotoğrafınkinden farklı. Tüm zip dosyalarını tek bir klasöre çıkarın, aracı yeni bir kopya üzerinde yeniden çalıştırın ve aracın hata ya da başarısız klasörüne bakın.

Orijinal zip dosyalarını saklamam gerekir mi?

Evet, birleştirilmiş kitaplık kontrol edilene ve başka bir yedeğiniz olana kadar. Bazı araçlar dosyaları kopyalamak yerine taşır ve zip dosyaları yeniden başlamanın tek yoludur.

Kaynaklar