- जब iCloud स्टोरेज 200GB सीमा के करीब पहुँच गया और सिर्फ़ फ़ोटो ही लगभग 127GB घेर रही थीं, तो 1TB अपग्रेड करने के बजाय बड़े वीडियो खुद ढूँढकर हटाने वाला एक वैकल्पिक तरीका अपनाया गया
- Apple Photos और iCloud वेब में फ़ाइल साइज़ के अनुसार sort करने का विकल्प नहीं है, और अलग ऐप्स भी iCloud पर offload की गई फ़ोटो को 0B जैसा दिखाते थे, इसलिए उन्हें सफ़ाई के मानदंड के तौर पर इस्तेमाल करना मुश्किल था
- iCloud Photos वेब में वीडियो प्लेबैक समय का बैज
video-text-badgeHTML एलिमेंट होने का फायदा उठाकर, JavaScript से लंबे वीडियो ढूँढे गए और उन्हें लाल बॉर्डर से चिह्नित किया गया - 30 सेकंड से लंबे वीडियो डाउनलोड करके हटाने पर, डाउनलोड की गई फ़ाइलें लगभग 7GB थीं, लेकिन iCloud स्टोरेज लगभग 55GB कम हुआ—यह एक अप्रत्याशित अंतर था
- नए 4K वीडियो में फ़ाइल साइज़ और iCloud में दिखने वाला बदलाव लगभग मेल खाते थे, लेकिन पुराने वीडियो iCloud में वास्तविक फ़ाइल से बड़े दिखे, इसलिए पुराने बड़े वीडियो सफ़ाई की प्राथमिकता हो सकते हैं
iCloud वेब में लंबे वीडियो चुनना
- Apple की स्टोरेज चेतावनी के बाद, 200GB से 1TB पर जाने पर लागत 3 गुना से ज़्यादा बढ़ रही थी, इसलिए विकल्प ढूँढना शुरू किया गया
- स्टोरेज का ज़्यादातर हिस्सा फ़ोटो का था और वे लगभग 127GB घेर रही थीं, लेकिन Apple Photos और iCloud ब्राउज़र में फ़ोटो को फ़ाइल साइज़ के अनुसार sort करने की सुविधा नहीं थी
- डुप्लिकेट फ़ोटो या वीडियो फ़ाइल साइज़ दिखाने वाले ऐप्स भी iCloud पर offload की गई फ़ोटो को 0B जैसा दिखाते थे, इसलिए वे वास्तविक सफ़ाई में बहुत मददगार नहीं थे
- iCloud वेबसाइट के
Photos -> Media Types -> Videosपर जाकर स्क्रीन को जितना संभव हो उतना zoom out किया गया ताकि एक बार में ज़्यादा वीडियो दिखाई दें - यह मानकर कि हर वीडियो का प्लेबैक टाइम बैज एक HTML एलिमेंट है, JavaScript से खोज/फ़िल्टर करने योग्य होगा, लंबे वीडियो को highlight करने वाला कोड लिखा गया
- प्लेबैक टाइम बैज की class
video-text-badgeहै - पेज के अंदर के बैज खोजकर उन्हें प्लेबैक समय के आधार पर sort किया गया और एक तय threshold से ऊपर के आइटम highlight किए गए
- iCloud सिर्फ़ स्क्रीन पर लोड हुए एलिमेंट ही लाता है, इसलिए नए scroll होकर आने वाले एलिमेंट भी प्रोसेस हों, इसके लिए timer से कोड बार-बार चलाया गया
- प्लेबैक टाइम बैज की class
- इस्तेमाल का तरीका यह था कि iCloud पेज पर JavaScript console खोलकर पूरा gist paste किया जाए
- नतीजतन 20 सेकंड से लंबे वीडियो लाल बॉक्स से चिह्नित हो गए, जिससे कई बड़े वीडियो चुनना, डाउनलोड करना और फिर हटाना आसान हो गया
हटाने के बाद स्टोरेज में बदलाव और दो प्रयोग
- स्क्रिप्ट से iCloud वीडियो में 30 सेकंड से लंबे सभी आइटम हटाने पर, डाउनलोड किए गए वीडियो लगभग 7GB थे, लेकिन iCloud स्टोरेज लगभग 55GB कम हो गया
- डाउनलोड किए गए पूरे वीडियो डिस्क पर 8GB लेते थे
- iCloud उपयोग 199GB से घटकर 143GB हो गया
- पहले प्रयोग में, ज़्यादा motion वाले 4K वीडियो अपलोड करके iCloud स्टोरेज की प्रतिक्रिया देखी गई
- अपलोड की गई फ़ाइल का साइज़ 281MB था
- अपलोड के बाद iCloud उपयोग 145.33GB था
- डाउनलोड करके हटाने के बाद भी फ़ाइल 281MB ही रही
- हटाने के बाद iCloud उपयोग 145.6GB दिखा, यानी दिखाए गए मान में अंतर लगभग 270MB के स्तर का था
- दूसरे प्रयोग में, पुराने वीडियो में से ऐसा छोटा वीडियो चुना गया जिसे iCloud बड़ा फ़ाइल मानकर दिखा रहा था
- iCloud उस वीडियो को 128MB दिखा रहा था
- डाउनलोड की गई फ़ाइल 47MB थी
- हटाने से पहले iCloud उपयोग 145.29GB था, और हटाने के बाद 145.12GB, यानी लगभग 170MB की कमी
- लगभग 7GB की फ़ाइलें हटाने से 7 गुना से भी ज़्यादा स्टोरेज खाली हुआ, और ऐसा लगा कि पुराने बड़े वीडियो iCloud में वास्तविक फ़ाइल से ज़्यादा स्टोरेज उपयोग रखते हैं
- कारण की पुष्टि नहीं हो सकी, लेकिन नतीजतन 50GB से ज़्यादा iCloud स्टोरेज खाली हुआ और वही काम दोबारा करने के लिए एक छोटा JavaScript स्क्रिप्ट भी बच गया
1 टिप्पणियां
Hacker News की राय
Photos.app में फ़ाइल साइज नहीं दिखता, इसलिए सोचा था कि कोई Photos.app extension या अलग app बनाऊँ जो बड़ी फ़ाइलें ढूँढ दे
लेकिन API शायद “फ़ाइल साइज” expose नहीं करता था, और कम से कम कोई आसान तरीका नहीं मिला
मेरे हिसाब से “फोटो” या “वीडियो” underlying “photo or video object” दिखाने वाले view जैसे हैं। वीडियो trim करने पर भी पूरा original वीडियो बचा रहता है, और export करने पर ही trimmed छोटी फ़ाइल का साइज सच में बनता लगता है
इसलिए फ़ाइल साइज अलग दिखता होगा। साथ ही किसी ने फ़ाइल साइज query करने वाला AppleScript बनाया है: https://discussions.apple.com/docs/DOC-250000422
“फ़ाइल साइज” किस API में ढूँढ रहे थे, यह जानने की उत्सुकता है
PhotoKit API से Photos.app में size data मिल पाया था: https://alexwlchan.net/2023/finding-big-photos/
मैंने सिर्फ़ अपनी लगभग 26 हजार items वाली library पर test किया, लेकिन सबसे बड़े items ढूँढने के metric के तौर पर उपयोगी था। हालांकि 1GB वीडियो export करने पर iCloud usage 1GB घटता है या नहीं, यह verify नहीं किया
इसलिए library में एक thumbnail जैसा दिखने वाला अभी-अभी import किया गया photo असल में 5MB भी हो सकता है, 50MB भी
इससे यह भी समझ आता है कि iPhone storage इतना compulsively manage करने पर भी हमेशा limit के करीब क्यों रहता है
osxphotos query --min-size 100MB --add-to-album "Big Files"100MB से बड़े सभी photos और videos ढूँढकर “Big files” album में add करता है
अधिक जानकारी के लिए
osxphotos query --helpदेखें, और browser में docs खोलने के लिएosxphotos docsदेखें। संदर्भ के लिए, यह मेरा बनाया हुआ टूल हैयह bug हो सकता है, लेकिन कुछ cases में संभव है कि iCloud एक ही फ़ाइल के कई versions चुपचाप store कर रहा हो। Apple दूसरे media files के साथ भी ऐसा मिलता-जुलता काम करता है
आख़िरी example दिलचस्प है:
“iCloud कहता है कि वीडियो 128MB का है, लेकिन download करने पर actual वीडियो 48MB था, और delete करने पर free space लगभग 170MB बढ़ गया”
यह इस तरफ़ इशारा करता है कि iCloud सिर्फ़ example file size गलत नहीं दिखा रहा। 128MB file हटाने पर iCloud space भी लगभग 128MB ही खाली होना चाहिए था, लेकिन असल में displayed size 128MB और downloaded version 48MB के योग 176MB के करीब space खाली हुआ। अगर iCloud free space को 10MB units में round करके दिखाता है, तो यह काफ़ी match करता दिखता है
अंततः storage किसी service से और ज़्यादा बँधता जाता है, और total storage के आधार पर recurring payment करते हैं, लेकिन उस storage को optimize कैसे करें इसकी जानकारी लगभग नहीं होती। fixed cost slab में रहना चाहने या storage/cost ratio घटाना चाहने वाले consumer के नज़रिए से लगता है कि बस हाथ पर हाथ धरे रहें और और पैसे देते रहें?
tech industry की modern business strategy complexity के पीछे छिपना है। Costs इतने complex हैं कि समझना मुश्किल है, और कह दिया जाता है कि internal information competitors को बहुत ज़्यादा expose हो जाएगी। लेकिन जब देखना होता है कि company cost से ऊपर operate कर रही है या नहीं, तो ऐसे metrics किसी तरह निकाल ही लेते हैं। Consumer समझना चाहे तो अचानक सब बहुत complex हो जाता है
समस्या यह है कि technology अक्सर सचमुच इतनी complex scale तक बढ़ जाती है, और management भी यह जानता है, इसलिए यह काफ़ी प्रभावी बहाना बन जाता है। और सुविधाजनक रूप से वे ठीक उसी जगह investment focus करते हैं और margin जोड़ते हैं
trimmed file iCloud के दिखाए size से छोटी थी, लेकिन unmodified original download करने का option चुनने पर size iCloud के displayed size से match हुआ
इसलिए photo को iCloud में sync करते समय सिर्फ़ individual file sync नहीं होती, बल्कि Photos app द्वारा manage किया गया “Photos Library” container sync होता है
Finder या Files app में individual file सीधे add करें तो iCloud और local file system में size ठीक-ठीक match करता है
hard disk या USB stick खरीदें तो एक तय GB अपनी मर्ज़ी से इस्तेमाल कर सकते हैं। 1GB file डालें तो free space 1GB घटता है। file system के हिसाब से metadata के कुछ KB खो सकते हैं, लेकिन file system चुनना user के हाथ में है और storage device उसे force नहीं करता
NAND controller ने block mapping table store करने के लिए overprovisioning area के कुछ MB इस्तेमाल किए हों, या सुविधा के लिए data duplicate store किया हो, तब भी user से उस overprovisioning area का पैसा नहीं लिया जाता
यहाँ HTTP से access होने वाला storage device बेचते हुए, 1GB file लिखने पर वे अपनी सुविधा के लिए replication/conversion आदि करते हैं और user ने जिस duplicate copy को request नहीं किया, उसके storage cost तक charge करते हैं। यह नया और unexpected है
इस आइडिया/solution को TamperMonkey/Greasemonkey script में बदल दिया
criteria से मेल न खाने वाले सभी elements को “hide” करने वाला feature भी जोड़ दिया
https://github.com/seffignoz/icloudcleanup
मेरे self-hosting करने की एक वजह यही है। cloud providers की clarity और transparency पर भरोसा नहीं है। भले ही self-hosted solutions कहीं कम stable, कम secure और कम performant हों, शायद मैं फिर भी switch नहीं करूंगा
मैं personally immich इस्तेमाल करता हूं। iOS/Android apps, server components और sync/backup options वाला काफी complete solution है
https://immich.app/
Google ऐसा करता है। https://one.google.com/storage और https://photos.google.com/quotamanagement देखें—ये delete करने लायक items ढूंढने में अच्छी मदद करते हैं, और अंत में structure ऐसा है कि delete करते-करते थककर आप ज्यादा storage खरीद लें
मेरी समझ में iCloud full-quality originals store करता है, और फोन पर lower-quality optimized versions download करता है
iPhone settings में
Apple ID > iCloud > Photosपर जाएं तो “Optimise iPhone Storage” option होता है, जो default रूप से on रहता हैइस option के description में लिखा है कि अगर phone में space कम हो, तो full-resolution photos और videos अपने-आप छोटे device versions से replace हो जाते हैं, और full-resolution versions कभी भी iCloud से download किए जा सकते हैं
यह काफी reasonable लगता है
यह Settings > Manage storage में दिखने वाले phone storage के बारे में है, cloud storage से इसका संबंध नहीं है
दिलचस्प लेख है। मुझे भी इसी तरह की problem की वजह से अपना iCloud plan upgrade करना पड़ा था, इसलिए Apple के लिए इसे fix करना शायद high priority न हो
RAW+JPEG में shoot करने पर Apple Photos दोनों images को bundle कर देता है। photo enthusiasts के लिए यह कोई बहुत rare तरीका नहीं है, और library में duplicate-जैसी photos भरने के बजाय RAW और JPEG के बीच आसानी से switch कर पाना उपयोगी है
लेकिन इस pairing method और लेख में बताए file system design की वजह से, दोनों को आसानी से अलग करके सिर्फ RAW delete करना असंभव-सा लगता है। कई साल बाद अब विशाल RAW files बची हैं जिन्हें मैं कभी छूने वाला नहीं, लेकिन बहुत छोटी JPEG files रखना चाहता हूं, इसलिए delete नहीं कर सकता
originals export करके library से delete करना और फिर सिर्फ JPEGs वापस import करना सबसे आसान लगता है, लेकिन ऐसा करने पर library में वर्षों से जमा metadata खो जाएगा
इसलिए plan upgrade करना ही पड़ता है
अगर face recognition जैसी extra features की बात है, तो JPEG को वापस import करने के बाद app उसे फिर process नहीं करता क्या?
osxphotos export /path/to/export --has-raw --skip-raw --exiftoolRAW pair वाली सभी images export करता है लेकिन RAW component skip करता है, और exiftool(https://exiftool.org/) का इस्तेमाल करके keywords जैसे metadata को exported JPEG files में लिखता है। बाद में इन्हें Photos में drag करके या
osxphotos import /path/to/export/*चलाकर वापस import किया जा सकता हैexport और import commands में export directory आदि control करने के लिए और भी कई options हैं।
osxphotos help exportदेखें, या browser में docs खोलने के लिएosxphotos docsइस्तेमाल करें। बता दूं, मैं osxphotos का author हूंFile/Export Unmodified Originals चलाने पर RAW+HEIC और metadata वाली अलग sidecar file export होती लगती है। फिर RAW file को अलग हटा दें और HEIC file import करें तो कहा जाता है कि sidecar metadata file भी automatically import हो जाती है
हालांकि edits खो जाते हैं। फिर भी somehow “copy edits” संभव लगता है। technical व्यक्ति हो तो AppleScript से इस process को automate कर सकता है
लेकिन यह बेवजह झंझट है और Photos.app में built-in feature होना चाहिए। यह ज्यादा महंगे iCloud plan की ओर धकेलने में मदद करता है, इसलिए साफ लगता है कि इसकी priority low है
हैरानी की बात है कि छुट्टियों से पहले Apple से मुझे भी ऐसा ही storage notification मिला था, और iCloud पर रखने के बजाय मैंने सभी photos/videos अपने media server पर डाउनलोड करने का फैसला किया
iCloud से archive डाउनलोड करने का कोई आसान और सहज तरीका नहीं है। कई machines और devices इस्तेमाल करके धीरे-धीरे कर रहा हूँ
हाल में Apple के बदलावों की समस्या यह है कि वे बिना किसी खास वजह के कीमत बढ़ा देते हैं। हम लगातार photos और videos लेते रहेंगे, और नई technology और features की वजह से file size भी लगातार बढ़ना ही है
Google Takeout की तरह काम करता है। Mac, iPhone, iPad, PC पर appleid.apple.com के Apple ID account page में login करें, “Data & Privacy” पर जाएँ और “Manage Your Data and Privacy” चुनें
अगले page में “Get a copy of your data” पर जाकर “Get started” चुनना होता है
https://github.com/icloud-photos-downloader/icloud_photos_downloader
जरूरत हो तो iCloud से photos डाउनलोड भी कर सकता है और format conversion भी कर सकता है। हर कुछ दिनों में नए photos NAS पर भेजता हूँ ताकि local copy हमेशा बनी रहे, और ये copies हर रात Backblaze B2 पर भी backup होती हैं
format conversion की वजह से photos को HEIC+JPG pair के रूप में रख सकता हूँ, जिससे original और ज्यादा आसानी से इस्तेमाल होने वाला version दोनों मिल जाते हैं
सच में जो चाहिए, वह iCloud Drive के लिए भी यही काम करने वाला tool है। वहाँ कई चीजें रखता हूँ, लेकिन उन्हें reasonable तरीके से backup करने का तरीका नहीं है, इसलिए चिंता रहती है। Apple का सुझाया तरीका(https://support.apple.com/en-us/HT204055) काफी निराशाजनक है
सबसे खराब बात 200GB से सीधे 2TB पर जाने वाला अजीब plan tier है। कई परिवारों के लिए ठीक बैठने वाले 500GB या 1TB को incremental रूप से pay करने का कोई तरीका नहीं है
storage जब commodity बन चुका है, तो used GB के हिसाब से charge होना चाहिए
मेरे iCloud storage का बड़ा हिस्सा photos के “live” video versions खाते हैं। बहुत छोटे motion clip के साथ वाली photo, file size में काफी बड़ी हो जाती है
अब तक जो तरीका मिला है वह बस यही है: files local में download करो, iCloud से delete करो, फिर local video हटाकर बची हुई still images ही upload करो
इसमें बहुत समय लगता है, तरीका भद्दा है, और process के दौरान कुछ delete हो जाने या कोई जरूरी चीज खो जाने का डर रहता है
सोचता हूँ कि क्या कोई ऐसा tool है जो इस process को automate करे और साथ ही कुछ editing control भी दे, ताकि जिन थोड़ी-सी “live” images को सच में रखना है उन्हें पहचानकर बचाया जा सके
क्या मैंने ठीक पढ़ा?
अगर यह व्यापक घटना है, तो क्या इसे Apple द्वारा upgrade के लिए push करने के मकसद से numbers inflate करना माना जा सकता है, और क्या इससे lawsuit तक बात जा सकती है?
मैं legal expert नहीं हूँ
जब photo या video जोड़ी जाती है, तो Photos app उसका analysis करता है, और edit history समेत app के काम करने के लिए जरूरी कई metadata save करता है। आखिर में यही iCloud से sync होता है
संभव है Apple अभी भी iCloud में पुराना file system format इस्तेमाल कर रहा हो। यह काफी पहले आया था और शायद उन्होंने storage format बदलने पर ध्यान नहीं दिया। पुराने accounts की images/videos “पुरानी” drives पर होने की संभावना भी है