Pacix Labs

تصاویر

Google Takeout کی JSON فائلیں تصویروں میں کیسے ملائیں (غلط تاریخیں ٹھیک کریں)

Google Takeout آپ کی تصویروں کی تاریخیں الگ JSON فائلوں میں رکھتا ہے۔ چار مفت ٹول انہیں دوبارہ تصویروں میں ملا دیتے ہیں: ہر ٹول کیا ٹھیک کرتا ہے، درست کمانڈز، اور نتیجہ کیسے جانچیں۔

· 9 منٹ کا مطالعہ

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

آپ نے Google Takeout سے اپنی Google Photos لائبریری ڈاؤن لوڈ کی۔ اب آپ کے پاس ہزاروں تصویروں کے ساتھ ہزاروں .json فائلیں ہیں، اور آپ کا فوٹو ویور کہتا ہے کہ 2019 کی ایک تصویر کل کھینچی گئی تھی۔ Google Takeout photos date کا یہ مسئلہ ٹھیک کرنے کے لیے آپ ہر JSON فائل کو واپس اس کی تصویر میں ملاتے ہیں۔ ایک ٹول JSON فائل سے تصویر کھینچنے کی تاریخ پڑھتا ہے اور اسے تصویر میں لکھ دیتا ہے، تاکہ ہر ایپ پھر سے درست تاریخ دکھائے۔

یہ گائیڈ بتاتی ہے کہ JSON فائلیں کیوں ہوتی ہیں، ملانے کا عمل کبھی کبھی کیوں ناکام ہوتا ہے، اور چار مفت ٹول یہ کام کیسے کرتے ہیں۔ آپ کو ہر ٹول کی درست کمانڈ ملے گی، یہ بھی کہ ہر ٹول کون سی تاریخ بدلتا ہے، اور کچھ بھی ڈیلیٹ کرنے سے پہلے نتیجہ جانچنے کا طریقہ۔

آپ کی تصویروں کے ساتھ JSON فائلیں کیوں آتی ہیں

ہر تصویر کے لیے Takeout آپ کو دو فائلیں دیتا ہے: تصویر، مثلاً IMG_1234.jpg، اور ایک JSON فائل جس میں اصل تاریخ، GPS کوآرڈینیٹس، تفصیل اور البم کی معلومات ہوتی ہیں۔ ایکسپورٹ کی ایک گائیڈ پہلی نظر کا عام تجربہ بیان کرتی ہے: 2019 کی ایک تصویر کی تاریخ "کل" دکھائی دے رہی تھی، نہ مقام تھا نہ البم، حالانکہ کچھ ضائع نہیں ہوا تھا۔ معلومات JSON فائل میں تھیں (PixelUnion)۔ Illinois Tech بھی یہی وجہ بتاتا ہے کہ ایکسپورٹ میں آپ کی لائبریری کی تصویروں سے زیادہ فائلیں کیوں ہوتی ہیں (Illinois Tech)۔

تصویر کی فائل اور JSON فائل کی معلومات میں فرق ہو سکتا ہے۔ google-photos-exif کے مصنف نے دیکھا کہ اگر آپ Google Photos میں کوئی تاریخ بدلتے ہیں تو تصویر کے اندر کا میٹا ڈیٹا اپ ڈیٹ نہیں ہوتا: نئی تاریخ صرف JSON فائل میں ہوتی ہے۔ کچھ تصویروں میں، اکثر ان میں جو دوسروں نے آپ کے ساتھ شیئر کی تھیں، اندر کوئی تاریخ ہوتی ہی نہیں (google-photos-exif)۔ gphotos-takeout-repair کی README مسئلے کا دوسرا حصہ دکھاتی ہے: نکالے گئے ایکسپورٹ میں تصویر، اس کا ایڈٹ شدہ ورژن اور JSON فائل، تینوں کی created تاریخ Takeout ایکسپورٹ کی تاریخ دکھائی دیتی ہے (gphotos-takeout-repair)۔

اس لیے جو ایپ صرف تصویر کی فائل پڑھتی ہے، اسے یا تو کوئی تاریخ نظر نہیں آتی یا وہ دن نظر آتا ہے جب آپ نے ایکسپورٹ کیا تھا۔ درست تاریخ JSON فائل میں ہے، اور ملانے کا عمل اسے واپس تصویر میں ڈال دیتا ہے۔

تین باتیں جو ملانے کا عمل خراب کرتی ہیں

ہر ٹول کو ہر تصویر کے لیے درست JSON فائل تلاش کرنی ہوتی ہے۔ Takeout کی تین تفصیلات اسے مشکل بناتی ہیں۔

  1. تصویر اور اس کی JSON فائل الگ الگ zip میں ہو سکتی ہیں۔ Ente کی مائیگریشن FAQ مثال دیتی ہے کہ flower.jpeg ایک zip میں اور flower.json دوسری میں ہو تو دونوں کا ملان نہیں ہو پاتا (Ente)۔ Porte کی README بھی اسی صورت کو ایک معلوم حد کے طور پر درج کرتی ہے: جو میٹا ڈیٹا فائلیں اپنی تصویر سے مختلف آرکائیو میں ہوں، انہیں یہ تلاش نہیں کر پاتا (Porte)۔
  2. JSON فائلوں کے نام یکساں نہیں ہوتے۔ IMG123.jpg کے لیے آپ کو IMG123.jpg.json مل سکتی ہے یا صرف IMG123.json، اور کچھ فولڈرز میں ایسی JSON فائلیں ہوتی ہیں جن کی کوئی مطابق تصویر نہیں ہوتی (google-photos-exif)۔
  3. ایڈٹ کی گئی تصویریں دو بار آتی ہیں۔ Takeout اصل تصویر اور ایڈٹ شدہ کاپی کو مختلف ہیش والی الگ فائلوں کے طور پر ایکسپورٹ کرتا ہے، اس لیے ہیش کا موازنہ کرنے والا ڈپلیکیٹ فائنڈر انہیں نہیں پکڑتا (Ente)۔ ایڈٹ شدہ فائل کے نام کے آخر میں -edited ہوتا ہے، جیسے IMG_0001-edited.jpg کے ساتھ IMG_0001.jpg (gphotos-takeout-repair)۔

پہلے مسئلے کا حل ہر ٹول کے لیے ایک ہی ہے: تمام zip ڈاؤن لوڈ کریں، پھر سب کو ایک ہی بنیادی فولڈر میں نکالیں اور سب فولڈرز جیسے ہیں ویسے ہی رہنے دیں (Ente)۔ اگر دو zip میں ایک ہی نام کا فولڈر ہو تو ایک کو دوسرے سے بدلنے کے بجائے دونوں فولڈرز کا مواد ملا دیں (google-photos-exif)۔

ڈاؤن لوڈ کے لیے Illinois Tech کا ایک مشورہ: Takeout کی ونڈو سامنے رکھیں۔ اگر آپ اسے منیمائز کرتے ہیں یا کسی دوسری ونڈو میں کام کرتے ہیں تو 15 منٹ بعد ڈاؤن لوڈ ناکام ہو جاتے ہیں، کیونکہ Google آپ سے دوبارہ سائن ان کرنے کو کہتا ہے (Illinois Tech)۔

Google Takeout photos date ٹھیک کرنے کے چار مفت ٹول اور ہر ایک کون سی تاریخ ٹھیک کرتا ہے

ایک تصویر کی دو قسم کی تاریخ ہوتی ہے۔ EXIF تاریخ (DateTimeOriginal) تصویر کے اندر محفوظ ہوتی ہے اور کسی بھی ایپ یا سروس میں اس کے ساتھ جاتی ہے۔ فائل کی تاریخ (modified یا created) فائل سسٹم کا حصہ ہوتی ہے۔ یہ آسانی سے ضائع ہو جاتی ہے: gpth کی README خبردار کرتی ہے کہ Android فون پر فائلیں منتقل کرنے سے یہ عموماً ری سیٹ ہو جاتی ہے (gpth)۔ ٹول چننے سے پہلے دیکھ لیں کہ وہ ان دونوں میں سے کون سی لکھتا ہے۔

