Where The Streets Have No Name – U2

Cuando una canción forma parte de la BSO de tu vida te remueve interiormente, a mi por lo menos lo consigue, y “Where The Streets Have No Name” lo es. Uno de los grandes himnos de U2 del que probablemente sea su mejor album, “The Joshua Tree”. En pie, por favor… #OneDayOneSong

Álbum: “The Joshua Tree (Super Deluxe)”
Publicación: 1987-03-03

Artista: U2
Popularidad Spotify: 81
Followers Spotify: > 4167714

Datos API Spotify (Audio Feautures for a track):

Popularidad canción: 63 (0 – 100)
Acousticness: 11 (0 – 1000)
Danceability: 495 (0 – 1000)
Duración: 338 segundos
Energy: 728 (0 – 1000)
Instrumentalness: 353 (0.0 – 1.0)
Key: D major
Liveness: 151 (0 – 1000)
Loudness: -9,5 dB (-60dB – 0dB)
Speechiness: 385 (0 – 1000)
Tempo: 126 bpm
Time_signature: 4
Valence: 218 (0 – 1000)

Allí donde soliamos gritar – Love of Lesbian

Hace años no podía con Love of Lesbian… incluso recuerdo haberme ido en mitad de un concierto de ellos porque no entendía cómo una banda no se podían tomar en serio a sí mismos… Hasta que publicaron en 2.016 un disco que hizo que cayera arrodillado ante su talento. Y fue entonces cuando los empecé a redescubrir, a entender su bendita locura… qué letras, qué melodías, qué himnos… como este “Allí donde solíamos gritar”. ¡Qué grandes son esta gente, coño! Si no los conoces, ya tardas #OneDayOneSong

Álbum: “1999 (o como generar incendios de nieve con una lupa enfocando la luna)”
Publicación: 2009-03-24

Artista: Love of Lesbian
Popularidad Spotify: 64
Followers Spotify: > 379488

Datos API Spotify (Audio Feautures for a track):

Popularidad canción: 56 (0 – 100)
Acousticness: 577 (0 – 1000)
Danceability: 499 (0 – 1000)
Duración: 337 segundos
Energy: 819 (0 – 1000)
Instrumentalness: 886 (0.0 – 1.0)
Key: A# major
Liveness: 368 (0 – 1000)
Loudness: -6,8 dB (-60dB – 0dB)
Speechiness: 347 (0 – 1000)
Tempo: 126 bpm
Time_signature: 4
Valence: 337 (0 – 1000)

Lo Bello y Lo Bestia – The New Raemon

Soy bastante fan de The New Raemon y “Lo bello y lo bestia” es uno de los mejores temas de su carrera en solitario. Melodía, órgano, arreglos de guitarra y letra brutales… me encanta #OneDayOneSong

Álbum: “Libre Asociación”
Publicación: 2011-03-16

Artista: The New Raemon
Popularidad Spotify: 44
Followers Spotify: > 26968

Datos API Spotify (Audio Feautures for a track):

Popularidad canción: 16 (0 – 100)
Acousticness: 802 (0 – 1000)
Danceability: 314 (0 – 1000)
Duración: 195 segundos
Energy: 578 (0 – 1000)
Instrumentalness: 155 (0.0 – 1.0)
Key: C minor
Liveness: 119 (0 – 1000)
Loudness: -8 dB (-60dB – 0dB)
Speechiness: 354 (0 – 1000)
Tempo: 160 bpm
Time_signature: 4
Valence: 172 (0 – 1000)

Ironic – Alanis Morissette

¿Qué hacías hace 24 años? Te lo digo yo, posiblemente escuchando a Alanis Morissette cantar “Ironic”… bufff cómo pasa el tiempo de rápido #OneDayOneSong

Álbum: “Jagged Little Pill (Remastered)”
Publicación: 1995

Artista: Alanis Morissette
Popularidad Spotify: 70
Followers Spotify: > 1123955

Datos API Spotify (Audio Feautures for a track):

Popularidad canción: 67 (0 – 100)
Acousticness: 218 (0 – 1000)
Danceability: 408 (0 – 1000)
Duración: 230 segundos
Energy: 582 (0 – 1000)
Instrumentalness: 0.0 (0.0 – 1.0)
Key: B major
Liveness: 159 (0 – 1000)
Loudness: -8,3 dB (-60dB – 0dB)
Speechiness: 508 (0 – 1000)
Tempo: 115 bpm
Time_signature: 5
Valence: 365 (0 – 1000)

Mi Realidad – Lori Meyers

Lori Meyers, uno de los exponentes indies españoles, no es una banda de cabecera para mi, y tardé en encontrarles su gracia, pero hay que reconocer que son capaces de hacer buenas canciones como “Mi Realidad” #OneDayOneSong

