image_seo_supername.py
es una herramienta de línea de comandos que optimiza el SEO de imágenes mediante renombramiento inteligente de archivos basado en contexto proporcionado y análisis con inteligencia artificial. Genera nombres SEO-friendly utilizando información relevante sobre marca, producto, categoría y palabras clave, aprovechando las capacidades de IA para extraer contexto visual, optimizar palabras clave y generar metadatos SEO.
- Generación de nombres de archivos optimizados para SEO
- NOVEDAD: Análisis de imágenes con IA usando la API de Mistral (pixtral-large-latest)
- NOVEDAD: Generación de nombres creativos con DeepSeek IA para filenames más distintivos
- NOVEDAD: Generación completa de metadatos SEO:
- Texto alternativo (alt text) - máximo 125 caracteres
- Título optimizado - entre 50-60 caracteres
- Descripción detallada - hasta 300 caracteres
- Leyenda/caption - 15-25 palabras
- NOVEDAD: Extracción de palabras clave basada en el contenido visual
- NOVEDAD: Optimización automática de imágenes para análisis AI (redimensionado y compresión)
- NOVEDAD: Sistema de logging detallado para un mejor seguimiento y solución de problemas
- Soporte multilingüe (Español e Inglés)
- Renombramiento automático con numeración secuencial
- Registro del historial de renombramientos
- Validación de nombres SEO-friendly
- Normalización de texto (eliminación de acentos, caracteres especiales)
- Filtrado de palabras vacías (stop words)
- Modo seguro para preservar archivos originales
- Funcionalidad de restauración para recuperar nombres originales
- Verificación de duplicados antes del procesamiento
- NOVEDAD: Campos adicionales para ubicación geográfica y contexto
- NOVEDAD: Sistema de reintentos para análisis AI fallidos
- Python 3.6 o superior
- Bibliotecas: pathlib, tqdm, dotenv, requests, Pillow, tenacity
- NOVEDAD: Clave de API de Mistral (para análisis de imágenes)
- NOVEDAD: Clave de API de DeepSeek (para nombres creativos mejorados, opcional)
- Clona el repositorio o descarga el script
image_seo_supername.py
. - Instala las dependencias:
pip install python-dotenv tqdm requests Pillow tenacity
- NOVEDAD: Para funciones de IA, obtén una clave API de Mistral y configúrala:
# Opción 1: Como variable de entorno
export MISTRAL_API_KEY="tu-clave-api"
# Opción 2: Crear archivo .env
echo "MISTRAL_API_KEY=tu-clave-api" > .env
# Opción 3: Proporcionar directamente en el comando
python image_seo_supername.py --rename --input /ruta/imagenes --ai --api-key "tu-clave-api"
- NOVEDAD: Para nombres creativos mejorados, obtén una clave API de DeepSeek y configúrala (opcional):
# Opción 1: Como variable de entorno
export DEEPSEEK_API_KEY="tu-clave-api"
# Opción 2: Crear archivo .env
echo "DEEPSEEK_API_KEY=tu-clave-api" >> .env
El script tiene tres modos distintos de operación:
# Renombrado estándar (sin IA)
python image_seo_supername.py --rename --input /ruta/a/imagenes
# Con análisis potenciado por IA
python image_seo_supername.py --rename --input /ruta/a/imagenes --ai
Esto procesará todas las imágenes en el directorio especificado y creará copias con nombres SEO-optimizados.
python image_seo_supername.py --restore --history /ruta/a/rename_history.json
Restaura los archivos a sus nombres originales utilizando el historial de renombramiento.
python image_seo_supername.py --recovery-options --history /ruta/a/rename_history.json
Muestra las opciones disponibles para recuperar archivos basándose en el historial.
Parámetro | Abreviación | Descripción | Requerido | Valor predeterminado |
---|---|---|---|---|
--rename |
-r |
Activa el modo de renombrado | Sí (uno de los modos) | - |
--restore |
-s |
Activa el modo de restauración | Sí (uno de los modos) | - |
--recovery-options |
-o |
Muestra opciones de recuperación | Sí (uno de los modos) | - |
--input |
-i |
Directorio de entrada con las imágenes | Sí (en modo renombrar) | - |
--output |
-O |
Directorio de salida | No | Igual que el directorio de entrada |
--language |
-l |
Idioma para los prompts (en=Inglés, es=Español) | No | es |
--move |
-m |
Usar modo MOVE en lugar de COPY (PELIGROSO) | No | False |
--history |
-H |
Ruta al archivo de historial | Sí (en modos restaurar/recuperación) | - |
--force |
-f |
Sobrescribir archivos existentes durante la restauración | No | False |
--ai |
-a |
Habilitar análisis de imágenes con IA | No | False |
--api-key |
-k |
Clave API de Mistral para funciones de IA | No | Desde variable de entorno |
--deepseek-key |
- | Clave API de DeepSeek para nombres creativos | No | Desde variable de entorno |
--verbose |
-v |
Activar registro detallado de operaciones | No | False |
--log-file |
- | Ruta al archivo de log | No | image_seo_supername.log en el directorio de entrada |
--no-log-file |
- | Deshabilitar registro en archivo | No | False |
python image_seo_supername.py --rename --input "./mis_imagenes"
python image_seo_supername.py --rename --input "./mis_imagenes" --ai
python image_seo_supername.py --rename --input "./mis_imagenes" --ai --deepseek-key "tu-clave-api"
python image_seo_supername.py --rename --input "./mis_imagenes" --move
python image_seo_supername.py --rename --input "./imagenes_originales" --output "./imagenes_optimizadas"
python image_seo_supername.py --rename --input "./mis_imagenes" --language en
python image_seo_supername.py --restore --history "./rename_history.json"
python image_seo_supername.py --restore --history "./rename_history.json" --force
python image_seo_supername.py --recovery-options --history "./rename_history.json"
# Habilitar logging detallado
python image_seo_supername.py --rename --input "./mis_imagenes" --verbose
# Especificar una ruta personalizada para el archivo de log
python image_seo_supername.py --rename --input "./mis_imagenes" --log-file "./logs/renombrado_20231115.log"
# Deshabilitar el registro en archivo (solo consola)
python image_seo_supername.py --rename --input "./mis_imagenes" --no-log-file
# Combinación con otras opciones
python image_seo_supername.py --rename --input "./mis_imagenes" --ai --verbose --log-file "./logs/renombrado_con_ia.log"
Durante la ejecución, el script te solicitará:
- Marca/Empresa: El nombre de la marca o empresa (obligatorio).
- Producto/Servicio: El nombre del producto o servicio (obligatorio).
- Categoría: La categoría del producto o servicio (obligatorio).
- Ubicación geográfica: Región o área relevante (opcional).
- Palabras clave: Términos relacionados separados por comas (opcional).
- Contexto adicional: Información extra para mejorar el análisis de IA (cuando IA está habilitada).
Con esta información, el programa:
- Normaliza y limpia todos los textos (elimina acentos, convierte a minúsculas, etc.).
- Elimina palabras vacías (stop words) que no aportan valor SEO.
- Si la IA está habilitada, analiza cada imagen para extraer contenido visual relevante.
- Construye nombres de archivo usando componentes relevantes de la entrada del usuario y análisis de IA.
- Añade numeración secuencial para evitar duplicados.
- Limita la longitud del nombre a 60 caracteres para cumplir con las mejores prácticas SEO.
- Renombra los archivos y guarda un registro de los cambios en
rename_history.json
. - Almacena el texto alternativo generado por IA para cada imagen.
- NOVEDAD: Genera metadatos SEO adicionales (título, descripción, leyenda).
El script implementa un sistema de logging detallado para facilitar el seguimiento y la solución de problemas:
-
Niveles de log:
- Normal: Registra información básica sobre operaciones (INFO)
- Detallado: Con
--verbose
, registra información detallada de depuración (DEBUG)
-
Destinos de log:
- Consola: Muestra mensajes de nivel INFO o superior
- Archivo: Registra todos los mensajes (incluyendo DEBUG con
--verbose
)
-
Información registrada:
- Fecha y hora de cada operación
- Nivel de severidad (INFO, WARNING, ERROR, etc.)
- En modo detallado: nombre del archivo y número de línea
- Mensajes descriptivos de cada operación
- Errores y excepciones con trazas completas
-
Opciones de configuración:
--verbose
: Aumenta el nivel de detalle--log-file
: Especifica una ruta personalizada para el archivo de log--no-log-file
: Deshabilita el registro en archivo
-
Archivo de log:
- Formato: texto plano con entradas separadas por línea
- Ubicación predeterminada:
image_seo_supername.log
en el directorio de entrada de las imágenes - Modo de apertura: append (añade a un archivo existente)
- Codificación: UTF-8 para soporte completo de caracteres
El sistema de logging ayuda a:
- Identificar problemas durante el procesamiento
- Mantener un registro histórico de operaciones
- Facilitar la depuración en caso de fallos
- Proporcionar información detallada para soporte técnico
Los nombres de archivo generados siguen este patrón:
[palabra-clave1]-[palabra-clave2]-[producto]-[marca]-[categoria]-[###].[extension]
Cuando el análisis de IA está activado, los nombres siguen este patrón mejorado:
[marca]-[palabra_clave_ia]-[producto]-[ubicacion]-[categoria]-[###].[extension]
Donde:
- La marca siempre tiene prioridad (mayor valor SEO)
- Las palabras clave extraídas por IA proporcionan contexto más rico sobre el contenido de la imagen
- Los componentes se separan con guiones
- Se eliminan espacios y caracteres especiales
- Se incluye número secuencial de tres dígitos al final
- La longitud total se limita a 60 caracteres
Si has perdido archivos debido a un error en el script:
- NO ELIMINES el archivo
rename_history.json
- REVISA el archivo de log para identificar el problema
- Ejecuta
python image_seo_supername.py --recovery-options --history "ruta/al/rename_history.json"
- Sigue las instrucciones proporcionadas para recuperar tus archivos.