نیچے کی ہر کمانڈ میں پہلا فولڈر آپ کا نکالا ہوا Takeout ہے اور دوسرا ایک نیا، خالی آؤٹ پٹ فولڈر۔

Porte: تاریخ اور مقام تصویر کے اندر لکھتا ہے

Porte متعلقہ JSON فائل سے ٹائم اسٹیمپ اور جیو لوکیشن کو تصویر کے EXIF ڈیٹا میں کاپی کرتا ہے، تصویر کو دوبارہ کمپریس کیے بغیر۔ اگر اسے کوئی تاریخ نہ ملے تو وہ فائل کے نام سے کوشش کرتا ہے، اور جو سب سے پرانی تاریخ ملے وہی استعمال کرتا ہے، تاکہ فائل میں تبدیلی کی تاریخ کو تصویر کھینچنے کی تاریخ نہ سمجھ لیا جائے۔ وہ فائلوں کو اسی جگہ بدلنے کے بجائے آؤٹ پٹ فولڈر میں کاپی کرتا ہے، ناکام فائلیں الگ فولڈر میں رکھتا ہے اور ایک لاگ محفوظ کرتا ہے۔ وہ البم کا ڈیٹا نہیں رکھتا۔ آپ پروجیکٹ کے releases صفحے سے تیار پروگرام ڈاؤن لوڈ کر سکتے ہیں (Porte):

porte srcpath destpath

google-photos-exif: غائب EXIF تاریخ بھرتا ہے

یہ Node.js ٹول ہر JSON فائل سے photoTakenTime پڑھتا ہے۔ یہ فائل کی modified تاریخ سیٹ کرتا ہے، اور DateTimeOriginal صرف اس وقت بھرتا ہے جب تصویر میں وہ پہلے سے موجود نہ ہو۔ جن فائلوں کو یہ پروسیس نہیں کر پاتا وہ ایک error فولڈر میں جاتی ہیں (google-photos-exif)۔ PixelUnion کے مصنف نے اسے استعمال کیا اور بتایا کہ اس نے پوری لائبریری تقریباً بیس منٹ میں پروسیس کر دی (PixelUnion)۔

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

gpth: ایک فولڈر میں یا مہینے کے حساب سے ترتیب دیتا ہے، پھر فائل کی تاریخ سیٹ کرتا ہے

Google Photos Takeout Helper انٹرایکٹو ہے: آپ اسے چلاتے ہیں اور اس کے سوالوں کے جواب دیتے ہیں۔ یہ ہر تصویر کو ایک فولڈر میں جمع کرتا ہے، یا --divide-to-dates آپشن کے ساتھ مہینے کے حساب سے فولڈرز میں، اور فائل کی last-modified تاریخ سیٹ کرتا ہے۔ JSON ڈیٹا کو واپس EXIF میں لکھنا ابھی اس کی to-do فہرست میں ہے، اس لیے اس کی README ایک اضافی exiftool کمانڈ دیتی ہے جو ان تصویروں کے لیے فائل کی تاریخ کو EXIF تاریخوں میں کاپی کرتی ہے جن میں کوئی تاریخ نہیں۔ فائلوں کو دوبارہ چھیڑنے سے پہلے یہ کمانڈ چلا لیں۔ دھیان رہے کہ gpth ڈیفالٹ طور پر فائلیں منتقل کرتا ہے، اس لیے اپنی اصل zip سنبھال کر رکھیں (gpth)۔

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

gphotos-takeout-repair: JSON فائلیں اور ایڈٹ شدہ ڈپلیکیٹ ہٹاتا ہے

یہ ٹول آپ کی تصویریں ایک نئے فولڈر میں کاپی کرتا ہے، فولڈرز کی ساخت برقرار رکھتا ہے، اور JSON فائل کے photoTakenTime سے ہر فائل کی created تاریخ سیٹ کرتا ہے۔ جہاں -edited کاپی موجود ہو، وہاں یہ وہی ورژن رکھتا ہے (عموماً سب سے بہتر) اور اصل کو چھوڑ دیتا ہے، اس لیے آؤٹ پٹ میں نہ JSON فائلیں ہوتی ہیں نہ ایڈٹ شدہ ڈپلیکیٹ (gphotos-takeout-repair)۔ اسے npm install -g gphotos-takeout-repair سے انسٹال کریں، پھر:

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

اگر آپ ہر تصویر کی تاریخ تصویر کے اندر چاہتے ہیں تو Porte اسے براہ راست لکھ دیتا ہے۔ باقی تین کے ساتھ بعد میں EXIF تاریخ جانچ لیں، جیسا کہ نیچے بتایا گیا ہے۔

جانچیں کہ تاریخیں واقعی تصویروں کے اندر ہیں

فائل براؤزر کے "date modified" کالم پر بھروسا نہ کریں۔ خود میٹا ڈیٹا جانچیں۔

  1. کسی اضافی سافٹ ویئر کے بغیر: کسی تصویر پر رائٹ کلک کریں اور Mac پر Get Info یا Windows پر Properties منتخب کریں۔ اچھی طرح ملانے کے بعد آپ کو تصویر کھینچنے کی درست تاریخ، GPS کوآرڈینیٹس (اگر تصویر میں تھے) اور جہاں دستیاب ہو کیمرے کا ماڈل نظر آنا چاہیے (PixelUnion)۔
  2. پورے فولڈر کے لیے: ExifTool کسی فولڈر کی ہر JPG کا DateTimeOriginal ٹیگ دکھا سکتا ہے۔ یہ لائن اس کی دستاویزات کی ایک مثال پر مبنی ہے (ExifTool):
exiftool -DateTimeOriginal -S -s -ext jpg .

خالی لائن یا آپ کے ایکسپورٹ والے ہفتے کی تاریخ کا مطلب ہے کہ وہ تصویر ملائی نہیں گئی۔ تب ٹول کا error یا failed فولڈر دیکھیں، اور جانچیں کہ مطابق JSON فائل کسی دوسری zip سے تو نہیں آئی تھی۔

  1. تعداد کا موازنہ کریں۔ آؤٹ پٹ فولڈر اور error فولڈر میں مل کر تقریباً اتنی ہی تصویریں اور ویڈیوز ہونی چاہئیں جتنی نکالے گئے Takeout میں ہیں، اور اگر آپ کا ٹول ایڈٹ شدہ ڈپلیکیٹ ہٹاتا ہے تو انہیں منہا کر کے۔

ایک کلک والا متبادل

اگر آپ کمانڈ لائن استعمال نہیں کرنا چاہتے تو ایک ڈیسک ٹاپ ایپ بھی یہی کام کر سکتی ہے۔ PHOTOK، Pacix Labs کی ایک پروڈکٹ ہے۔ اس کے صفحے کے مطابق، یہ Google کی ادھر ادھر بکھری .json فائلیں پڑھتی ہے اور اصل تاریخیں اور مقامات واپس ڈال دیتی ہے، پھر تصویروں کو سال / مہینہ / مقام کے فولڈرز میں ترتیب دیتی ہے اور بالکل ایک جیسے ڈپلیکیٹ الگ رکھ دیتی ہے۔ یہ Windows 10 اور 11 پر اور Apple چپ والے Mac پر چلتی ہے، کچھ بھی اپ لوڈ کیے بغیر کام کرتی ہے اور کبھی فائلیں ڈیلیٹ نہیں کرتی۔ پریویو مفت ہے، اور مکمل ورژن کی قیمت €49 ہے جو ایک ہی بار ادا کرنی ہوتی ہے (PHOTOK)۔