Álbum: “Cuando El Destino Nos Alcance”
Publicación: 2010-01-01

Artista: Lori Meyers
Popularidad Spotify: 58
Followers Spotify: > 169252

Datos API Spotify (Audio Feautures for a track):

Popularidad canción: 54 (0 – 100)
Acousticness: 953 (0 – 1000)
Danceability: 568 (0 – 1000)
Duración: 192 segundos
Energy: 741 (0 – 1000)
Instrumentalness: 2.09e-05 (0.0 – 1.0)
Key: C major
Liveness: 148 (0 – 1000)
Loudness: -6,5 dB (-60dB – 0dB)
Speechiness: 0.03 (0 – 1000)
Tempo: 150 bpm
Time_signature: 4
Valence: 0.88 (0 – 1000)

Intro – The XX

Tremendos… The xx mezclan instrumentos orgánicos y sintes en una producción minimalista. Arreglos y pasajes espaciales, a 2 voces casi siempre en la misma nota, muy poco dinamismo y experimentando con tensión y diversos ritmos dentro de un mismo tema, como “Intro” que es una auténtica maravilla #OneDayOneSong

Álbum: “xx”
Publicación: 2009-08-16

Artista: The xx
Popularidad Spotify: 73
Followers Spotify: > 3018041

Datos API Spotify (Audio Feautures for a track):

Popularidad canción: 72 (0 – 100)
Acousticness: 0.46 (0 – 1000)
Danceability: 607 (0 – 1000)
Duración: 128 segundos
Energy: 789 (0 – 1000)
Instrumentalness: 907 (0.0 – 1.0)
Key: A minor
Liveness: 128 (0 – 1000)
Loudness: -8,9 dB (-60dB – 0dB)
Speechiness: 278 (0 – 1000)
Tempo: 100 bpm
Time_signature: 4
Valence: 0.16 (0 – 1000)

Mr. Jones – Counting Crows

Desde California en el 93 otro single eterno, “Mr. Jones” de Counting Crows #OneDayOneSong

Álbum: “Films About Ghosts (The Best Of Counting Crows)”
Publicación: 2003-11-24

Artista: Counting Crows
Popularidad Spotify: 70
Followers Spotify: > 724075

Datos API Spotify (Audio Feautures for a track):

Popularidad canción: 59 (0 – 100)
Acousticness: 193 (0 – 1000)
Danceability: 571 (0 – 1000)
Duración: 273 segundos
Energy: 836 (0 – 1000)
Instrumentalness: 4.09e-06 (0.0 – 1.0)
Key: C major
Liveness: 182 (0 – 1000)
Loudness: -5,6 dB (-60dB – 0dB)
Speechiness: 371 (0 – 1000)
Tempo: 142 bpm
Time_signature: 4
Valence: 0.73 (0 – 1000)

A Song For The Lovers – Richard Ashcroft

Bueno, hoy no podía ser otra: “A Song For The Lovers” de Richard Ascroft, el que fuera cantante de The Verve, en su primer trabajo en solitario allá por el 2000 #OneDayOneSong

Álbum: “Alone With Everybody”
Publicación: 2000-01-01

Artista: Richard Ashcroft
Popularidad Spotify: 56
Followers Spotify: > 173527

Datos API Spotify (Audio Feautures for a track):

Popularidad canción: 52 (0 – 100)
Acousticness: 397 (0 – 1000)
Danceability: 389 (0 – 1000)
Duración: 326 segundos
Energy: 923 (0 – 1000)
Instrumentalness: 105 (0.0 – 1.0)
Key: A minor
Liveness: 114 (0 – 1000)
Loudness: -6,7 dB (-60dB – 0dB)
Speechiness: 475 (0 – 1000)
Tempo: 154 bpm
Time_signature: 4
Valence: 0.49 (0 – 1000)

Video Killed The Radio Star – The Presidents Of The United States Of America

“Video Killed The Radio Star” fue el primer single del grupo The Buggles en 1979, y hoy #DíaMundialDeLaRadio quiero escucharla pero la versión que hicieron “The Presidents Of The United States Of America” transportándola al rock #OneDayOneSong

Álbum: “Pure Frosting”
Publicación: 1998-02-12

Artista: The Presidents Of The United States Of America
Popularidad Spotify: 62
Followers Spotify: > 216128

Datos API Spotify (Audio Feautures for a track):

Popularidad canción: 53 (0 – 100)
Acousticness: 184 (0 – 1000)
Danceability: 578 (0 – 1000)
Duración: 203 segundos
Energy: 713 (0 – 1000)
Instrumentalness: 0.0 (0.0 – 1.0)
Key: C# major
Liveness: 102 (0 – 1000)
Loudness: -6,9 dB (-60dB – 0dB)
Speechiness: 578 (0 – 1000)
Tempo: 141 bpm
Time_signature: 4
Valence: 741 (0 – 1000)

