Featured image of post Toolify

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.

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.

Para ofrecer una interfaz al usuario se ha utilizado Flask, un framework ligero que permite montar un servidor web con pocas líneas de código.

El repositorio lo puedes encontrar en:

raulpadilladelgado/toolify (github.com)

La aplicación web la puedes usar en:

https://toolify-app.herokuapp.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 -r requirements.txt

  1. Las claves de la APP de Spotify Developers que habíamos comentado en el apartado anterior, serán introducidas como variables del sistema operativo.

TOOLIFY_SECRET_KEY SPOTIFY_REDIRECT_URI SPOTIFY_CLIENT_SECRET SPOTIFY_CLIENT_ID

  1. Finalmente, puedes arrancar la aplicación usando:
flask run

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.

Esto es todo, ¡muchas gracias por leer!

Creado con Hugo
Tema Stack diseñado por Jimmy