Jugando con Docker: iCloud Photo Library

En esta entrada de Jugando con Docker, voy a montar un contenedor que descarga toda la librería de fotos de Icloud en mi NAS.

El problema que tengo, es que llevo usando icloud hace muchos años y tengo una librería de fotos muy grande, a su vez el espacio en mi mac es muy reducido para mantener una copia de las fotos en local.

Por este motivo me puse a buscar y encontré un contenedor de Docker que contiene un script realizado en Python el cual después de configurarlo comienza a descargar el volumen de fotos que quieras, en mi caso todas las fotos y videos almacenadas en Icloud.

Instalación:

Probé varias imágenes, pero al final me quede con esta icloudpd/icloudpd, el procedimiento para descargar es sencillo. Doy por hecho que si estas leyendo este artículo tienes unos conocimientos de Docker, si no es asi tienes en internet muchos artículos que te inician en este mundo.

Bajamos la imagen:

docker pull icloudpd/icloudpd

Corremos el contenedor:

docker run -it --rm --name icloud \
    -v /carpetaLocal/fotos:/data \
    -v /carpetaLocal:/cookies \
    -e TZ=Europe/Madrid \
    icloudpd/icloudpd:latest 

Entramos dentro del contenedor en ejecución:

docker exec -i -t icloud /bin/sh

Autenticación

Si la cuenta de Apple tiene habilitada la autenticación de dos factores, nos pedirá un código cuando se ejecute el script.

La autenticación de dos factores caducará después de un intervalo de tiempo establecido por Apple. Este intervalo es mas o menos de dos meses, cuando finalice, nos pedira volver a validar el código de doble factor.

Las cookies de autenticación se almacenarán en un directorio temporal (/tmp/pyicloud en Linux, o /var /tmp/ … en MacOS). Este directorio se puede configurar con la opción –cookie-directory.

Llavero del sistema

Puedes almacenar la contraseña en el llavero del sistema usando la línea de comandos icloud.

icloud --usernanme [email protected]

Nos pedirá que introduzcamos la contraseña del id de Apple, e iniciara la Autentificación en 2 pasos, podremos seleccionar varias opciones para hacernos llegar el código.

Si queremos eliminar la contraseña almacenada en el llavero:

icloud --username [email protected] --delete-from-keyring

Empezamos a descargar:

Ejecutamos la siguiente línea dentro del contenedor:

icloudpd --directory /data  --cookie-directory /cookies --folder-structure {:%Y/%Y-%m-%d} [email protected] --password xxxxxx --size original

Usar las opciones «username» y «password» si no habéis almacenado la contraseña en el llavero.

El script tiene muchas opciones que podéis consultar escribiendo –help. Yo estoy usando la opción «–folder-structure /Año/Año-Mes-Dia/» y además la opción «–size original» para descargar los archivos originales.

Os dejo las fuente para que podáis ver todas las opciones que nos ofrece:

Github

Espero que os ayude.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *