4 poin oleh GN⁺ 2024-01-06 | 1 komentar | Bagikan ke WhatsApp
  • Ketika kapasitas penyimpanan iCloud mendekati batas 200GB dan foto saja memakan sekitar 127GB, saya mencoba jalan memutar dengan mencari dan menghapus video besar sendiri alih-alih upgrade ke 1TB
  • Apple Photos dan web iCloud tidak memiliki pengurutan berdasarkan ukuran file, dan aplikasi terpisah pun menampilkan foto yang di-offload ke iCloud seolah-olah 0B, sehingga sulit dipakai sebagai acuan untuk merapikan
  • Dengan memanfaatkan fakta bahwa badge durasi pemutaran video di web iCloud Photos adalah elemen HTML video-text-badge, saya menandai video panjang dengan bingkai merah menggunakan JavaScript
  • Setelah mengunduh dan menghapus video berdurasi lebih dari 30 detik, file yang diunduh hanya sekitar 7GB, tetapi penyimpanan iCloud berkurang sekitar 55GB, selisih yang tidak terduga
  • Untuk video 4K baru, ukuran file dan perubahan yang ditampilkan iCloud hampir sesuai, tetapi video lama dihitung lebih besar di iCloud daripada file aslinya, sehingga video lama berukuran besar bisa menjadi prioritas untuk dirapikan

Memilah video panjang di web iCloud

  • Setelah peringatan penyimpanan dari Apple, menaikkan paket dari 200GB ke 1TB akan membuat biaya melonjak lebih dari 3 kali lipat, jadi saya mulai mencari alternatif
  • Sebagian besar penyimpanan adalah foto dan memakan sekitar 127GB, tetapi Apple Photos dan browser iCloud tidak memiliki fitur untuk mengurutkan foto berdasarkan ukuran file
  • Aplikasi yang menampilkan foto duplikat atau ukuran file video pun menampilkan foto yang di-offload ke iCloud seolah-olah 0B, sehingga tidak banyak membantu untuk merapikan secara nyata
  • Setelah membuka Photos -> Media Types -> Videos di situs iCloud, saya memperkecil tampilan layar semaksimal mungkin agar banyak video terlihat sekaligus
  • Jika badge durasi tiap video adalah elemen HTML, saya menganggapnya bisa dicari dan difilter dengan JavaScript, lalu menulis kode untuk menyorot video panjang
    • Kelas badge durasi pemutaran adalah video-text-badge
    • Kode mencari badge di dalam halaman, mengurutkannya berdasarkan durasi pemutaran, lalu menyorot item yang melewati ambang tertentu
    • Karena iCloud hanya memuat elemen yang tampil di layar, kode dijalankan berulang dengan timer agar elemen baru yang masuk saat discroll juga ikut diproses
  • Cara menggunakannya adalah membuka konsol JavaScript di halaman iCloud lalu menempelkan seluruh gist
  • Hasilnya, video yang lebih panjang dari 20 detik ditandai dengan kotak merah, sehingga lebih mudah memilih beberapa video besar, mengunduhnya, lalu menghapusnya

Perubahan penyimpanan setelah penghapusan dan dua eksperimen

  • Saat semua video iCloud yang berdurasi lebih dari 30 detik dihapus dengan skrip, video yang diunduh sekitar 7GB, tetapi penyimpanan iCloud berkurang sekitar 55GB
    • Total video yang diunduh memakan 8GB di disk
    • Penggunaan iCloud turun dari 199GB menjadi 143GB
  • Pada eksperimen pertama, saya mengunggah video 4K dengan banyak gerakan untuk melihat respons penyimpanan iCloud
    • Ukuran file yang diunggah adalah 281MB
    • Setelah diunggah, penggunaan iCloud adalah 145,33GB
    • Setelah diunduh dan dihapus, filenya tetap 281MB
    • Setelah dihapus, penggunaan iCloud ditampilkan sebagai 145,6GB, sehingga selisih nilai yang ditampilkan sekitar 270MB
  • Pada eksperimen kedua, saya memilih video pendek lama yang ditampilkan iCloud sebagai file besar untuk diperiksa
    • iCloud menampilkan video tersebut sebagai 128MB
    • File yang diunduh berukuran 47MB
    • Penggunaan iCloud sebelum penghapusan adalah 145,29GB, dan setelah penghapusan 145,12GB, turun sekitar 170MB
  • Dengan menghapus file sekitar 7GB, ruang penyimpanan yang terbebas lebih dari 7 kali lipat, dan video lama berukuran besar tampaknya memiliki jejak penyimpanan di iCloud yang lebih besar daripada file aslinya
  • Penyebabnya tidak terkonfirmasi, tetapi pada akhirnya saya berhasil mengosongkan lebih dari 50GB penyimpanan iCloud dan menyisakan skrip JavaScript kecil yang bisa dipakai lagi untuk pekerjaan serupa

