En ocasiones cuando hablo con personas nuevas, suelo preguntarles: «¿Que haces cuando tu móvil se queda sin espacio?». Y la respuesta, desafortunadamente, suele ser: «Borrar fotos y videos».
English / Español
ar / bg / bs / cs / da / de / dn / el / en / es / et / fa / fi / fr / ga / hi / hr / hu / id / it / ja / ka / ko / lt / lv / mk / mt / nl / pl / pt / ro / ru / sk / sl / sq / sr / sv / tr / uk / ur / vi / zh
desnublado crea versiones pequeñas de fotos en avif y
videos en av1 que ocupan entre 50 y 100 veces menos que los originales
con una calidad lo bastante buena como para mantener toda tu colección
en tu móvil.
Instala Termux preferiblemente desde F-Droid, en caso
contrario desde Google
Play, abrelo y ejecuta este comando para instalarlo:
curl -fsSLO https://desnublado.com/desnublado && bash desnublado setup
Consejo: copia el comando al portapapeles, luego mantén presionado en la pantalla de Termux y pulsa pegar.
Este programa crea versiones pequeñas de tus fotos y videos para que cuando decidas liberar espacio puedas mantener una copia en tu dispositivo Android.
De esta manera si decides borrar los originales (para siempre o porque los has copiado a un pendrive, portátil, etc) todavía mantienes una copia accesible de forma local, que no requiere de conexión a internet ni almacenamiento en “la nube”, manteniendo así tu privacidad.
Con los ajustes predeterminados, desnublado:
La base de este programa es un archivo escrito en bash llamado desnublado que se ejecuta en Termux, aunque también se puede ejecutar en Linux Virtual Machine y cualquier distribución Linux. Para la mayoría de usuarios que no tienen instalado Termux, la instalación rápida desatendida es la forma más sencilla de empezar.
Para una instalación sencilla con los ajustes predeterminados, sigue estos dos pasos:
Instala Termux
Copia el siguiente comando, abre la aplicación y pégalo (pulsación larga en la pantalla):
curl -fsSLO https://desnublado.com/desnublado && LANG=es bash desnublado setup -y
Una vez terminada la instalación escribe exit para
salir. La próxima vez que abras Termux se ejecutará desnublado de forma
automática y comenzará a procesar tus fotos y videos.
Para ejecutar el programa de instalación de forma interactiva y escoger entre las diferentes opciones disponibles, sigue estos dos pasos:
Instala Termux
Copia el siguiente comando, abre la aplicación y pégalo (pulsación larga en la pantalla):
curl -fsSLO https://desnublado.com/desnublado && bash desnublado setup
El programa de instalación te permitirá seleccionar el idioma, instalar los programas necesarios, cambiar las opciones por defecto y activar o no la ejecución automática de desnublado al abrir Termux.
Actualizar desnublado de forma automática?
Cuando está activado comprueba e instala las actualizaciones de desnublado de forma automática al iniciar el programa. La versión actualizada surge efecto en la siguiente ejecución.
Valor por defecto: no
Permitir contenido duplicado?
Cuando no se permite el contenido duplicado, el programa mantiene una base de datos que identifican el contenido de forma única, evitando así generar varias copias de la misma foto o video en distintos archivos.
Valor por defecto: no
Organizar los archivos convertidos por fecha?
Con esta opción activada los archivos generados se organizar en subcarpetas de año/mes y el nombre pasa a ser la fecha en formato ISO. Por ejemplo del archivo:
IMG_20260620_201510_335.jpg
se generaría una versión pequeña en:
Camera_mini/2026/06/20260620_201510_335.avif
Con la opción desactivada se generan los archivos en
Camera_mini con el mismo nombre que el original.
Valor por defecto: sí
Mostrar historial completo de archivos procesados?
Cuando está desactivada el historial se limita a la cantidad visible en la pantalla.
Valor por defecto: no
Mover las fotos y videos procesados a la carpeta Camera_done?
Si esta opción está habilitada, una vez que se ha generado la copia
pequeña de la foto o video esta se mueve a la carpeta
Camera_done lo cual facilita su identificación para copiar
y borrar los archivos de los cuales ya se tiene una versión pequeña.
Valor por defecto: sí
Mostrar la ruta completa de los archivos?
Cuando está activado, los archivos se muestran completos:
/storage/emulated/0/DCIM/Camera/IMG_20260620_201510_335.jpg
/storage/emulated/0/DCIM/Camera_mini/Camera_mini/2026/06/20260620_201510_335.avif
Cuando está desactivado, solo se muestra la parte relativa a la carpeta:
IMG_20260620_201510_335.jpg
2026/06/20260620_201510_335.avif
Valor por defecto: no
Iniciar automáticamente?
Esta opción hace que se ejecute desnublado al abrir Termux de forma automática. Esta es la opción más cómoda cuando Termux se utiliza principalmente para ejecutar desnublado, ya que con solo tocar el icono de la aplicación comenzará la conversión de fotos y videos, y una vez finalizada se cerrará automáticamente.
Puedes cancelar el inicio automático de desnublado presionando
cualquier tecla antes de que pase el tiempo de gracia, y después salir
de Termux escribiendo exit.
Valor por defecto: sí
Para actualizar a la última versión disponible, abre Termux, toca cualquier tecla para detener el inicio automático de desnublado y escribe lo siguiente:
desnublado update
Si la aplicación ssh-keygen (necesaria para verificar la firma
digital) no está presente, el programa te pedirá si deseas instalarla.
Cuando hayas terminado escribe exit para salir de
Termux.
| Archivo | Descripción |
|---|---|
| desnublado | v2026.10.20 Archivo ejecutable desnublado |
| desnublado.pub | Clave pública ed25519 para verificar firma |
| desnublado.sig | Firma digital del archivo |
| desnublado.lang | v2026.09.22 Archivos de traducciones |
| desnublado.lang.sig | Firma digital del archivo |
| sha256sum.list | Hash sha256 del archivo desnublado |
| sha256sum.list.sig | Firma digital del archivo |
Desnublado se pública con firma digital y hash sha256 para asegurar su integridad, autenticidad y evitar manipulaciones fraudulentas.
La clave pública en contenida en el archivo desnublado.pub es la siguiente:
desnublado@release ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILRUOIit/NU6usSafcc+mIxPlCjpCidS65+k7qY5MuCd solyplaya
Para verificar:
ssh-keygen -Y verify -f desnublado.pub -I desnublado@release -n file -s desnublado.sig < desnublado
El resultado de una verificación correcta es:
Good "file" signature for desnublado@release with ED25519 key SHA256:QE86VSWGb01iZskfTy8coFg1ycD8bAhXRga0r2gJoM0
Descarga los archivos:
curl -fsSL -o /usr/local/bin/desnublado https://desnublado.com/desnublado && chmod +x /usr/local/bin/desnublado
Verifica la firma digital y configura las opciones que desees mediante el archivo desnublado.override o variables de entorno.
Desnublado requiere los siguientes programas para funcionar:
exiftool ffmpeg imagemagick sqlite xxhash
Se recomienda una versión reciente de los programas, especialmente de ffmpeg.
Si bien las instrucciones de instalación rápida apuntan a la versión de playstore de Termux por ser la opción más sencilla para la mayoría de las personas, la versión de Termux de F-Droid es la base del desarrollo de esta aplicación. A parte de optar por un ecosistema de distribución de aplicaciones para Android en el que tu libertad como usuario es lo primero, dicha versión incluye algunas sutilezas como la capacidad de ocultar el teclado en pantalla automáticamente mientras se ejecuta desnublado.
Otras aplicaciones recomendadas:
Fossify Gallery Aplicación de galería de imágenes respetuosa con tu privacidad, compatible con los archivos generados por desnublado (avif y av1) y además permite navegar las imágenes y videos agrupadas en carpetas y subcarpetas de una forma cómoda. (Los archivos que genera por defecto desnublado se organizar en carpetas de año/mes/archivo)
Fossify File Manager Gestor de archivos sencillo y respetuoso con tu privacidad.
Aves Aves es una excelente aplicación de galería y exploración de metadatos.
A parte de generar versiones pequeñas de tus fotos y videos, puedes utilizar desnublado hacer las siguientes cosas.
Los ajustes de src_extra, src_extra_done y src_extra_dst te permiten definir una segunda carpeta en la cual se procesarán los archivos existentes. Esta puede ser por ejemplo la carpeta donde se guarden las imágenes de otra aplicación de cámara como por ejemplo OpenCamera, o simplemente una carpeta donde copies las fotos y videos generados por otros dispositivos (cámara dslr, cámara de acción, dron, etc)
Puedes importar las fotos y videos generadas por desnublado en otro dispositivo al tuyo, organizando los archivos por fecha y evitando duplicados (según tus ajustes). Copiar los archivos a la carpeta src_import y ejecuta desnublado. Los nuevos serán importados, los duplicados eliminados.
Si inicialmente has usado desnublado permitiendo contenido duplicado, puedes reconstruir la base de datos una vez cambiado el ajuste a no permitir duplicados.
Tienes dos opciones para iniciar la regeneración:
Crear un archivo llamado desnublado.rebuild en la
carpeta DCIM. (Puedes copiar cualquier archivo y cambiar su
nombre a este)
O ejecutando el siguiente comando desde el terminal:
touch $HOME/storage/shared/DCIM/desnublado.rebuild
Para imágenes genera archivos AV1 Image Format en un contenedor AVIF
Para videos genera archivos AV1 - AOMedia Video 1 en un contenedor MKV
Estos formatos de archivos generan versiones pequeñas con una calidad muy superior a los jpeg y h264 típicos, y a un tamaño mucho mas reducido.
Desnublado es software libre y sin restricciones, dedicado al dominio público.
Supongo que algunas personas preferirían descargar el “app” de desnublado desde la Google Play Store, sin embargo esto sería contrario a los principios de libertad y soberanía del usuario que defiende esta aplicación.
Vea también Keep Android Open.
Esta aplicación está deliberadamente creada usando un script bash, el cual es un lenguaje no compilado, sencillo, que permite su modificación fácilmente. Si bien hay muchos proyectos de código abierto que publican sus aplicación compiladas como archivos .apk en distintos sitios, un usuario común que quiera hacer pequeños cambios se encuentra con varios obstáculos que dificultan tanto la comprensión del código, como su modificación y recompilación.
El código de desnublado se puede leer y modificar desde el propio dispositivo móvil sin mayor necesidad que un editor de texto.
Además, el mismo código que se ejecuta en Android sirve también para ejecutarse en cualquier sistema operativo Linux.
He dedicado desnublado al dominio público porque el
objetivo principal es dar poder a sus usuarios, libertad, soberanía y
evitar la dependencia del almacenamiento en la nube de compañías que
invaden su privacidad.
Es gratis, pero se aprecia si quieres mandar algo de amor :)
Monero
45NBb2c3aRCUrxB2EHwnnm8XyTepyFXBpgsCxHr8MH71gU2XxpvEFZaafavYGojdTkeJwdJ21eUAhPsAD94bxBgo5YqrbTv
Bitcoin
bc1q99g29lene29ex595y2yp2ryfg5qfa4nrvywl90
Bitcoin SP
sp1qqgw35xu3pu9swx0rmqkyj39pzljuk4kefg32296w4a36e5taxducuqu3nsj907t4j7pykzhs0r26xr43tt98rg42q7ntelvly5heee59hyxzpeaq
Bitcoin Lightning
desnublado@cake.cash
Ethereum
0x6223c7a55b2Bf551c731194181868544E2197a5F
Zcash shielded
u1p5cxlx5hh0ca7lepzv4yppwuydct5ehtrn8ztyvc3hehs78d9vrukq3087r6yka6xzewsx0xzzzrvkreh2jqxuq0qyyxggke3y87r3gt
Zcash transparent
t1NRUzj5cGtqFUCZsUWbZCm8gqWoNNf4haR
Litecoin MWEB
ltcmweb1qqwldvpk22l4366xej6r77sw6qqljzv8leudv4f3gcafe59p2nm666qj5m8qdcds5hv4hj2yatusakd9u2r28gv6tyvexnzqq6gaswn9psghfvcn0
Litecoin
ltc1qdw62s7u2ge2xuk4wekz474a8r308n3d0cz63h7
También me puedes mandar algunas palabras positivas si lo deseas. Me alegrarás el día!
En esencia, el código siguiente hace los mismo que desnublado cuando este se configura permitiendo contenido duplicado, sin reorganizar por fecha y sin mover los archivos originales.
src="$HOME/storage/dcim/Camera"
dst="$HOME/storage/dcim/Camera_mini"
find "$src" -type f \( -name '*.jpg' -o -name '*.mp4' \) | while IFS= read -r file; do
target="${file/#$src/$dst}"
target="${target%.*}"
mkdir -p "${target%/*}"
echo "$file"
case "$file" in
*.jpg) [ ! -f "$target.avif" ] && magick "$file" -resize @900000\> -auto-orient -strip "$target.avif" ;;
*.mp4) [ ! -f "$target.mkv" ] && SVT_LOG=1 ffmpeg -nostdin -hide_banner -loglevel error -stats -y -i "$file" -vf scale=640:640:force_original_aspect_ratio=decrease:force_divisible_by=2 -c:v libsvtav1 -crf 41 -preset 2 -c:a libopus -b:a 64k "$target.mkv" ;;
esac
donePuedes reportar problemas en codeberg o mediante un mensaje en simplex. Asegurate de haber leido la documentación en este sitio primero.
Existen dos formas de cambiar las opciones por defecto. Una es
mediante el archivo desnublado.override y la otra es
mediante variables de entorno (ENV variables). Si una opción se
especifica tanto en una variable de entorno como en el archivo
desnublado.override, esta última tiene preferencia.
Este sistema de configuración permite cambiar las preferencias sin modificar desnublado, permitiendo así actualizaciones sencillas preservando las preferencias.
Estas son las opciones que se pueden editar mediante el archivo
desnublado.override.
El primer grupo de opciones se pueden configurar con
desnublado override mientras que es resto se deben editar
utilizando un editor de texto.
# opciones configurables
auto_update="false"
allow_dupes="false"
date_rename="true"
do_scroll="false"
move_sources="true"
show_full_path="false"
src="$HOME/storage/shared/DCIM/Camera"
src_done="$HOME/storage/shared/DCIM/Camera_done"
src_extra="$HOME/storage/shared/DCIM/Camera_extra"
src_extra_done=""
src_extra_dst=""
src_import="$HOME/storage/shared/DCIM/Camera_import"
dst="$HOME/storage/shared/DCIM/Camera_mini"
tmp="$TMPDIR"
lock_file="$HOME/.desnublado.lock"
lang_file="$config_path/desnublado.lang"
rebuild_flag="$HOME/desnublado.rebuild"
db="$HOME/desnublado.db"
min_free_mb="2048"
ext_list="mp4 mkv jpg avif"
prefer_meta="false"
prefer_utc="false"
show_ratio="false"
date_rename_sources="false"
# parámetros de conversión de video
ffmpeg_params=(-vf scale=640:640:force_original_aspect_ratio=decrease:force_divisible_by=2 -c:v libsvtav1 -crf 41 -preset 2 -c:a libopus -b:a 64k)
# parámetros de conversión de imagen
magick_params=(-resize @900000\>)Por ejemplo para cambiar el valor de src_extra:
desnublado override src_extra "storage/shared/DCIM/OpenCamera"
Y para cambiar el espacio mínimo requerido a 512MB:
desnublado override min_free_mb "512"
Todas las opciones configurables a excepción de
ffmpeg_params y magick_params se pueden
modificar utilizando variables de entorno. El formato es el prefijo
DNBL_ y en nombre de la variable en mayúsculas.
Por ejemplo, para cambiar el valor de src de la carpeta
Camera a OpenCamera mediante una variable de
entorno:
DNBL_SRC="$HOME/storage/shared/DCIM/OpenCamera"
Nota: Los ajustes presentes en
desnublado.override tienen preferencia sobre las variables
de entorno.
[true|false] pred.: false
true: activa las actualizaciones automáticas de
desnublado
false: desactiva las actualizaciones automáticas
[true|false] pred.: false
true: permite generar contenido duplicado (mismo
video / foto con distinto nombre de archivo).
false: no permite generar contenido duplicado.
[true|false] pred.: true
true: genera archivos en dst tipo
AAAA/MM/AAAAMMDD_HHMMSS_MMM.ext
false: genera archivos en dst con el
mismo nombre que el original
[true|false] pred.: false
true: muestra historial completo de archivos
procesados
false: limita el historial a la cantidad visible en la
pantalla
[true|false] pred.: true
true: mueve los archivos originales a la carpeta src_done tras generar la versión pequeña
false: los archivos originales permanecen en la carpeta
src
[true|false] pred.: false
true: muestra ruta completa de los archivos
procesados y generados
false: muestra solo la ruta relativa a las carpetas src y dst
[string] pred.: $HOME/storage/shared/DCIM/Camera
Ruta a la carpeta dónde se encuentran las fotos y videos a procesar
[string] pred.: $HOME/storage/shared/DCIM/Camera_done
Ruta a la carpeta dónde mover las fotos y videos originales ya procesados
[string] pred.: $HOME/storage/shared/DCIM/Camera_extra
Ruta a la carpeta adicional con mas fotos y videos a procesar (Si no existe se ignora)
[string] pred.: (nada)
Ruta a la carpeta adicional dónde mover las fotos y videos adicionales ya procesados. Si el valor está en blanco se utiliza el valor de src_done (Depende de move_sources)
[string] pred.: (nada)
Si el valor está en blanco los archivos extra se generar en la carpeta dst, de lo contrario a la ruta especificada
[string] pred.: $HOME/storage/shared/DCIM/Camera_import
Ruta a la carpeta que contiene archivos generados en otro dispositivo y que se quiere importar a dispositivo actual. Los parámetros date_rename y move_sources se tienen en cuenta al importar. Los archivos nuevos se mueven a la carpeta dst y los repetidos son eliminados. Si no existe la carpeta se ignora.
[string] pred.: $HOME/storage/shared/DCIM/Camera_mini
Ruta a la carpeta dónde se guardan las fotos y videos generados
[string] pred.: $TMPDIR
Ruta a la carpeta dónde se generan los archivos temporales
[string] pred.: $HOME/.config/desnublado/.desnublado.lock
Ruta al archivo de bloqueo que se utiliza para evitar la ejecución múltiple simultanea
[string] pred: $HOME/.config/desnublado/desnublado.lang
Ruta al archivo de traducciones
[string] pred.: DCIM/desnublado.rebuild
Si este archivo existe se procede a la recreación de la base de datos de los archivos existentes y se borra este archivo. Esto es útil cuando se ha estado utilizando este programa con la opción allow_dupes activada y después de haber generado archivos se cambia el valor a desactivada. En tal caso algunos archivos no están en la base de datos de contenido único. Esto lo soluciona.
[string] pred.: $HOME/.config/desnublado/desnublado.db
Ruta al archivo de base de datos (sqlite3)
[int] pred.: 2048
Espacio mínimo necesario en megabytes que el dispositivo ha de tener libra para proceder a a conversión de fotos y videos
[string] pred: mp4 mkv jpg avif
Lista de extensiones de archivo a procesar, separadas por un espacio.
[true|false] pred: false
true: si se activa date_rename, determinar fechas
con: metadatos -> nombre de archivo -> fecha de modificación de
archivo
false: si se activa date_rename, determinar fechas con:
nombre de archivo -> metadatos -> fecha de modificación de
archivo
[true|false] pred: false
true: si se activa date_rename, convertir fechas a
UTC
false: no convertir fechas
[true|false] pred: false
true: mostrar ratio de tamaño de los archivos
generados (cuantas veces mas pequeño que el original)
false: no mostrar ratio
[true|false] pred: false
true: genera archivos en src_done tipo AAAA/MM/AAAAMMDD_HHMMSS_MMM.ext
false: utiliza el mismo nombre que el original