Jugando con Python y el API de Spotify

Antes de empezar que conste que las líneas que vas a leer a continuación no pretenden sentar cátedra sobre programación en python ni nada por el estilo, de hecho estoy introduciéndome en este lenguaje todavía. La única intención es demostrarte las posibilidades que se pueden llevar a cabo con un lenguaje de programación y las API de servicios que podemos utilizar de forma gratuita para obtener datos y tratarlos. En este caso voy a obtener información de las entrañas de Spotify a través de un pequeño programa escrito en Python, de forma muy sencilla, que compartiré contigo.

Spotify es un servicio de música en streaming. Personalmente pienso que es de las mejores cosas que se han podido inventar jamás (casi tanto como la pasta italiana). Si no lo conoces o no lo utilizas, no sabes lo que te estás perdiendo. Disponer de una cuenta en Spotify (gratuita o premium) te proporciona acceso a cientos de miles de canciones y obras desde tu ordenador o móvil (ojo, parece que me lleve comisión de Spotify pero no es así; lo digo como recomendación personal). Pero además de acceder a toda esa información desde la aplicación oficial, Spotify te proporciona un acceso “por detrás” a través de un API, para que desde tu aplicación o código puedas obtener información del interior de Spotify. Como cualquier otro API, es necesario que obtengas unas claves que te permitirán conectarte al servicio. En este caso deberás crearte una cuenta como desarrollador Spotify y dar de alta una aplicación. Una vez lo hagas tendras un Client ID y un Client Secret.

¿Pero qué tipo de información puedes obtener del API de Spotify? No sólo toda la información de listas de reproducción, canciones, artistas, etc. Si no que además tienes acceso a información más técnica sobre una canción en concreto: su tempo, la duración, su grado de “instrumentalidad”, de energía, etc. Es decir, Spotify tiene analizada cada canción en una serie de parámetros interesantes que podemos conocer sólo a través del API.

¿Y por qué Python? ¿Y por qué no? Si tuviera que enseñar a programar a mis hijas, a fecha de esta publicación me decantaría por enseñarles Python. Además me apetece aprender más a fondo este lenguaje y es una buena oportunidad para ello. De hecho dispone de un montón de librerías muy potentes para el tratamiento masivo de datos, etc. como Spotipy, librería que vamos a utilizar para ayudarnos a conectar al API de Spotify desde Python.

Cuál es el objetivo

Tengo una playlist en Spotify con más de 400 canciones y quiero obtener 3 ficheros con la siguiente información para posteriormente utilizarla:

El programa debe conectarse a Spotify, acceder a la playlist y para cada canción de dicha colección acceder de nuevo a Spotify para obtener toda la información que quiero, y guardarla en esos 3 ficheros.

Empezamos

Lo primero que hacemos es importar los módulos o librerías que vamos a necesitar; en este caso pandas y spotipy:

import pandas as pd 
import spotipy 

""" Necesitamos los modulos de spotipy y pandas. Si nos los tenemos, los instalaremos escribiendo en la consola:
	pip install spotipy
	pip install pandas
"""

A continuación y gracias a la librería spotipy, nos conectaremos a Spotify con nuestras claves Client ID y Client Secret.

sp = spotipy.Spotify() 
from spotipy.oauth2 import SpotifyClientCredentials 
cid ="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 
secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 
client_credentials_manager = SpotifyClientCredentials(client_id=cid, client_secret=secret) 
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager) 
sp.trace=False 

Ahora ya nos queda acceder a nuestra playlist para descargarnos la lista de canciones que la conforman. ¿Pero cómo lo hacemos? Necesitamos el identificador de la playlist que podemos obtener fácilmente de la aplicación oficial. Sólo tenemos que acceder al menú de opciones de la playlist y seleccionar la opción “Compartir > Copiar URI de Spotify”. Lo que obtenemos es la siguiente cadena spotify:user:***usuario***:playlist:***codigoplaylist*** con el nombre de tu usuario y el código de la playlist. Así que copia el nombre del usuario y el código de la playlist, y pégalos en la siguiente línea de python:

# Obtenemos información de la playlist de Spotify
playlist = sp.user_playlist("***usuario***", "***codigoplaylist***", fields="tracks,next")
tracks = playlist["tracks"] 
songs = tracks["items"]

Ahora para cada canción sólo faltaría realizar las llamadas pertinentes y obtener la información que queremos para acabar exportando todo a una serie de ficheros. Sencillo, ¿no?

A continuación dejo el código fuente de este pequeño programa para que lo descargues si quieres. Recuerda que no está optimizado ni es muy limpio; el objetivo era didáctico y sin querer perder mucho el tiempo… Aunque al final estoy utilizándolo para #OneDayOneSong.

Espero que te haya resultado interesante este contenido.