Skip to content

Tired of manually extracting and renaming folders from your Spotify downloads?

Notifications You must be signed in to change notification settings

RoldanIsaac/Py-SpotifyDownloadUtils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spotify Download Utils v2.0

Una aplicación modular y escalable para procesar descargas de Spotify: descompresión, organización y mejora de metadatos.

🏗️ Estructura del Proyecto

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

✨ Características

1. Descompresión Automática

  • Soporta ZIP, RAR, TAR, TAR.GZ, TGZ
  • Extrae y organiza automáticamente
  • Genera logs de extracción

2. Procesamiento de Archivos Sueltos

  • 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

3. Renombrado Inteligente

  • Limpia nombres de carpetas
  • Añade números de track a archivos
  • Formato consistente

4. Enriquecimiento de Metadatos

  • Busca año de lanzamiento en Wikipedia y AOTY
  • Añade año a nombres de carpetas (ej: "Album Name (2020)")

🚀 Uso

Configuración

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"

Ejecución

python main.py

El programa ejecutará automáticamente los 5 pasos:

  1. 🗜️ Descompresión de archivos
  2. 📁 Procesamiento de archivos sueltos
  3. 📝 Renombrado de carpetas
  4. 🔢 Añadir números de track
  5. 📅 Añadir años de álbumes

📦 Instalación

1. Clonar el repositorio

git clone <tu-repositorio>
cd Py-SpotifyDownloadUtils

2. Instalar dependencias

pip install -r requirements.txt

3. Instalar UnRAR (opcional, para archivos .rar)

  • Windows: Descargar desde rarlab.com
  • Actualizar UNRAR_TOOL_PATH en settings.py

📋 Dependencias

eyed3          # Lectura/escritura de metadatos MP3
requests       # Peticiones HTTP
beautifulsoup4 # Web scraping
rarfile        # Soporte para archivos RAR

🔧 Uso Modular

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)

🆕 Novedades v2.0

  • Arquitectura modular y escalable
  • Configuración centralizada
  • Imports simplificados
  • Eliminación de artistas duplicados
  • Mejor organización del código
  • Documentación mejorada

📝 Notas

  • La carpeta utils/ antigua se mantiene para compatibilidad, pero la nueva estructura en src/ es la recomendada
  • Los archivos se procesan de forma secuencial para evitar conflictos
  • Se recomienda hacer backups antes de procesar archivos importantes

🤝 Contribuciones

Las contribuciones son bienvenidas. Por favor:

  1. Fork el proyecto
  2. Crea una rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add some AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

📄 Licencia

Este proyecto es de código abierto y está disponible bajo tu licencia preferida.


Hecho con ❤️ para organizar tu biblioteca musical

About

Tired of manually extracting and renaming folders from your Spotify downloads?

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages