Una aplicación web de Flask que permite a los usuarios obtener sus artistas y canciones más escuchadas en Spotify haciendo uso de la API de Spotify.
Esta aplicación permite a los usuarios iniciar sesión con su cuenta de Spotify y obtener un análisis de sus datos de escucha. Podrán ver sus artistas y canciones favoritas, así como los géneros que más escuchan. Está construida usando Flask, y se conecta a la API de Spotify para recopilar esta información.
- ✅ Autenticación a través de la cuenta de Spotify.
- 🎤 Obtención de los top artistas y canciones del usuario.
-
Cuenta en Spotify for Developers: Necesitarás crear una aplicación para obtener el
CLIENT_ID
yCLIENT_SECRET
. -
Spotify API Credentials: Una vez que hayas creado la aplicación, obtén tus credenciales de:
CLIENT_ID
CLIENT_SECRET
- Configura el Redirect URI de tu aplicación en Spotify a
http://localhost:5000/callback
.
El CLIENT_ID
y el CLIENT_SECRET
lo encontraréis dentro de la información de la aplicación.
-
Python 3.10: Usa
pyenv
para asegurarte de que tienes la versión correcta de Python. -
Poetry: Para gestionar las dependencias de Python, asegúrate de tener instalado
poetry
.
- Clona el repositorio y navega al directorio del proyecto:
git clone https://github.com/RuthNavarroCarrasco/Spotify-API.git cd Spotify-API
- Crea un archivo
.env
en la raíz del proyecto con las siguientes variables:CLIENT_ID="foo" CLIENT_SECRET="bar"
- Instala las dependencias y configura el entorno
make setup
Primero abre una shell de poetry
make shell
Luego inicia la aplicación para ver tus artistas y canciones más escuchadas
make run
La aplicación estará disponible en http://localhost:5000
.
El siguiente diagrama muestra el flujo de autenticación y cómo la aplicación interactúa con la API de Spotify para extraer los datos de las canciones y renderizar la salida en HTML.
-
Solicitud de autenticación: El proceso comienza cuando el usuario inicia sesión en la aplicación. Esto genera una solicitud de autenticación que redirige al usuario a Spotify para autorizar la aplicación.
-
Comprobar Token: Al recibir el código de autorización de Spotify, la aplicación solicita un token de acceso. Este token es necesario para hacer solicitudes a la API de Spotify en nombre del usuario.
- Si el token es válido, la aplicación continúa al siguiente paso.
- Si el token ha expirado, se activa un proceso de "Refrescar Token" para obtener un nuevo token sin que el usuario tenga que iniciar sesión de nuevo.
-
Refrescar Token: En caso de que el token haya expirado, la aplicación utiliza el "refresh token" para solicitar un nuevo token de acceso. Esto permite mantener la sesión activa y evita que el usuario tenga que autenticarse de nuevo.
-
Solicitud API: Una vez que se ha comprobado o refrescado el token, la aplicación realiza solicitudes a la API de Spotify para obtener datos específicos, como los artistas y canciones más escuchados del usuario.
-
Extraer datos de canciones: Los datos obtenidos de la API de Spotify se procesan para extraer detalles como el nombre de las canciones, artistas, géneros, y otros elementos relevantes.
-
Renderizar HTML: Finalmente, los datos extraídos se pasan a una plantilla HTML en Flask, que se muestra al usuario en el navegador.
Este flujo asegura que la aplicación maneje de manera segura y eficiente la autenticación y autorización de los usuarios, mientras proporciona un análisis de sus preferencias de Spotify.