Google Photos EXIF Editor

Google Photos EXIF Editor

Genel Bakış

Google Photos EXIF Editor, Google Photos’tan indirilen fotoğraf ve videoların meta verilerini (özellikle tarih bilgilerini) düzeltmek için geliştirilmiş bir Python uygulamasıdır. Program, Google Photos’un dışarı aktarma işlemi sırasında orijinal çekim tarihlerinin kaybolması sorununu çözerek, bu tarihleri fotoğrafların EXIF verilerine ve dosya sistemine tekrar ekler.

Teknik Mimari

Uygulama, modern bir yazılım mimarisiyle üç ana bölümden oluşur:

  1. Çekirdek Motor (core): Dosya işleme mantığı
  2. Grafiksel Arayüz (gui): Kullanıcı arayüzü
  3. Ana Modül (main.py): Başlatıcı modül

Çalışma Mantığı

1. Tarih Çıkarma Stratejisi

Program, tarih bilgilerini elde etmek için üç farklı kaynak kullanır:

  • JSON Meta Dosyaları: Google Photos’un dışa aktarma işleminde oluşturulan .supplemental-meta.json dosyalarından çekim tarihi bilgilerini çıkarır.
  • Dosya Adı Analizi: Çeşitli bilinen dosya adı formatlarını analiz ederek tarih bilgilerini tespit eder:
    • 2023.05.15 12.34.56.jpg formatı
    • 20230515_123456.jpg formatı
    • 2023-05-15-12-34-56.jpg formatı
    • IMG_20230515_ veya VID_20230515_ formatı
    • Diğer çeşitli formatlar

2. EXIF ve Dosya Tarihi Güncelleme

Tarih bilgisi bulunduktan sonra:

  • JPEG Dosyaları: EXIF verileri piexif kütüphanesi kullanılarak güncellenir. Üç farklı EXIF tarih alanı güncellenir:

    • DateTimeOriginal (Orijinal çekim tarihi)
    • DateTimeDigitized (Sayısallaştırma tarihi)
    • DateTime (Ana dosya tarihi)
  • Tüm Dosya Türleri: Dosya sistemindeki oluşturma ve değiştirme tarihleri güncellenir.

3. Kapsanan Dosya Formatları

Program şu dosya türlerini destekler:

  • Fotoğraflar: .jpg, .jpeg, .png, .heic, .webp
  • Videolar: .mp4, .mov

Mimari Detayları

Çekirdek Motor (exif_processor.py)

Bu modül, uygulamanın ana işlevselliğini sağlar:

  • Tarih çıkarma algoritmaları
  • EXIF veri manipülasyonu
  • Dosya sistemi tarihi yönetimi
  • Çoklu dosya işleme

Çekirdek işlevler:

  1. get_timestamp_from_json(): JSON dosyalarından tarih bilgisi çıkarır
  2. get_timestamp_from_filename(): Dosya adından tarih bilgisi çıkarır
  3. update_exif_date(): JPEG dosyalarının EXIF verilerini günceller
  4. update_file_system_date(): Dosya sistemindeki tarihleri günceller
  5. process_file(): Tek dosyayı işler
  6. scan_and_process(): Bir klasörü tarayıp tüm uygun dosyaları işler

Grafiksel Arayüz (app.py)

Modern bir arayüz sağlayarak kullanıcı etkileşimini kolaylaştırır:

  • Klasör seçimi
  • İlerleme göstergeleri
  • Detaylı log bilgileri
  • İşlem durdurma fonksiyonu

Arayüz, PyQt5 kütüphanesi kullanılarak geliştirilmiştir ve şık bir “Nordic” tema ile görsel çekiciliğe sahiptir.

Çoklu İş Parçacığı Desteği

ProcessingWorker sınıfı, Qt’nin QThread sınıfını kullanarak asenkron işleme sağlar. Böylece:

  • Kullanıcı arayüzü donmaz
  • Büyük klasörlerin işlenmesi arka planda gerçekleşir
  • İşlem anında ilerleme güncellemeleri yapılır

Nordic Tema (nordic_theme.py)

“Nord” renk paletine dayalı hoş görünümlü bir arayüz sağlar:

  • Koyu mavi/gri arka plan
  • Parlak metin renkleri
  • Mavi ve yeşil vurgular
  • Yuvarlak köşe tasarımı

Hata Yönetimi

Uygulama, hata toleranslı bir yapıya sahiptir:

  • Başlatma hataları için kapsamlı bir try-catch sistemi
  • Başarılı/başarısız dosya sayısı takibi
  • Detaylı hata raporlaması

Pakatleme ve Dağıtım

Uygulama, PyInstaller kullanılarak tek bir çalıştırılabilir dosya olarak paketlenebilir, böylece kullanıcıların Python ortamı kurmasına gerek kalmaz. PyInstaller komutu:

python -m pyinstaller --noconfirm --onefile --windowed --add-data "src/assets;src/assets" src/main.py

Sonuç

Google Photos EXIF Editor, Google Photos’tan indirilen fotoğraf ve videolardaki tarih bilgilerini kurtarıp düzelten, kullanımı kolay ve modern bir araçtır. PyQt5 ile geliştirilen şık arayüzü, çoklu iş parçacığı desteği ve kapsamlı hata yönetimiyle hem işlevsel hem de kullanıcı dostudur.

Uygulamanın güçlü yanları:

  • Çoklu dosya formatı desteği
  • Akıllı tarih çıkarma algoritmaları
  • Modern ve duyarlı arayüz
  • Çoklu iş parçacığı performansı
  • Detaylı ilerleme ve log bilgileri

Bu araç, özellikle büyük Google Photos arşivlerini indiren ve orijinal çekim tarihlerini korumak isteyen fotoğraf tutkunları için büyük değer taşımaktadır.