Una aplicación modular y escalable para procesar descargas de Spotify: descompresión, organización y mejora de metadatos.
Py-SpotifyDownloadUtils/
├── src/ # Código fuente principal
│ ├── core/ # Funcionalidades base
│ │ ├── __init__.py
│ │ ├── metadata.py # Manejo de metadatos MP3
│ │ └── folder.py # Gestión de carpetas y archivos
│ │
│ ├── processors/ # Procesadores de archivos
│ │ ├── __init__.py
│ │ ├── uncompress.py # Descompresión de archivos
│ │ ├── loose_files.py # Procesamiento de archivos sueltos
│ │ ├── rename.py # Renombrado de carpetas y archivos
│ │ └── album_year.py # Añadir año a álbumes
│ │
│ ├── utils/ # Utilidades compartidas
│ │ ├── __init__.py
│ │ └── file_utils.py # Utilidades de archivos
│ │
│ └── config/ # Configuración
│ ├── __init__.py
│ └── settings.py # Configuración centralizada
│
├── utils/ # Archivos legacy (mantener para compatibilidad)
├── main.py # Punto de entrada principal
├── requirements.txt # Dependencias de Python
└── README.md # Este archivo
- Soporta ZIP, RAR, TAR, TAR.GZ, TGZ
- Extrae y organiza automáticamente
- Genera logs de extracción
- Detecta archivos MP3 sueltos
- Los mueve a sus álbumes correspondientes usando metadatos
- Elimina artistas duplicados del nombre del archivo (ej: "16. Lot 105 - Blur" → "16. Lot 105")
- Limpia strings no deseados
- Limpia nombres de carpetas
- Añade números de track a archivos
- Formato consistente
- Busca año de lanzamiento en Wikipedia y AOTY
- Añade año a nombres de carpetas (ej: "Album Name (2020)")
Edita src/config/settings.py para configurar:
# Carpetas de entrada/salida
COMPRESSED_FILES_FOLDER = r"C:\Users\tu_usuario\Downloads"
OUTPUT_FOLDER = r"C:\Users\tu_usuario\Downloads\output"
# Strings a eliminar
STRINGS_TO_REMOVE = [
"SpotiDownloader.com - ",
"spotifydown.com - ",
]
# Ruta a UnRAR (para archivos .rar)
UNRAR_TOOL_PATH = r"C:\Program Files\UnRAR\UnRAR.exe"python main.pyEl programa ejecutará automáticamente los 5 pasos:
- 🗜️ Descompresión de archivos
- 📁 Procesamiento de archivos sueltos
- 📝 Renombrado de carpetas
- 🔢 Añadir números de track
- 📅 Añadir años de álbumes
git clone <tu-repositorio>
cd Py-SpotifyDownloadUtilspip install -r requirements.txt- Windows: Descargar desde rarlab.com
- Actualizar
UNRAR_TOOL_PATHensettings.py
eyed3 # Lectura/escritura de metadatos MP3
requests # Peticiones HTTP
beautifulsoup4 # Web scraping
rarfile # Soporte para archivos RAR
Los módulos pueden usarse independientemente:
from src.processors import uncompress_files, process_loose_files
from src.config import OUTPUT_FOLDER, STRINGS_TO_REMOVE
# Solo descompresión
uncompress_files(source_folder, output_folder, unrar_path, extensions)
# Solo procesar archivos sueltos
process_loose_files(source_folder, output_folder, strings_to_remove)- ✅ Arquitectura modular y escalable
- ✅ Configuración centralizada
- ✅ Imports simplificados
- ✅ Eliminación de artistas duplicados
- ✅ Mejor organización del código
- ✅ Documentación mejorada
- La carpeta
utils/antigua se mantiene para compatibilidad, pero la nueva estructura ensrc/es la recomendada - Los archivos se procesan de forma secuencial para evitar conflictos
- Se recomienda hacer backups antes de procesar archivos importantes
Las contribuciones son bienvenidas. Por favor:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Este proyecto es de código abierto y está disponible bajo tu licencia preferida.
Hecho con ❤️ para organizar tu biblioteca musical