آپ جو بھی راستہ چنیں، اوپر کے مفت ٹول یا کوئی ایپ، اصول وہی ہیں: کاپی پر کام کریں، کچھ تصویریں جانچیں، اور zip سنبھال کر رکھیں۔

چیک لسٹ

  • ہر zip ڈاؤن لوڈ کریں اور اس کی ایک کاپی دوسری ڈرائیو پر رکھیں۔
  • تمام zip ایک بنیادی فولڈر میں نکالیں، سب فولڈرز برقرار رکھیں، ایک جیسے نام والے فولڈرز ملا دیں۔
  • ایک ٹول چنیں اور جانیں کہ وہ کون سی تاریخ لکھتا ہے: EXIF تاریخ، فائل کی تاریخ یا دونوں۔
  • اسے ایک کاپی پر، ایک نئے آؤٹ پٹ فولڈر میں چلائیں۔
  • مختلف سالوں کی کچھ تصویروں میں DateTimeOriginal جانچیں، اور error فولڈر دیکھیں۔
  • طے کریں کہ -edited کاپیوں کا کیا کرنا ہے۔
  • JSON فائلیں اور zip صرف جانچ اور دوسرے بیک اپ کے بعد ہی ڈیلیٹ کریں۔

اکثر پوچھے جانے والے سوالات

Google Takeout میری تصویروں کے ساتھ JSON فائلیں کیوں دیتا ہے؟

Google ہر تصویر کے بارے میں جو معلومات رکھتا ہے، جیسے تصویر کھینچنے کی تاریخ، مقام، تفصیل اور البم، انہیں تصویر کے ساتھ ایک الگ .json فائل میں رکھتا ہے۔ ممکن ہے تصویر کی فائل میں یہی معلومات نہ ہوں، مثلاً اگر آپ نے Google Photos میں تاریخ بدلی تھی۔

کیا میں JSON فائلیں ڈیلیٹ کر سکتا ہوں؟

صرف اس وقت جب تاریخیں اور مقامات تصویروں کے اندر آ چکے ہوں اور آپ نے کچھ تصویریں جانچ لی ہوں۔ اس سے پہلے JSON فائل ہی وہ واحد جگہ ہے جہاں تصویر کی وہ تاریخ اور مقام محفوظ ہیں جو Google کو معلوم ہیں۔

ملانے والا ٹول کون سی تاریخ ٹھیک کرتا ہے؟

یہ ٹول پر منحصر ہے۔ کچھ ٹول تاریخ کو تصویر کے EXIF میٹا ڈیٹا (DateTimeOriginal) میں لکھتے ہیں، جو فائل کے ساتھ ہر جگہ جاتا ہے۔ دوسرے صرف فائل کی modified یا created تاریخ سیٹ کرتے ہیں، جسے کاپی کرنے کے کچھ طریقے ری سیٹ کر دیتے ہیں۔ انتخاب سے پہلے ٹول کی README پڑھیں۔

ملانے کے بعد بھی کچھ تصویروں کی تاریخ غلط کیوں ہے؟

عموماً اس لیے کہ تصویر اور اس کی JSON فائل الگ الگ zip میں تھیں اور کبھی اکٹھی نہیں کی گئیں، یا JSON فائل کا نام تصویر سے مختلف ہے۔ تمام zip ایک ہی فولڈر میں نکالیں، ایک نئی کاپی پر ٹول دوبارہ چلائیں، اور ٹول کا error یا failed فولڈر دیکھیں۔

کیا مجھے اصل zip فائلیں رکھنی چاہئیں؟

ہاں، جب تک ملائی گئی لائبریری جانچ نہ لی جائے اور آپ کے پاس ایک اور بیک اپ نہ ہو۔ کچھ ٹول فائلیں کاپی کرنے کے بجائے منتقل کرتے ہیں، اور zip ہی دوبارہ شروع کرنے کا واحد راستہ ہیں۔

ذرائع