Mac पर पूरी iMessage बातचीत कैसे निर्यात करें
Messages ऐप में निर्यात कमांड क्यों नहीं है, फिर भी कौन-से निःशुल्क तरीके काम करते हैं, वह इतिहास कैसे पाएँ जो कभी आपके Mac से सिंक ही नहीं हुआ, और ऐसा एलबम कैसे बनाएँ जिसे वर्षों बाद भी खोला जा सके।
· 5 min read
macOS के Messages ऐप में निर्यात (Export) कमांड नहीं है। कभी था ही नहीं। इस सवाल को खोजिए और सबसे ऊपर Apple सपोर्ट का एक धागा और एक Reddit पोस्ट मिलेंगे — इसी से पता चलता है कि अंतर्निर्मित विकल्पों ने इसे कितना हल किया है।
नीचे वह है जो सचमुच काम करता है।
बातचीत रहती कहाँ है
Mac पर Messages सब कुछ ~/Library/Messages/chat.db नामक SQLite डेटाबेस में रखता है, और अटैचमेंट ~/Library/Messages/Attachments/ में। macOS दोनों की रक्षा करता है: सिस्टम सेटिंग्स में फ़ुल डिस्क एक्सेस दिए बिना कोई ऐप इन्हें पढ़ नहीं सकता, और वह फ़ोल्डर Finder में डिफ़ॉल्ट रूप से छिपा रहता है।
इससे दो बातें निकलती हैं, और इस विषय की अधिकांश उलझन इन्हीं से समझ आती है:
- आपके संदेश निर्यात करने वाले किसी भी उपकरण को फ़ुल डिस्क एक्सेस चाहिए। यह अपने आप में ख़तरे का संकेत नहीं है; macOS यही एक रास्ता देता है। मायने यह रखता है कि फ़ाइल पढ़ने के बाद वह उपकरण करता क्या है।
- यह डेटाबेस Apple का निजी आंतरिक विवरण है। इसकी संरचना macOS के संस्करणों के बीच बिना सूचना बदलती है। इसीलिए निर्यात उपकरणों को अपडेट चाहिए, और इसीलिए निर्यात किया गया एलबम कभी Apple के प्रारूप में नहीं होना चाहिए।
तरीका 1: PDF में छापें (निःशुल्क, अंतर्निर्मित, सीमित)
- Messages खोलें, बातचीत चुनें।
- Command + ऊपर तीर दबाए रखकर बातचीत के बिलकुल ऊपर तक जाएँ, जब तक पुराने संदेश लोड होना बंद न हो जाएँ।
- फ़ाइल › प्रिंट, फिर PDF › PDF के रूप में सहेजें।
यह काम करता है, और छोटी बातचीत के लिए यही सही उत्तर है। दो असली सीमाएँ: पूरी बातचीत स्क्रॉल करके लोड करनी पड़ती है, जो वर्षों के इतिहास पर कष्टदायक है; और PDF चलने वाला वीडियो या ऑडियो नहीं रख सकता।
तरीका 2: डेटाबेस से ख़ुद क्वेरी करें (निःशुल्क, तकनीकी)
चूँकि chat.db एक मानक SQLite फ़ाइल है, आप उससे सीधे क्वेरी कर सकते हैं। पहले अपने टर्मिनल को फ़ुल डिस्क एक्सेस दें, फिर:
sqlite3 ~/Library/Messages/chat.db
तीन जाल हैं जिनमें हाथ से करने वाले फँसते हैं:
- समय-मुहरें Unix समय नहीं हैं। Messages 2001-01-01 से नैनोसेकंड सहेजता है, इसलिए आपको
datetime(message.date/1000000000 + 978307200, 'unixepoch')चाहिए। textअक्सर NULL होता है। आधुनिक संदेश अपनी सामग्री सादेtextकॉलम में नहीं, बल्किattributedBodyमें रखते हैं, जो Apple का क्रमबद्ध किया गया typedstream है। इसे ठीक से डिकोड करना ही इस पूरी समस्या का कठिन हिस्सा है, और बाइनरी को भोलेपन से UTF-16 मान लेने पर ऐसा कचरा बनता है जो लगभग सही दिखता है।- इसे केवल-पढ़ने के लिए खोलें।
file:...?mode=roका उपयोग करें ताकि कोई भटकी हुई क्वेरी आपके चालू Messages डेटाबेस में कभी न लिख सके।
यदि आप यह रास्ता हाथ से नहीं, बल्कि ठीक से तय करना चाहते हैं, तो imessage-exporter निःशुल्क, ओपन सोर्स है और typedstream को सही तरीके से डिकोड करता है।
तरीका 3: एक एलबम में निर्यात करें (जो असल में अधिकतर लोग चाहते हैं)
अधिकतर लोग जो परिणाम चाहते हैं वह एक ऐसा फ़ोल्डर है जिसे वे रख सकें: पूरी बातचीत, बिना किसी ख़ास सॉफ़्टवेयर के पढ़ने योग्य, तस्वीरों और वीडियो के साथ अक्षुण्ण।
इसका अर्थ है ऐसा निर्यात जो दे:
- दोनों पक्षों का हर संदेश, क्रम में, समय-मुहरों के साथ।
- हर अटैचमेंट मूल गुणवत्ता में बाहर कॉपी किया हुआ, किसी दस्तावेज़ में छोटा करके ठूँसा हुआ नहीं।
- ऐसा प्रारूप जो उसे बनाने वाले उपकरण पर निर्भर न हो। सादे HTML, JSON और Markdown सब योग्य हैं। मालिकाना डेटाबेस नहीं।
इस श्रेणी के उपकरणों में imessage-exporter, iMazing, Decipher TextMessage और Message Album शामिल हैं, जिसने यह साइट बनाई है। Message Album का ख़ास ज़ोर आख़िरी बिंदु पर है: निर्यात एक आत्मनिर्भर ऑफ़लाइन वेबसाइट होती है, बिना किसी फ़्रेमवर्क, CDN, बाहरी फ़ॉन्ट या सर्वर के, साथ में SHA-256 चेकसम का मैनिफ़ेस्ट — इस सोच पर कि जिसे आप सहेज रहे हैं वह किसी निर्भरता के ग़ायब हो जाने से काम करना बंद नहीं करना चाहिए।
वह इतिहास पाना जो कभी Mac से सिंक नहीं हुआ
यह वह कदम है जिसे अधिकतर मार्गदर्शिकाएँ छोड़ देती हैं, और अक्सर यही वजह होती है कि निर्यात अधूरा निकलता है।
आपके Mac के पास केवल वही संदेश हैं जो उस तक सिंक हुए। यदि बातचीत उस Mac के आपके पास आने से पहले शुरू हुई थी, या “iCloud में Messages” ने पुराने अटैचमेंट हटा दिए हैं, तो Mac की अपनी लाइब्रेरी से निर्यात करने पर चीज़ें चुपचाप छूट जाएँगी।
समाधान है iPhone बैकअप से निर्यात करना:
- iPhone या iPad कनेक्ट करें और Finder खोलें।
- साइडबार में डिवाइस चुनें।
- अभी बैकअप लें चुनें। एन्क्रिप्टेड और बिना एन्क्रिप्शन वाले, दोनों बैकअप में Messages होते हैं। यदि आपको Health तथा अन्य सुरक्षित डेटा भी चाहिए तो स्थानीय बैकअप एन्क्रिप्ट करें पर निशान लगाएँ।
- अपने निर्यात उपकरण को Mac की लाइब्रेरी के बजाय उस बैकअप की ओर इंगित करें।
बैकअप में वही होता है जो फ़ोन पर है, और यह आमतौर पर उससे अधिक होता है जो Mac तक पहुँचा।
कैसे जानें कि निर्यात पूरा है
आप जो भी उपकरण उपयोग करें, उससे एक ही प्रश्न पूछें: जब कुछ ग़ायब हो, तब वह क्या करता है?
जो अटैचमेंट कभी स्थानीय रूप से डाउनलोड नहीं हुए, और Apple के वे निजी संदेश-डेटा जिन्हें डिकोड नहीं किया जा सकता — दोनों सामान्य बातें हैं। जो उपकरण इन्हें स्पष्ट चेतावनी के रूप में बताता है, वह आपको पता रहने देता है कि आपके पास क्या है। जो इन्हें चुपचाप गिरा देता है, वह आपको ऐसा एलबम देता है जो पूरा दिखता है पर है नहीं, और आपको यह उस दिन तक पता नहीं चलेगा जिस दिन आप कोई ख़ास तस्वीर खोजने जाएँगे।
गिनती भी जाँचें। यदि कोई उपकरण बताता है कि उसने स्रोत से कितने संदेश पढ़े और आउटपुट में कितने लिखे, तो वे दोनों संख्याएँ मेल खानी चाहिए, या अंतर की व्याख्या होनी चाहिए।
बाद में एलबम का क्या करें
जो एलबम केवल एक जगह मौजूद है वह सहेजा नहीं गया, बस रखा हुआ है। उसे कहीं और भी कॉपी करें: कोई बाहरी डिस्क, दूसरी मशीन, या आपकी पसंद का क्लाउड स्टोरेज। चूँकि एक अच्छा निर्यात सामान्य फ़ाइलों वाला सामान्य फ़ोल्डर होता है, यह बस एक फ़ोल्डर कॉपी करने जितना है।
यदि आपके निर्यात में चेकसम शामिल हैं, तो मैनिफ़ेस्ट उसी के साथ रखें। पाँच साल बाद यह पुष्टि करने का यही एकमात्र साधन है कि आप जिस प्रति को देख रहे हैं वह अक्षुण्ण है।