Sunnify (descargador de Spotify)
Sunnify es una aplicación de descarga de Spotify que le permite descargar listas de reproducción completas localmente en su PC Mac/Linux/Windows.
Demostración del programa
A continuación se muestran capturas de pantalla que muestran la aplicación Sunnify en acción, descargando mi lista de reproducción personal de Spotify.
Instalación
Requisitos previos
- Python 3.6 o superior instalado en su sistema. Si no está instalado, descargue e instale Python desde python.org.
- Asegúrese de que pip, el administrador de paquetes de Python, esté instalado. Suele venir con Python. Puede verificar ejecutando
pip --version
en su terminal.
Ejecutable Sunnify (Windows)
Si está utilizando Windows, puede descargar directamente el archivo ejecutable desde aquí
Construyendo desde la fuente
Clonar el repositorio:
git clone https://github.com/sunnypatell/sunnify-spotify-downloader.git
Navegue al directorio del proyecto:
cd sunnify-spotify-downloader
Instale las dependencias requeridas:
Ejecute la aplicación:
python Spotify_Downloader.py
Uso
- Inicie la aplicación Sunnify.
- Ingrese la URL de su lista de reproducción de Spotify en el campo de entrada provisto.
- Marque la casilla Mostrar vista previa para ver el progreso.
- Marque la casilla de metadatos si desea descargar la portada, el autor, el álbum, la fecha de lanzamiento, etc.
- Presione Intro en el campo URL para comenzar a descargar.
- Las canciones descargadas se guardarán en el directorio multimedia (dondequiera que se encuentre su fuente o ejecutable).
Bibliotecas utilizadas
Sunnify utiliza las siguientes bibliotecas de Python:
- PyQt5: utilizado para la interfaz GUI.
- Navegador web: se utiliza para evitar la detección de tráfico de red de Spotify.
- solicitudes: se utiliza para realizar solicitudes HTTP.
- mutagen.id3: se utiliza para editar etiquetas ID3 y extraer metadatos.
Depuración común
Si encuentra algún problema al ejecutar Sunnify, intente los siguientes pasos:
- Asegúrese de tener una conexión a Internet estable.
- Verifique que haya ingresado la URL correcta de la lista de reproducción de Spotify.
- Compruebe si hay actualizaciones disponibles para Sunnify. Puede extraer los últimos cambios del repositorio y reinstalar las dependencias.
git pull
Ejecutar la aplicación web (si elige no utilizar la versión de escritorio de Windows)
Si desea ejecutar la aplicación web Sunnify localmente, siga estos pasos para configurar tanto el backend como el frontend:
Configuración del backend (backend de Sunnify)
Navegue hasta el directorio web-app/sunnify-backend
en su terminal:
cd web-app/sunnify-backend
Instale las dependencias requeridas si aún no lo ha hecho:
pip install -r requirements.txt
Ejecute el servidor backend:
Alternativamente, puedes usar:
Esto iniciará el backend en http://127.0.0.1:5000
.
El backend se comunica con el frontend utilizando Flask para crear puntos finales de API y Flask-CORS para manejar el intercambio de recursos entre orígenes (CORS), lo que permite solicitudes de API entre el frontend y el backend en diferentes dominios.
Configuración de interfaz (cliente web Sunnify)
Una vez que el backend se esté ejecutando, navegue hasta el directorio web-app/sunnify-webclient
:
Instale las dependencias de interfaz requeridas:
Inicie el servidor de desarrollo frontend:
La interfaz ahora se ejecutará localmente en http://localhost:3000
y podrá comunicarse con el backend en http://127.0.0.1:5000
.
Tecnologías utilizadas
Tecnologías de interfaz de usuario:
- ⚛️ React : se utiliza para crear los componentes de la interfaz de usuario.
- Next.js : proporciona el marco para la representación y el enrutamiento del lado del servidor.
- ? Tailwind CSS : se utiliza para estilizar y diseñar responsivo.
- ? shadcn/ui : proporciona componentes de interfaz de usuario personalizables y prediseñados.
- ? Lucide React : Se utiliza para íconos en toda la aplicación.
- React Hooks : utilizado para la gestión del estado y los efectos secundarios.
- Fetch API : se utiliza para realizar solicitudes HTTP al backend.
- Web Audio API : implementada para la funcionalidad de reproducción de audio.
Tecnologías de back-end:
- ? Flask : marco web de Python para crear los puntos finales de la API.
- ? Flask-CORS : maneja el intercambio de recursos entre orígenes (CORS) para solicitudes de API.
- ? Solicitudes : se utiliza para realizar solicitudes HTTP para recuperar datos de la lista de reproducción.
- ? Mutágeno : se utiliza para editar etiquetas ID3 y extraer metadatos.
- ?️ BeautifulSoup : se utiliza para raspar web y analizar contenido HTML.
- ? UUID : Genera ID únicos para pistas y procesos de análisis.
- ♂️ User-Agent : emula la actividad real del navegador para evitar los mecanismos de protección.
- ? Selenium : se utiliza para la automatización del navegador y la emulación de interacciones del usuario.
- ? FFmpeg : maneja la conversión y el procesamiento de audio.
Características clave
- Manejo de CORS : implementado para permitir solicitudes de origen cruzado de forma segura.
- ? Generación de ID : se generan ID únicas para pistas y procesos de análisis.
- ?️ Emulación de encabezados de navegador : imita encabezados de navegador reales para evitar la detección.
- Recuperación de metadatos de listas de reproducción : recupera y procesa información de listas de reproducción.
- ?️ Web Scraping : extrae los datos necesarios de las páginas web.
- ? Emulación de actividad real del navegador : simula patrones de navegación similares a los humanos.
- Rotación de agente de usuario : cambia periódicamente las cadenas de agente de usuario para evitar el bloqueo.
- ?️ Flask Routing : maneja varios puntos finales API para diferentes funcionalidades.
- ⚡ Procesamiento asincrónico : gestiona descargas y tareas de procesamiento simultáneas.
- Manejo de errores : gestión sólida de errores para varios escenarios.
Nota importante
El backend de Sunnify está alojado en Render bajo el plan de computación gratuito. Si no ha habido una llamada API al backend alojado en Render por un tiempo, es posible que se "quede dormido" y tarde un momento en despertarse cuando el frontend envía una solicitud (por ejemplo, descargando una lista de reproducción). Tenga paciencia, ya que el backend puede tardar unos segundos en activarse y procesar la solicitud.
Muy pronto
Actualmente estoy trabajando para integrar Sunnify con iTunes para transferir sin problemas la música descargada a dispositivos iOS, específicamente agregándola a la biblioteca de Apple Music. Además, también estoy trabajando para agregar soporte para sistemas de archivos Android para permitir la transferencia directa de música descargada a dispositivos Android.
Estén atentos a estas interesantes actualizaciones, que mejorarán la funcionalidad de Sunnify y brindarán una experiencia más fluida para los usuarios en diferentes plataformas.
⚖️Aviso Legal y Ético⚖️
Sunnify (Spotify Downloader) está destinado únicamente a fines educativos. Es su responsabilidad asegurarse de cumplir con las leyes y regulaciones de derechos de autor en su país o región. Descargar música protegida por derechos de autor sin la autorización adecuada puede ser ilegal en determinadas jurisdicciones.
Autor
Sunnify (Spotify Downloader) es desarrollado y mantenido por Sunny Jayendra Patel. Para consultas, sugerencias o comentarios, comuníquese con Sunny en [email protected].
Licencia
Este proyecto tiene la licencia personalizada. Consulte el archivo de LICENCIA para obtener más detalles.
Contribuyendo
Si encuentra algún error, tiene solicitudes de funciones o desea contribuir con mejoras, no dude en enviar una solicitud de extracción en GitHub.
Problemas de informes
Si encuentra algún problema al usar Sunnify, abra un problema en GitHub. Asegúrese de incluir información detallada sobre el problema, incluidos los pasos para reproducirlo y cualquier mensaje de error que pueda haber encontrado. Sus comentarios me ayudan a mejorar la aplicación para todos los demás.