From 1817ae3e8140dcbfe56cdab18e727619ed924875 Mon Sep 17 00:00:00 2001 From: Ander Date: Sun, 13 Feb 2022 23:09:16 +0100 Subject: [PATCH] Adds post about Spotify data --- .../images/spotify_data.png | Bin 0 -> 30640 bytes .../index.md | 82 ++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 content/blog/2022-02-13-spotify-data-top-songs/images/spotify_data.png create mode 100644 content/blog/2022-02-13-spotify-data-top-songs/index.md diff --git a/content/blog/2022-02-13-spotify-data-top-songs/images/spotify_data.png b/content/blog/2022-02-13-spotify-data-top-songs/images/spotify_data.png new file mode 100644 index 0000000000000000000000000000000000000000..873d3876140e887167b9ced2d8e1ca40b0b1155a GIT binary patch literal 30640 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 HmC*kJM9KgY literal 0 HcmV?d00001 diff --git a/content/blog/2022-02-13-spotify-data-top-songs/index.md b/content/blog/2022-02-13-spotify-data-top-songs/index.md new file mode 100644 index 0000000..eb96275 --- /dev/null +++ b/content/blog/2022-02-13-spotify-data-top-songs/index.md @@ -0,0 +1,82 @@ +--- +template: post +title: "Cómo sacar tu Top de canciones (o la información que sea) de tu cuenta de Spotify" +date: 2022-02-13 +tags: spotify python +author: Ander Granado +--- + +Estoy con el scrapping muy pesado, lo sé. Esta vez es algo un poco diferente. No es web scrapping al uso, sino un pequeño ejemplo sobre cómo sacar información sobre los datos de uno mismo. Se pueden sacar cosas muy interesantes de los datos que generamos a diario. En mi caso, por ejemplo, uso Spotify a diario para escuchar música. No salgo de casa sin unos auriculares y en mi casa llevo los cascos hasta para cagar, asi que genero cierta información al usar Spotify. + +## Descargar tu información + +Muchas aplicaciones dejan descargar a los propios usuarios la información que generan. Para los ciudadanos europeos debería decir que todas, ya que es un derecho que te otorga el [artículo 15](https://support.spotify.com/es/article/gdpr-article-15-information/) del RGPD de la Unión Europea. Esto hace que prácticamente todos los servicios online te dejen descargar una copia con tus datos, al menos en esta parte del globo. + +Eso es muy interesante ya que te permite sacar información que las aplicaciones y servicios tienen sobre tí pero que, de por si, no te dejan ver a través de sus interfaces. Por ejemplo, en el caso de Spotify, te deja descargar tus [datos principales](https://support.spotify.com/es/article/data-rights-and-privacy-settings/), entre los que puedes ver, entre muchas cosas, el historial de reproducción de los últimos 365 días. Hya que matizar que, en el caso de Spotify, los datos que te otorgan con la herramienta que tienen para bajarte los datos no son completos, pero puedes pedir absolutamente todo [contactando directamente](mailto:privacy@spotify.com) con ellos. + +De esta manera, algo que no se puede ver desde la app de Spotify se puede hacer a través de los datos que te permiten descargar. Normalmente este tipo de datos suelen venir en algún tipo de formato como JSON o XML para poder ser tratados programáticamente. A veces, incluso dejan elegir entre formatos, como por ejemplo el caso de Instagram, en el que se puede bajar una version en HTML (muy útil si se quiere tener una copia como backup) o en JSON (si lo que se quiere es tratar esos datos de alguna manera). + +## Sacar lo más escuchado de la información de Spotify + +Volviendo a Spotify, se pueden sacar muchísima información de esos datos. En mi caso, como prueba para comenzar a trastear con los datos, simplemente he programado un script para poder ver cuál es mi top de canciones y artistas más escuchados. Alguno podría pensar que esto ya te lo da Spotify en el ¨wrapped¨ que hace cada año o en alguna lista que genera. En parte es cierto, pero te lo da "a su manera". Es decir, igual puedes saber tu Top 5 de artistas más escuchados, pero no el Top 10, ni saber cuántas veces has escuchado a ese artista, ni cuánto has escuchado a un artista que no está en el top, etc. El potencial de tener todos los datos en tu mano es que puedes **sacar la información que quieras y como quieras**. + +En este caso he probado con los datos básicos, que tienen información limitada. Si se pide la copia con toda la información, se pueden obtener muchos más datos. En la [documentación](https://support.spotify.com/es/article/understanding-my-data/) de Spotify se puede ver exactamente que datos te ofrece en ambos casos. Para el caso con los datos básicos, Spotify te da un zip con un puñado de archivos JSON. + +![Datos de Spotify](images/spotify_data.png "Datos básicos proporcionados por Spotify") + +Entre los archivos que da Spotify, los que interesan para esta prueba son los que se llaman `StreamingHistory[x].json`. Estos archivos contienen el historial de reproducción. La información respecto a la canción es bastante limitada pero la justa para saber cual es. El archivo tiene un formato como el siguiente: + +```json +[ + { + "endTime" : "2021-02-05 11:10", + "artistName" : "Hüsker Dü", + "trackName" : "Don't Want to Know If You Are Lonely", + "msPlayed" : 212426 + }, + { + "endTime" : "2021-02-05 12:16", + "artistName" : "Queens of the Stone Age", + "trackName" : "Go With The Flow", + "msPlayed" : 4890 + }, + { + "endTime" : "2021-02-05 12:23", + "artistName" : "Queens of the Stone Age", + "trackName" : "Go With The Flow", + "msPlayed" : 190646 + }, + { + "endTime" : "2021-02-05 12:24", + "artistName" : "Queens of the Stone Age", + "trackName" : "Make It Wit Chu", + "msPlayed" : 19403 + }, +``` + +Y así hasta el infinito. Te da el timestamp, nombre de la canción y artista y el tiempo de reproducción. Esto último es interesante porque puedes poner un mínimo para considerar que la canción haya sido escuchada, por ejemplo. También se puede jugar con el timestamp para ver cuando has escuchado mas o menos música. Las posibilidades son amplias. + +Con esto, el script que he creado para sacar el top de canciones y artistas más escuchados es el siguiente: + +`gist:ander94lakx/63776dacd6e986d935b9f01fff755921#spotify_top_songs_and_artists.py` + +No creo que merezca la pena entrar en detalle en el código, ya que es muy sencillo y la mayoría se explica solo. Es básicamente en a función que realiza una serie de pasos que se pueden resumir en los siguientes pasos: + +1. Gestionar un argumento para configurar el tamaño del Top. +2. Leer los archivos y cargar la información de los JSON en diccionarios. +3. Realizar las cuentas sobre la información cargada. +4. Ordenar, preparar y mostrar el top de canciones y artistas. + +Probablemente se pueda mejorar de muchas maneras. Se podría unificar la parte en la que se coge los datos con la parte en la que se calcula las reproducciones, pero quería separarlo para que fuera más sencillo de entender. Por otro lado, mi Python no es perfecto y alguna cosa con los sets (y otras muchas cosas más) seguro que se pueden hacer mejor. + +## Conclusiones + +Tener los datos que generas en una aplicación te permite sacar mucha información. Las aplicaciones y servicios lo saben y utilizan esos datos para sacar información para beneficiarse. Que menos que, ya que ellos tratan la información de sus usuarios, que dejen hacer lo mismo a sus propios usuarios. + +Ello, además, permite extender las capacidades que dan las propias aplicaciones. En el caso de Spotify, uno mismo podría hacer un análisis sobre la música que escucha, cómo la escucha o como ha ido cambiando en el tiempo, cosa que Spotify no ofrece a los usuarios. En el caso de otras aplicaciones se puede hacer mas de lo mismo. El hecho de poder obtener tu propia información es un primer paso para poder tratarla a tu manera. + +Seguro que hay mil ejemplos de casos interesantes en los que se puede usar este tipo de información que generan las aplicaciones. Si estás leyendo esto, te invito a que te descargues tu información de las aplicaciones que usas, le eches un vistazo y pienses en que usos interesantes puedes darle. La información es poder y que menos que que los usuarios podamos tener también ese poder. + +¡No paréis de descargaros lo que os pertenece! + +Happy hacking!