फोटो
गूगल टेकआउट फोटो की JSON फ़ाइलें फोटो में कैसे मर्ज करें (गलत तारीख़ ठीक करें)
Google Takeout आपकी फोटो की तारीख़ें अलग JSON फ़ाइलों में रखता है। चार मुफ़्त टूल इन्हें वापस फोटो में मिलाते हैं: हर टूल क्या ठीक करता है, सटीक कमांड, और नतीजा कैसे जाँचें।
इन भाषाओं में भी उपलब्ध: العربيةবাংলাDeutschespañolfrançaisગુજરાતીIndonesiaitaliano日本語ಕನ್ನಡ한국어EnglishमराठीpolskiportuguêsрусскийKiswahiliதமிழ்తెలుగుไทยTürkçeукраїнськаاردوTiếng Việt中文
आपने Google Takeout से अपनी Google Photos लाइब्रेरी डाउनलोड की। अब आपके पास हज़ारों फोटो के बगल में हज़ारों .json फ़ाइलें हैं, और आपका फोटो व्यूअर कहता है कि 2019 की एक तस्वीर कल खींची गई थी। गूगल टेकआउट फोटो की यह समस्या ठीक करने के लिए आप हर 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 की तीन बातें इसे मुश्किल बनाती हैं।
- फोटो और उसकी JSON फ़ाइल अलग-अलग zip में हो सकती हैं। Ente की माइग्रेशन FAQ उदाहरण देती है कि
flower.jpegएक zip में औरflower.jsonदूसरी zip में हो, तो दोनों का मिलान नहीं हो पाता (Ente)। Porte की README भी इसी स्थिति को एक जानी-पहचानी सीमा बताती है: जो मेटाडेटा फ़ाइलें अपनी तस्वीर से अलग आर्काइव में हों, उन्हें यह नहीं ढूँढ पाता (Porte)। - JSON फ़ाइलों के नाम एक जैसे नहीं होते।
IMG123.jpgके लिए आपकोIMG123.jpg.jsonमिल सकती है या सिर्फ़IMG123.json, और कुछ फ़ोल्डरों में ऐसी JSON फ़ाइलें होती हैं जिनकी कोई मिलती-जुलती तस्वीर नहीं होती (google-photos-exif)। - एडिट की गई फोटो दो बार आती हैं। 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)।
Takeout गूगल फोटो के लिए चार मुफ़्त टूल और हर एक कौन-सी तारीख़ ठीक करता है
एक फोटो की दो तरह की तारीख़ होती है। 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" कॉलम पर भरोसा न करें। ख़ुद मेटाडेटा जाँचें।
- बिना किसी अतिरिक्त सॉफ़्टवेयर के: किसी फोटो पर राइट-क्लिक करें और Mac पर Get Info या Windows पर Properties चुनें। अच्छे मर्ज के बाद आपको खींचने की सही तारीख़, GPS कोऑर्डिनेट (अगर फोटो में थे) और जहाँ उपलब्ध हो कैमरा मॉडल दिखना चाहिए (PixelUnion)।
- पूरे फ़ोल्डर के लिए: ExifTool किसी फ़ोल्डर की हर JPG का
DateTimeOriginalटैग दिखा सकता है। यह लाइन उसके दस्तावेज़ के एक उदाहरण पर आधारित है (ExifTool):
exiftool -DateTimeOriginal -S -s -ext jpg .
ख़ाली लाइन या आपके एक्सपोर्ट वाले हफ़्ते की तारीख़ का मतलब है कि वह फोटो मर्ज नहीं हुई। तब टूल का error या failed फ़ोल्डर देखें, और जाँचें कि मिलती-जुलती JSON फ़ाइल किसी दूसरी zip से तो नहीं आई थी।
- गिनती मिलाएँ। आउटपुट फ़ोल्डर और 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 ही दोबारा शुरू करने का आपका अकेला रास्ता हैं।
स्रोत
- Ente: Google Photos migration FAQ (split zips, wrong dates, duplicates)
- PixelUnion: how to export your Google Photos library without losing the metadata
- Illinois Tech: use Google Takeout to export Google Photos
- google-photos-exif (GitHub README)
- Porte: fixing and organizing a Google Takeout photos export (GitHub README)
- Google Photos Takeout Helper, gpth (GitHub README)
- gphotos-takeout-repair 1.4.2 (README)
- ExifTool documentation