4 puntos por GN⁺ 2024-01-06 | 1 comentarios | Compartir por WhatsApp
  • Cuando el almacenamiento de iCloud se acercó al límite de 200 GB y solo las fotos ocupaban unos 127 GB, intenté una solución alterna a subir al plan de 1 TB: buscar y borrar manualmente los videos grandes
  • Ni Apple Photos ni la web de iCloud tienen orden por tamaño de archivo, y las apps de terceros también mostraban como 0 B las fotos descargadas solo a demanda desde iCloud, así que era difícil usarlas como criterio de limpieza
  • Aprovechando que la insignia de duración de los videos en iCloud Photos web es un elemento HTML video-text-badge, usé JavaScript para encontrar videos largos y marcarlos con un borde rojo
  • Tras descargar y borrar videos de más de 30 segundos, los archivos descargados sumaban solo unos 7 GB, pero el almacenamiento usado en iCloud bajó de forma inesperada en unos 55 GB
  • En videos nuevos en 4K, el tamaño del archivo y el cambio mostrado en iCloud casi coincidían, pero en videos antiguos iCloud parecía contarlos como más grandes que el archivo real, así que los videos antiguos grandes podrían ser la prioridad al limpiar

Cómo identificar videos largos en la web de iCloud

  • Después de una alerta de almacenamiento de Apple, empecé a buscar alternativas porque pasar de 200 GB a 1 TB triplicaba con creces el costo
  • La mayor parte del almacenamiento eran fotos, con unos 127 GB, pero ni Apple Photos ni el navegador de iCloud tenían una función para ordenar fotos por tamaño de archivo
  • Las apps que muestran fotos duplicadas o el tamaño de los archivos de video tampoco ayudaban mucho en la limpieza real, porque las fotos descargadas solo a demanda desde iCloud aparecían como 0 B
  • Fui a Photos -> Media Types -> Videos en el sitio web de iCloud y reduje el zoom al máximo para mostrar muchos videos a la vez
  • Como la insignia de duración de cada video es un elemento HTML, vi que podía buscarse y filtrarse con JavaScript, así que escribí código para resaltar los videos largos
    • La clase de la insignia de duración es video-text-badge
    • El script busca las insignias en la página, las ordena según la duración y resalta los elementos que superan un umbral definido
    • Como iCloud solo carga los elementos visibles en pantalla, el script se ejecuta repetidamente con un temporizador para procesar también los elementos que van apareciendo al hacer scroll
  • La forma de usarlo es abrir la consola de JavaScript en la página de iCloud y pegar el gist completo
  • Al final, los videos de más de 20 segundos quedaban marcados con un recuadro rojo, lo que facilitó seleccionar varios videos grandes, descargarlos y luego borrarlos

Cambios en el almacenamiento tras borrar y dos experimentos

  • Cuando eliminé con el script todos los videos de iCloud de más de 30 segundos, los videos descargados sumaban unos 7 GB, pero el almacenamiento usado en iCloud se redujo en unos 55 GB
    • El total de videos descargados ocupaba 8 GB en disco
    • El uso de iCloud bajó de 199 GB a 143 GB
  • En el primer experimento subí un video 4K con mucho movimiento para ver cómo respondía el almacenamiento de iCloud
    • El archivo subido pesaba 281 MB
    • Después de subirlo, el uso de iCloud era de 145.33 GB
    • Tras descargarlo y borrarlo, el archivo seguía pesando 281 MB
    • Después de borrarlo, iCloud mostraba 145.6 GB, así que la diferencia visible era de unos 270 MB
  • En el segundo experimento elegí un video antiguo corto que iCloud mostraba como un archivo grande para comprobarlo
    • iCloud mostraba ese video como de 128 MB
    • El archivo descargado pesaba 47 MB
    • Antes de borrarlo, el uso de iCloud era de 145.29 GB, y después de borrarlo era de 145.12 GB, una reducción de unos 170 MB
  • Borrar unos 7 GB de archivos liberó más de 7 veces esa cantidad de almacenamiento, y parecía que los videos antiguos grandes ocupaban en iCloud más espacio de almacenamiento que su archivo real
  • No se confirmó la causa, pero el resultado fue que se recuperaron más de 50 GB de almacenamiento en iCloud y quedó un pequeño script de JavaScript para repetir el proceso

1 comentarios

 
GN⁺ 2024-01-06
Opiniones en Hacker News
  • Como Photos.app no muestra el tamaño de archivo, pensé en crear una extensión para Photos.app o una app aparte que encontrara archivos grandes.
    Pero parecía que la API no exponía el “tamaño de archivo”, y al menos no encontré una forma sencilla de hacerlo.
    Creo que “foto” o “video” es más bien una vista que muestra el underlying “photo or video object”. Aunque recortes un video, el video original completo queda guardado, y parece que solo al exportarlo se crea realmente un archivo recortado más pequeño.
    Por eso parece que el tamaño de archivo se ve distinto. Además, alguien comentó que creó un AppleScript para consultar el tamaño de archivo: https://discussions.apple.com/docs/DOC-250000422

    • Correcto, la app Photos conserva el archivo original sin modificar y guarda por separado la información de edición/recorte. Como siempre puedes volver al original y editar de nuevo, es posible que esté guardando varias copias de la misma imagen antes y después de editarla.
      Me da curiosidad saber en qué API estabas buscando el “tamaño de archivo”.
      Con la API de PhotoKit pude obtener datos de tamaño desde Photos.app: https://alexwlchan.net/2023/finding-big-photos/
      Solo lo probé con mi biblioteca de unos 26 mil elementos, pero fue útil como indicador para encontrar los elementos más grandes. Eso sí, no pude comprobar si exportar un video de 1 GB reduce el uso de iCloud en 1 GB.
    • Además de eso, aunque todavía no lo revisé en detalle, cuando importas fotos RAW+JPG, puedes configurar cuál de las dos será el “original”. Si no revisas el menú, puedes importar y editar sin saber cuál se está usando.
      Por eso, una foto recién importada que en la biblioteca parece una sola miniatura en realidad puede ocupar 5 MB o 50 MB.
    • Si estás dispuesto a escribir código, me pregunto si revisaste la base de datos interna. La última vez que la vi era simplemente sqlite, y con una revisión rápida se podía entender hasta cierto punto.
    • Esta parece la explicación más plausible de por qué cambia el tamaño de archivo. Yo también he visto restauración de medios inesperada. Creía que había recortado o editado un video, pero seguía guardado con toda su duración y resolución.
      También explica por qué el almacenamiento del iPhone siempre está cerca del límite aunque lo administres de forma tan obsesiva.
    • Se puede hacer con https://github.com/RhetTbull/osxphotos:
      osxphotos query --min-size 100MB --add-to-album "Big Files"
      Busca todas las fotos y videos de más de 100 MB y los agrega al álbum “Big files”.
      Para más detalles, consulta osxphotos query --help; para abrir la documentación en el navegador, usa osxphotos docs. Por cierto, es una herramienta que hice yo.
  • Podría ser un bug, pero en algunos casos también es posible que iCloud esté guardando en secreto varias versiones del mismo archivo. Apple hace cosas similares con otros archivos multimedia.
    El último ejemplo es interesante:
    “iCloud dice que el video ocupa 128 MB, pero al descargarlo el video real pesaba 48 MB, y al borrarlo el espacio libre aumentó unos 170 MB”.
    Esto sugiere que iCloud no solo está mostrando mal el tamaño del archivo de ejemplo. Si borras un archivo de 128 MB, el espacio en iCloud debería liberarse solo en unos 128 MB, pero en realidad se liberó un espacio cercano a 176 MB, la suma del tamaño mostrado de 128 MB y la versión descargada de 48 MB. Si iCloud redondea el espacio libre mostrado en unidades de 10 MB, parece encajar bastante bien.

    • Los backups diferenciales o alguna forma de control de versiones parecían una de las causas más obvious. También podría haber almacenamiento completamente duplicado para preservar archivos. El problema es que todo esto es totalmente opaco.
      Al final quedas cada vez más atado a algún servicio de almacenamiento, pagas una suscripción según el almacenamiento total, pero casi no tienes información sobre cómo optimizar ese espacio. Desde la perspectiva de un consumidor que quiere mantenerse en un tramo de costo fijo o reducir la relación almacenamiento/costo, parece que solo queda resignarse y seguir pagando más.
      La estrategia empresarial moderna de la industria tecnológica es esconderse detrás de la complejidad. Los costos son demasiado complejos para entenderlos y revelarían demasiada información interna a la competencia, etc. Pero cuando la empresa quiere comprobar si opera por encima de sus costos, de alguna manera sí calcula esas métricas. Cuando el consumidor intenta entenderlas, de pronto todo se vuelve demasiado complejo.
      El problema es que muchas veces la tecnología sí crece hasta una escala realmente demasiado compleja, y la dirección lo sabe, así que se convierte en una excusa bastante efectiva. Y, convenientemente, justo ahí concentran la inversión y agregan margen.
    • En el iPhone, la edición de fotos y videos es solo metadatos, y el archivo original se conserva. Acabo de grabar un video, lo recorté a la mitad y lo descargué desde iCloud para probarlo.
      El archivo recortado era más pequeño que el tamaño mostrado por iCloud, pero cuando elegí descargar el original sin modificar, su tamaño coincidió con el tamaño mostrado por iCloud.
    • En la raíz de la confusión también está que las fotos y videos de la biblioteca de Photos no son simplemente archivos copiados en un almacenamiento. Photos también guarda metadatos para ediciones, versiones renderizadas, miniaturas y varios datos necesarios para las funciones de la app.
      Por eso, cuando sincronizas fotos con iCloud, no se sincronizan solo archivos individuales, sino el contenedor “Photos Library” que administra la app Photos.
      Si agregas archivos individuales directamente desde Finder o la app Files, el tamaño coincide exactamente entre iCloud y el sistema de archivos local.
    • Probablemente pueda ser así en realidad, pero eso no los exime.
      Cuando compras un disco duro o una memoria USB, puedes usar una cantidad determinada de GB como quieras. Si guardas un archivo de 1 GB, el espacio libre baja 1 GB. Según el sistema de archivos puedes perder algunos KB de metadatos, pero la elección del sistema de archivos está en manos del usuario y el dispositivo de almacenamiento no la impone.
      Aunque el controlador NAND haya usado algunos MB del área de sobreaprovisionamiento para guardar tablas de mapeo de bloques, o haya duplicado datos por conveniencia, al usuario no se le cobra el costo de esa área de sobreaprovisionamiento.
      Aquí están vendiendo un dispositivo de almacenamiento accesible por HTTP y, cuando escribes un archivo de 1 GB, lo replican/convierten, etc. por conveniencia propia y además cobran al usuario el costo de almacenamiento de esas copias que no pidió. Esto es nuevo e inesperado.
  • Convertí esta idea/solución en un script para TamperMonkey/Greasemonkey
    También agregué una función para “ocultar” todos los elementos que no cumplan con los criterios
    https://github.com/seffignoz/icloudcleanup

  • Esta es una de las razones por las que hago self-hosting. No confío en la claridad ni la transparencia de los proveedores de nube. Aunque una solución self-hosted sea mucho menos estable, menos segura y tenga menor rendimiento, probablemente no la cambiaría
    Personalmente uso immich. Es una solución bastante completa, con apps para iOS/Android, componente de servidor y opciones de sincronización/backup
    https://immich.app/

    • Parece que Apple todavía no se da cuenta de lo excelente oportunidad de venta que es una UI de gestión de cuota. No hay mejor lugar para vender más almacenamiento
      Google sí lo hace. Si ves https://one.google.com/storage y https://photos.google.com/quotamanagement, están diseñados para ayudarte a encontrar bien qué borrar y, al final, hacer que te canses de borrar y compres más almacenamiento
    • Se ve interesante, pero viendo la advertencia de arriba creo que habría que esperar hasta que esté más estabilizado
  • Tengo entendido que iCloud guarda los originales en calidad completa y descarga al teléfono versiones optimizadas de menor calidad
    En los ajustes del iPhone, si vas a Apple ID > iCloud > Photos, hay una opción “Optimise iPhone Storage” que viene activada por defecto
    La descripción de esa opción dice que, si falta espacio en el teléfono, las fotos y videos de resolución completa se reemplazan automáticamente por versiones más pequeñas para el dispositivo, y que las versiones de resolución completa se pueden descargar de iCloud en cualquier momento
    Eso parece bastante razonable

    • Aun así, la descarga debería devolver los archivos originales, así que eso no sirve para explicar la diferencia en tamaño de almacenamiento
    • No explica el caso en que el autor subió un archivo nuevo y luego lo descargó, y la diferencia de tamaño no fue grande. Parece que la diferencia de tamaño de archivo solo aparece en videos antiguos
    • Esto no tiene relación
      Esto se refiere al almacenamiento del teléfono que se puede ver en Settings > Manage storage, y no tiene que ver con el almacenamiento en la nube
  • Es un artículo interesante. A mí también me pasó algo parecido y tuve que subir mi plan de iCloud, así que desde el punto de vista de Apple quizá no sea una prioridad alta corregirlo
    Cuando tomas fotos en RAW+JPEG, Apple Photos agrupa ambas imágenes. No es una forma tan rara entre aficionados a la fotografía, y es útil porque permite alternar fácilmente entre RAW y JPEG sin llenar la biblioteca de fotos casi duplicadas
    Pero por esta forma de combinarlas y por el diseño del sistema de archivos que se describe en el artículo, parece imposible separarlas fácilmente y borrar solo el RAW. Ahora tengo archivos RAW enormes de hace años que jamás voy a tocar, pero no puedo borrarlos porque quiero conservar los JPEG, mucho más pequeños
    Lo más fácil parece ser exportar los originales, borrarlos de la biblioteca y luego volver a importar solo los JPEG, pero así perdería años de metadatos acumulados en la biblioteca
    Por eso no queda otra que subir el plan

    • Tal vez sea una pregunta tonta, pero ¿no se pueden exportar e importar de nuevo los metadatos? Me pregunto si hay metadatos además de los datos EXIF, o si Apple simplemente no exporta todo
      Si te refieres a funciones adicionales como el reconocimiento facial, ¿la app no vuelve a procesarlo después de reimportar los JPEG?
    • La herramienta open source osxphotos(https://github.com/RhetTbull/osxphotos) puede servir. Permite exportar imágenes JPEG preservando los metadatos con la utilidad de terceros exiftool:
      osxphotos export /path/to/export --has-raw --skip-raw --exiftool
      Exporta todas las imágenes que tengan un par RAW, pero omite el componente RAW, y usa exiftool(https://exiftool.org/) para escribir metadatos como palabras clave en los archivos JPEG exportados. Después puedes arrastrarlos a Photos o ejecutar osxphotos import /path/to/export/* para importarlos de nuevo
      Los comandos export e import tienen muchas otras opciones para controlar el directorio de exportación, etc. Puedes usar osxphotos help export, o osxphotos docs para abrir la documentación en el navegador. Como referencia, yo soy el autor de osxphotos
    • No estoy exactamente en la misma situación ahora, pero como soy fanático de la fotografía seguro terminaré pasando por esto, así que investigué
      Al ejecutar File/Export Unmodified Originals, parece que se exportan RAW+HEIC y un archivo sidecar separado con los metadatos. Luego, si apartas el archivo RAW e importas el HEIC, dicen que el archivo sidecar de metadatos también se importa automáticamente
      Eso sí, se pierden las ediciones. Aun así, parece que de alguna manera se puede hacer “copy edits”. Si alguien es técnico, probablemente podría automatizar este proceso con AppleScript
      Pero es innecesariamente engorroso y debería venir como función integrada en Photos.app. Como ayuda a empujar a la gente hacia planes de iCloud más caros, claramente parece ser de baja prioridad
    • Yo también estoy en la misma situación ahora y todavía no empecé este trabajo engorroso. Sin duda estoy buscando una solución
  • Sorprendentemente, antes del feriado recibí de Apple una alerta de almacenamiento similar, y decidí descargar todas mis fotos/videos a mi servidor multimedia en vez de dejarlos subidos en iCloud.
    No hay una forma fácil e intuitiva de descargar un archivo desde iCloud. Estoy avanzando de a poco usando varias máquinas y dispositivos.
    El problema con los cambios recientes de Apple es que suben los precios sin mucha razón. Vamos a seguir tomando fotos y videos, y por las tecnologías y funciones más recientes, los tamaños de archivo inevitablemente van a seguir creciendo.

    • Hay una forma fácil de obtener tus datos. Solo que está un poco escondida.
      Funciona parecido a Google Takeout. En una Mac, iPhone, iPad o PC, inicia sesión en la página de tu cuenta de Apple ID en appleid.apple.com, ve a “Data & Privacy” y elige “Manage Your Data and Privacy”.
      En la página siguiente, ve a “Get a copy of your data” y selecciona “Get started”.
    • Una herramienta que te cambia la vida:
      https://github.com/icloud-photos-downloader/icloud_photos_downloader
    • Yo copio las fotos del iPhone a mi NAS con PhotoSync(https://www.photosync-app.com/home). Es un programa excelente.
      Si hace falta, también puede descargar fotos desde iCloud y convertir formatos. Cada pocos días envío las fotos nuevas al NAS para mantener siempre una copia local, y esas copias también se respaldan todas las noches en Backblaze B2.
      Gracias a la conversión de formato, puedo mantener las fotos como pares HEIC+JPG, así tengo tanto el original como una versión más fácil de usar.
      Lo que de verdad quisiera es una herramienta que haga lo mismo con iCloud Drive. Guardo ahí varios materiales, y me preocupa no tener una forma razonable de respaldarlos. El método recomendado por Apple(https://support.apple.com/en-us/HT204055) deja mucho que desear.
    • Si tienes MacOS, ¿qué tal la app Photos? Yo mantengo una copia local de iCloud Photo Library y la sincronizo con la app Photos de MacOS.
  • Lo que más odio son esos extraños tramos de planes que saltan de 200 GB a 2 TB. No hay forma de pagar incrementos de 500 GB o 1 TB, que serían ideales para muchas familias.
    En una época en la que el almacenamiento se volvió un commodity, deberían cobrar por GB usado.

    • Eso permitiría subsidiar el tramo gratuito.
    • Si hiciera falta, podrías agregar al plan de 200 GB tantos bloques de 50 GB como quisieras.
  • Lo que más espacio ocupa en mi iCloud son las versiones de video “live” de las fotos. Pesan más que las fotos que incluyen un fragmento muy corto de movimiento.
    El único método que encontré hasta ahora es descargar los archivos localmente, borrarlos de iCloud, eliminar los videos locales y volver a subir solo las imágenes estáticas restantes.
    Lleva mucho tiempo, es tosco, y durante el proceso me da miedo borrar algo o perder algo importante.
    Me pregunto si existe alguna herramienta que automatice este proceso y, al mismo tiempo, ofrezca cierto control de edición para identificar y conservar las pocas imágenes “live” que realmente quiero guardar.

  • ¿Leí bien?
    Si esto es un fenómeno extendido, podría interpretarse como que Apple infló las cifras para empujar a la gente a actualizar el plan, ¿y no podría terminar en una demanda?
    No soy experto legal.

    • El texto original no tiene en cuenta que agregar medios a Photos no es simplemente “copiar archivos y guardarlos”. La app Photos, como otras apps, tiene su propio formato de archivo de Photos Library.
      Cuando agregas una foto o un video, la app Photos lo analiza y guarda varios metadatos necesarios para que la app funcione, incluido el historial de edición. Al final, eso se sincroniza con iCloud.
    • Si editas una foto/video en el lugar sin guardarlo como un archivo nuevo, iOS conserva el archivo original para poder deshacer o revertir los cambios. No muestra ese original ni en Photos ni en la galería de iCloud. Esa podría ser la razón.
    • Yo también leí el artículo de esa manera. Se podría descargar cierta cantidad de archivos desde un almacenamiento en la nube y subirlos a otro para ver si hay una diferencia clara.
      Es posible que Apple todavía esté usando en iCloud un formato de sistema de archivos antiguo. Ya lleva bastante tiempo, y quizá no se preocuparon por cambiar el formato de almacenamiento. También existe la posibilidad de que las imágenes/videos de cuentas antiguas estén en unidades “antiguas”.