1 komentar

 
GN⁺ 2024-01-06
Pendapat di Hacker News
  • Karena Photos.app tidak menampilkan ukuran file, saya sempat berpikir untuk membuat ekstensi Photos.app atau aplikasi terpisah yang bisa menemukan file besar
    Namun API-nya tampaknya tidak mengekspos “ukuran file”, dan setidaknya saya tidak menemukan cara yang sederhana
    Saya melihat “foto” atau “video” lebih sebagai view yang menampilkan underlying “photo or video object”. Kalau video dipotong, seluruh video asli tetap ada, dan sepertinya ukuran file yang lebih kecil dari hasil potongan baru benar-benar muncul setelah diekspor
    Jadi mungkin itu sebabnya ukuran file terlihat berbeda. Selain itu, katanya ada seseorang yang membuat AppleScript untuk mengecek ukuran file: https://discussions.apple.com/docs/DOC-250000422

    • Benar, aplikasi Photos mempertahankan file asli yang belum dimodifikasi dan menyimpan informasi edit/pemotongan secara terpisah. Karena kapan saja bisa dikembalikan ke versi asli dan diedit lagi, bisa saja ada beberapa salinan gambar yang sama sebelum dan sesudah diedit
      Saya penasaran, di API mana Anda mencari “ukuran file” itu
      Dengan API PhotoKit, data ukuran dari Photos.app bisa diambil: https://alexwlchan.net/2023/finding-big-photos/
      Saya hanya mengujinya pada library saya yang berisi sekitar 26 ribu item, tetapi cukup berguna sebagai metrik untuk menemukan item terbesar. Namun saya belum memastikan apakah mengekspor video 1GB akan mengurangi penggunaan iCloud sebesar 1GB
    • Selain itu, meski saya belum melihatnya secara detail, ketika mengimpor foto RAW+JPG, “asli” bisa ditetapkan ke salah satu dari keduanya. Kalau tidak memeriksa menu, Anda bisa mengimpor dan mengedit tanpa tahu mana yang sedang dipakai
      Jadi foto yang baru saja diimpor dan terlihat sebagai satu thumbnail di library sebenarnya bisa berukuran 5MB atau 50MB
    • Kalau bersedia menulis kode, saya penasaran apakah Anda sudah memeriksa database internal-nya. Terakhir saya lihat, itu hanya sqlite, dan dengan melihat sekilas pun cukup bisa dipahami
    • Ini penjelasan paling masuk akal untuk alasan ukuran file berubah. Saya juga pernah melihat pemulihan media yang tidak saya duga. Saya kira saya sudah memotong atau mengedit video, tetapi ternyata video itu tetap tersimpan dengan durasi dan resolusi penuh
      Ini juga menjelaskan mengapa penyimpanan iPhone selalu hampir penuh meskipun dikelola dengan begitu obsesif
    • Bisa dilakukan dengan https://github.com/RhetTbull/osxphotos:
      osxphotos query --min-size 100MB --add-to-album "Big Files"
      Perintah ini menemukan semua foto dan video yang lebih besar dari 100MB dan menambahkannya ke album “Big files”
      Untuk detailnya, lihat osxphotos query --help; untuk membuka dokumentasi di browser, lihat osxphotos docs. Sebagai catatan, saya yang membuat alat ini
  • Bisa saja ini bug, tetapi dalam beberapa kasus ada kemungkinan iCloud diam-diam menyimpan beberapa versi dari file yang sama. Apple juga melakukan hal serupa pada file media lain
    Contoh terakhir menarik:
    “iCloud mengatakan videonya 128MB, tetapi ketika diunduh, video sebenarnya 48MB, dan saat dihapus, ruang kosong bertambah sekitar 170MB”
    Ini mengisyaratkan bahwa iCloud bukan sekadar salah menampilkan ukuran file contoh. Kalau file 128MB dihapus, ruang iCloud seharusnya hanya bertambah sekitar 128MB, tetapi kenyataannya ruang yang kosong mendekati 176MB, yaitu gabungan ukuran yang ditampilkan 128MB dan versi yang diunduh 48MB. Jika iCloud menampilkan ruang kosong dengan pembulatan per 10MB, ini terlihat cukup masuk akal

    • Backup diferensial atau semacam versioning tampak sebagai salah satu penyebab yang paling obvious. Penyimpanan duplikat penuh untuk preservasi file juga mungkin. Masalahnya, semua ini benar-benar tidak transparan
      Pada akhirnya, kita semakin terikat pada suatu layanan penyimpanan, membayar langganan berkala berdasarkan total kapasitas, tetapi hampir tidak punya informasi tentang cara mengoptimalkan penyimpanan itu. Dari sudut pandang konsumen yang ingin tetap berada di tier biaya tetap atau menurunkan rasio penyimpanan/biaya, rasanya seperti hanya bisa pasrah dan terus membayar lebih
      Strategi bisnis modern industri teknologi adalah bersembunyi di balik kompleksitas. Biayanya terlalu rumit untuk dipahami, atau terlalu banyak mengungkap informasi internal kepada pesaing, dan semacamnya. Namun ketika harus memastikan apakah perusahaan beroperasi di atas biaya, metrik seperti itu entah bagaimana tetap bisa dihitung. Saat konsumen mencoba memahaminya, tiba-tiba semuanya menjadi terlalu rumit
      Masalahnya, teknologi memang sering berkembang sampai skala yang benar-benar terlalu kompleks, dan para eksekutif juga tahu ini, sehingga itu menjadi alasan yang cukup efektif. Dan secara praktis, justru di titik itulah investasi dipusatkan dan margin ditambahkan
    • Di iPhone, pengeditan foto dan video hanyalah metadata, sementara file asli tetap dipertahankan. Saya baru saja merekam video, memotongnya menjadi setengah, lalu mengunduh file dari iCloud untuk mengujinya
      File yang dipotong lebih kecil daripada ukuran yang ditampilkan iCloud, tetapi ketika saya memilih untuk mengunduh versi asli yang belum dimodifikasi, ukurannya cocok dengan ukuran yang ditampilkan iCloud
    • Akar kebingungannya juga karena foto dan video di Photos Library bukan sekadar file yang disalin ke penyimpanan. Photos juga menyimpan metadata untuk edit, hasil render, thumbnail, dan berbagai data yang dibutuhkan fitur aplikasi
      Jadi ketika foto disinkronkan ke iCloud, yang disinkronkan bukan hanya file individual, melainkan kontainer “Photos Library” yang dikelola aplikasi Photos
      Jika file individual ditambahkan langsung lewat Finder atau aplikasi Files, ukurannya di iCloud dan sistem file lokal cocok secara akurat
    • Mungkin memang begitu kenyataannya, tetapi itu tidak membuatnya bebas dari tanggung jawab
      Kalau membeli hard disk atau USB stick, kita bisa memakai sejumlah GB tertentu sesuka kita. Jika memasukkan file 1GB, ruang kosong berkurang 1GB. Tergantung sistem file, mungkin ada beberapa KB metadata yang hilang, tetapi pilihan sistem file ada pada pengguna dan tidak dipaksakan oleh perangkat penyimpanan
      Kalaupun controller NAND memakai beberapa MB area overprovisioning untuk menyimpan tabel pemetaan blok, atau menyimpan data secara duplikat demi kemudahan, pengguna tidak ditagih untuk biaya area overprovisioning itu
      Di sini mereka menjual perangkat penyimpanan yang diakses lewat HTTP, lalu ketika pengguna menulis file 1GB, mereka mereplikasi/mengonversinya demi kenyamanan mereka sendiri dan menagih pengguna juga untuk biaya penyimpanan salinan yang tidak diminta itu. Ini baru dan tidak terduga
  • Ide/solusi ini diubah menjadi skrip TamperMonkey/Greasemonkey
    Juga menambahkan fitur untuk “menyembunyikan” semua elemen yang tidak sesuai kriteria
    https://github.com/seffignoz/icloudcleanup

  • Ini salah satu alasan saya melakukan self-hosting. Saya tidak percaya pada kejelasan dan transparansi penyedia cloud. Meskipun solusi self-hosting jauh kurang stabil, kurang aman, dan performanya lebih rendah, saya mungkin tidak akan beralih
    Secara pribadi saya memakai immich. Ini solusi yang cukup matang, dengan aplikasi iOS/Android, komponen server, serta opsi sinkronisasi/backup
    https://immich.app/

    • Sepertinya Apple belum menyadari betapa bagusnya UI manajemen kuota sebagai peluang penjualan. Tidak ada posisi yang lebih baik untuk menjual kapasitas penyimpanan tambahan
      Google melakukannya. Kalau melihat https://one.google.com/storage dan https://photos.google.com/quotamanagement, strukturnya membantu pengguna menemukan item yang bisa dihapus, lalu pada akhirnya membuat mereka lelah menghapus dan membeli penyimpanan tambahan
    • Kelihatannya menarik, tetapi melihat peringatan di bagian atas, sepertinya perlu menunggu sampai lebih stabil
  • Sepengetahuan saya, iCloud menyimpan orisinal berkualitas penuh, lalu mengunduh versi teroptimasi dengan kualitas lebih rendah ke ponsel
    Di pengaturan iPhone, jika masuk ke Apple ID > iCloud > Photos, ada opsi “Optimise iPhone Storage” yang aktif secara default
    Deskripsi opsi ini mengatakan bahwa jika ruang di ponsel menipis, foto dan video resolusi penuh akan otomatis diganti dengan versi yang lebih kecil untuk perangkat, dan versi resolusi penuh dapat diunduh kapan saja dari iCloud
    Ini terlihat cukup masuk akal

    • Namun unduhan tetap harus mengembalikan file orisinal, jadi ini tidak bisa dipakai untuk menjelaskan perbedaan ukuran penyimpanan
    • Ini tidak menjelaskan kasus saat penulis mengunggah file baru lalu mengunduhnya kembali dan perbedaan ukuran filenya tidak besar. Tampaknya perbedaan ukuran file hanya terjadi pada file video lama
    • Ini tidak relevan
      Ini tentang penyimpanan ponsel yang bisa dilihat di Settings > Manage storage, dan tidak ada kaitannya dengan penyimpanan cloud
  • Tulisan yang menarik. Saya juga harus menaikkan paket iCloud karena masalah serupa, jadi dari sisi Apple mungkin prioritas untuk memperbaikinya tidak tinggi
    Jika memotret dalam RAW+JPEG, Apple Photos mengelompokkan kedua gambar itu. Ini juga bukan cara yang sangat jarang di kalangan penggemar fotografi, dan berguna karena kita bisa dengan mudah beralih antara RAW dan JPEG tanpa menumpuk banyak foto yang mirip duplikat di library
    Namun karena cara penggabungan ini dan desain sistem file yang dijelaskan dalam tulisan, tampaknya tidak mungkin memisahkan keduanya dengan mudah lalu hanya menghapus RAW. Setelah bertahun-tahun, ada file RAW berukuran besar yang tidak akan pernah saya sentuh lagi, tetapi saya tidak bisa menghapusnya karena ingin tetap menyimpan JPEG yang jauh lebih kecil
    Cara paling mudah tampaknya mengekspor orisinalnya, menghapusnya dari library, lalu mengimpor kembali hanya JPEG, tetapi dengan begitu metadata bertahun-tahun yang sudah terkumpul di library akan hilang
    Jadi saya tidak punya pilihan selain menaikkan paket

    • Mungkin ini pertanyaan bodoh, tetapi apakah metadata tidak bisa diekspor lalu diimpor kembali? Saya penasaran apakah ada metadata lain selain data EXIF, atau apakah Apple memang tidak mengekspor semuanya
      Kalau yang dimaksud fitur tambahan seperti pengenalan wajah, bukankah setelah JPEG diimpor kembali aplikasinya akan memprosesnya lagi?
    • Tool open-source osxphotos(https://github.com/RhetTbull/osxphotos) bisa membantu. Dengan utilitas pihak ketiga exiftool, Anda bisa mengekspor gambar JPEG sambil mempertahankan metadata:
      osxphotos export /path/to/export --has-raw --skip-raw --exiftool
      Ini mengekspor semua gambar yang memiliki pasangan RAW, tetapi melewati komponen RAW, lalu menggunakan exiftool(https://exiftool.org/) untuk menulis metadata seperti keyword ke file JPEG yang diekspor. Setelah itu, Anda bisa mengimpornya kembali dengan menyeretnya ke Photos atau menjalankan osxphotos import /path/to/export/*
      Perintah export dan import juga punya banyak opsi lain untuk mengontrol direktori ekspor dan sebagainya. Gunakan osxphotos help export, atau osxphotos docs untuk membuka dokumentasi di browser. Sebagai catatan, saya adalah pembuat osxphotos
    • Situasi saya tidak persis sama sekarang, tetapi karena saya penggemar fotografi, rasanya pada akhirnya saya juga akan mengalaminya, jadi saya mencari tahu
      Kalau menjalankan File/Export Unmodified Originals, tampaknya RAW+HEIC dan file sidecar terpisah berisi metadata akan diekspor. Setelah itu, jika file RAW disisihkan dan file HEIC diimpor, katanya file metadata sidecar juga otomatis ikut diimpor
      Namun hasil edit akan hilang. Meski begitu, somehow sepertinya “copy edits” bisa dilakukan. Orang yang cukup teknis mungkin bisa mengotomatiskan proses ini dengan AppleScript
      Tetapi ini merepotkan tanpa perlu, dan seharusnya menjadi fitur bawaan di Photos.app. Karena membantu mendorong pengguna ke paket iCloud yang lebih tinggi, jelas prioritasnya rendah
    • Saya juga sedang berada di situasi yang sama dan belum mulai mengerjakan proses merepotkan ini. Saya jelas sedang mencari solusi
  • Anehnya, sebelum liburan saya menerima notifikasi penyimpanan serupa dari Apple, dan memutuskan untuk mengunduh semua foto/video ke server media saya alih-alih menyimpannya di iCloud
    Tidak ada cara yang mudah dan intuitif untuk mengunduh arsip dari iCloud. Saya sedang melakukannya perlahan dengan beberapa mesin dan perangkat
    Masalah dari perubahan Apple belakangan ini adalah mereka menaikkan harga tanpa alasan jelas. Kita akan terus mengambil foto dan video, dan karena teknologi serta fitur terbaru, ukuran file mau tidak mau akan terus membesar

    • Ada cara mudah untuk mengambil data. Hanya saja agak tersembunyi
      Cara kerjanya mirip Google Takeout. Di Mac, iPhone, iPad, atau PC, masuk ke halaman akun Apple ID di appleid.apple.com, buka “Data & Privacy”, lalu pilih “Manage Your Data and Privacy”
      Di halaman berikutnya, buka “Get a copy of your data” lalu pilih “Get started”
    • Alat yang akan mengubah hidup:
      https://github.com/icloud-photos-downloader/icloud_photos_downloader
    • Saya menyalin foto iPhone ke NAS dengan PhotoSync(https://www.photosync-app.com/home). Program yang hebat
      Jika perlu, ia juga bisa mengunduh foto dari iCloud dan mengonversi format. Setiap beberapa hari saya mengirim foto baru ke NAS agar selalu punya salinan lokal, dan salinan ini juga dicadangkan ke Backblaze B2 setiap malam
      Berkat konversi format, saya bisa menyimpan foto sebagai pasangan HEIC+JPG, sehingga punya versi asli sekaligus versi yang lebih mudah digunakan
      Yang benar-benar saya inginkan adalah alat yang melakukan hal yang sama untuk iCloud Drive. Saya menyimpan berbagai materi di sana, dan karena tidak ada cara yang masuk akal untuk mencadangkannya, ini cukup mengganggu. Metode yang disarankan Apple(https://support.apple.com/en-us/HT204055) masih jauh dari memuaskan
    • Kalau punya MacOS, bagaimana dengan aplikasi Photos? Saya menyimpan salinan lokal iCloud Photo Library dan menyinkronkannya dengan aplikasi MacOS Photos
  • Yang paling saya benci adalah tingkatan paket aneh yang meloncat dari 200GB ke 2TB. Tidak ada cara membayar bertahap untuk 500GB atau 1TB, yang akan pas untuk banyak keluarga
    Di era ketika penyimpanan sudah menjadi komoditas umum, seharusnya biaya dikenakan per GB yang digunakan

    • Dengan begitu mereka bisa mensubsidi tingkatan gratis
    • Jika perlu, bisa menambahkan kelipatan 50GB sebanyak yang diinginkan ke paket 200GB
  • Yang paling banyak memakan ruang iCloud saya adalah versi video “live” dari foto. Ukuran filenya lebih besar daripada foto yang hanya disertai potongan gerakan yang sangat singkat
    Satu-satunya cara penanganan yang saya temukan sejauh ini adalah mengunduh file secara lokal, menghapusnya dari iCloud, lalu menghapus video lokal dan mengunggah ulang hanya gambar diam yang tersisa
    Prosesnya lama dan kasar, dan selama proses itu saya khawatir akan menghapus sesuatu atau kehilangan hal penting
    Saya penasaran apakah ada alat yang mengotomatiskan proses ini sambil memberi sedikit kontrol penyuntingan untuk mengidentifikasi dan mempertahankan segelintir gambar “live” yang memang ingin disimpan

  • Apakah saya membacanya dengan benar?
    Jika ini fenomena yang luas, bukankah bisa dianggap Apple menggelembungkan angka untuk mendorong upgrade, dan mungkin berujung pada gugatan?
    Saya bukan ahli hukum

    • Tulisan asli tidak mempertimbangkan bahwa menambahkan media ke Photos bukan sekadar “menyalin lalu menyimpan file”. Aplikasi Photos, seperti aplikasi lain, punya format file Photos Library sendiri
      Saat foto atau video ditambahkan, aplikasi Photos menganalisisnya dan menyimpan berbagai metadata yang diperlukan agar aplikasi bekerja, termasuk riwayat penyuntingan. Pada akhirnya ini disinkronkan ke iCloud
    • Jika foto/video diedit di tempat tanpa menyimpannya sebagai file baru, iOS mempertahankan file asli untuk undo atau revert. File asli itu tidak ditampilkan di Photos maupun galeri iCloud. Itu bisa jadi alasannya
    • Saya juga membaca tulisan ini seperti itu. Sepertinya bisa dicek apakah ada perbedaan yang jelas dengan mengunduh sejumlah file dari satu penyimpanan cloud lalu mengunggahnya ke cloud lain
      Apple mungkin masih menggunakan format sistem file lama di iCloud. iCloud sudah cukup lama ada, dan mungkin mereka tidak terlalu memperhatikan perubahan format penyimpanan. Ada juga kemungkinan gambar/video dari akun lama berada di drive yang “lama”