Toolify

Introducción

Recientemente he estado trabajando en un proyecto personal que surge por la necesidad de una función específica en spotify, que no podía conseguir a través de la app oficial de la plataforma. Mi objetivo era poder organizar mis playlist por orden de fecha de estreno de la canción. Spotify te permite organizarlas por fecha en la que la añadiste a la playlist, pero no por el tipo de organización que yo quería.

Entonces fue cuando descubrí Sort Your Music, que es una aplicación web que te ofrece herramientas para organizar tus playlist de una forma más avanzada.

Gracias a la anterior web me decidí por montar mi propia implementación que tenga lo que me gusta y necesito, y montarlo en algo que de un modo rápido me permita lanzar mi comando de organizar playlists.

Con el tiempo también me gustaría que la aplicación evolucionase y tuviese más herramientas útiles para los usuarios que permitan gestionar sus playlists en otro nivel, encontrando duplicados, sugiriendo canciones u obteniendo estadísticas sobre lo que escuchan.

Ahora mismo, el proyecto se trata de una aplicación Python sencilla, que hace uso de la librería spotipy, que nos simplifica la forma en la que interactuamos con la API de Spotify. Al arrancar la aplicación, seremos capaces de listar las playlist del usuario y ordenar una determinada playlist por fecha de estreno de las canciones en orden descendente.

El repositorio lo puedes encontrar en:

raulpadilladelgado/toolify (github.com)

Spotify for developers

Para que podamos utilizar la API de Spotify necesitamos:

  • Crearte una cuenta en Spotify Developers e iniciar sesión
    No es necesario crear una cuenta si inicias sesión con la cuenta que habitualmente usas para Spotify
  • Es hora de ir a nuestro dashboard y crear una nueva APP
  • Una vez creada la APP, es necesario localizar tu client_id y client_secret, pues serán las claves para que podamos realizar operaciones utilizando la API de Spotify. En el README del proyecto se muestra donde se deben incluir estos valores.
  • Definir la ruta de redirección. La primera vez que un usuario interactua con la aplicación que hemos creado es necesario que se autentifique y que verifique que nos da permiso para alterar cierta información relacionada a sus playlists a un scope determinado. Esta ruta de redirección sirve para que una vez se finalice correctamente el proceso de dar acceso, el token generado se guarde. Debemos ir a «Edit Settings»(vease en la imagen anterior), y tener definido lo siguiente:

Ejecutar Toolify

  1. Cuando montas el proyecto por primera vez, es necesario instalar SpotyPy
pip install spotipy
  1. Las claves de la APP de Spotify Developers que habíamos comentado en el apartado anterior, serán introducidas en este fichero de credenciales que ahora mismo la aplicación espera encontrar para ser usado. (Credentials.py)
class Credentials:
    SPOTIFY_CLIENT_SECRET = "your spotify clieent secret"

    SPOTIFY_CLIENT_ID = "your spotify client id"

    SPOTIFY_REDIRECT_URI = "your spotify app redirect uri"
  1. Finalmente, puedes arrancar la aplicación ejecutado el archivo main.py
python main.py

Para consultar estos pasos en el README del proyecto y ver el código fuente:

raulpadilladelgado/toolify (github.com)

Siguientes pasos

En esta primera iteración con el proyecto he ofrecido la posibilidad de ordenar el contenido de una playlist por fecha de estreno de las canciones, entonces surge una pregunta, ¿como explotar el proyecto?

Me gusta mucho crear mis propias playlists, y para mi el orden es fundamental para que cuando esté escuchando música vayan apareciendo las canciones en una secuencia de mi interés, como puede ser la fecha de estreno de las canciones o el BPM de la canción si estás buscando que las canciones más marchosas estén primero. Jugando con como ordenamos las canciones se puede ofrecer una experiencia totalmente distinta.

En una playlist no todo es ordenar, a veces se duplican canciones o se introducen versiones editadas de las canciones originales (lo que se conoce como Remix) e interesa solo mantener la última versión. Sería interesante que Toolify identificase estos casos, que los muestre al usuario para que decida que mantener, y finalmente que la aplicación borre lo que no interese.

Podríamos ser capaces de mostrar al usuario sus estadísticas de uso en spotify, sus cantantes más escuchados, canciones más escuchadas, entre otros datos de interés.

Me gustaría disponer de las funcionalidades de toolify en todo momento, por lo que había pensado en tener una aplicación móvil para ello. He encontrado información de interés para tener un frontend basado en python y que este se pueda exportar a un APK de android. También, toolify podría funcionar en modo de peticiones HTTP y que se puedan llamar desde cualquier tipo de frontend.

https://towardsdatascience.com/building-android-apps-with-python-part-1-603820bebde8

Esto es todo, ¡muchas gracias por leer!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *