¿Tu carpeta de descargas es un desastre? Organizar multimedia para Jellyfin o Plex puede ser una tarea tediosa. En este artículo, compartiré un flujo de trabajo de n8n que automatiza todo esto utilizando IA para distinguir entre películas y series, obteniendo metadatos y moviendo los archivos a las carpetas correctas (/Series o /Peliculas), todo mientras mantiene enlaces simbólicos (symlinks) para tus clientes P2P.
Aquí tienes una vista general de cómo funciona la automatización:
graph TD
Trigger[📅 Schedule Trigger<br>Sábados 10:10 AM] --> ListFiles[📂 SSH - List Files<br>Find command]
ListFiles --> Check{Hay archivos?}
Check -- Sí --> Prepare[📝 Prepare File List]
Check -- No --> End((Fin))
Prepare --> AI[🤖 AI Agent<br>Gemini + MCP]
AI --> Logic[⚙️ Construct Paths<br>Series vs Peliculas]
Logic --> Move[🚚 SSH - Move & Symlink]
Empezamos con un Schedule Trigger que se ejecuta periódicamente (por ejemplo, todos los sábados a las 10:10 AM). Esto evita que el sistema esté comprobando constantemente y permite procesar lotes de descargas.
Accedemos al servidor vía SSH y utilizamos un comando find muy específico para listar solo lo que nos interesa:
find /mnt/hdd_cache/share/public/amule/ /mnt/hdd_cache/share/public/torrent/complete/ -maxdepth 1 -type f -not -type l -not -name "*.nfo" -not -iname "*xubuntu*" -not -iname "*adobe*"
Puntos clave:
-type f: Solo buscamos archivos, no directorios.-not -type l: Ignoramos enlaces simbólicos. Esto es crucial para no procesar archivos que ya han sido organizados anteriormente.-not -iname "*xubuntu*"...: Filtramos nombres específicos que sabemos que no son multimedia (distros de Linux, software), optimizando el uso de la IA.Aquí es donde ocurre la magia. Usamos un AI Agent conectado a un modelo Google Gemini Chat.
Para potenciar la IA, utilizamos el servidor mcp-imdb, una herramienta que permite consultar bases de datos de películas.
Nota: He actualizado el servidor MCP para soportar Docker. Puedes encontrar mi fork aquí: JuanmanDev/mcp-imdb y el original aquí.
El prompt le pide a la IA que analice cada nombre de archivo y determine:
Esto es mucho más robusto que usar expresiones regulares (Regex), ya que la IA entiende que "House.M.D.S01..." corresponde a la serie "House", Temporada 1.
Una vez que la IA nos devuelve los datos estructurados (JSON), un nodo de código construye las rutas de destino:
/mnt/hdd_cache/Series/{NombreSerie}/Temporada {Numero}/archivo/mnt/hdd_cache/Peliculas/archivoFinalmente, el nodo SSH - Move & Symlink ejecuta el movimiento. Pero no es un movimiento normal:
mkdir -p "$DEST_DIR" && mv "$SOURCE" "$DEST" && ln -s "$DEST" "$SOURCE"
¿Por qué usar Symlinks? Si estás compartiendo el archivo en un cliente Torrent o aMule (seeding), mover el archivo rompería la ruta y detendría la compartición. Al mover el archivo a su carpeta organizada y crear inmediatamente un enlace simbólico en la ubicación original apuntando al nuevo destino:
Esta guía es solo para fines educativos y de organización de medios y copias de seguridad personales. No apoyo ni recomiendo el uso de contenido ilegal o pirateado. Por favor, utiliza servicios de streaming legales o compra tus medios. Si descargas contenido de dominio público o Creative Commons, esta herramienta te será de gran utilidad.