Spotify tiene una API muy sencilla de usar. Sin Logins, Oauth ni nada. Peticiones por url y datos en formato XML. Muy sencillo todo. Esto es porque solo te permite pedir información, no interactuar.
Hoy he estado jugando un poco con la API. No he conseguido hacer lo que quería -mostrar una lista de musica propia desglosando sus títulos en una web-. Parece que con la api para cuentas no premium no pueden consultarse esos datos… 🙁
Aún así, he fabricado una miniclase para consultar uris de Spotify (de albumes, artistas o tracks) y ya que la he hecho la publico aquí por si alguien -o yo mismo dentro de un tiempo- la necesita.
Es muy sencilla de usar y tiene solo un método: spotify::get()
Solo un detalle: La api de Spotify solo permite 10 consultas por segundo al mismo servidor. Por ese motivo es recomendable no anidar consultas una tras otra y cachear los resultados -en base de datos, fichero o ram- para que no te bloqueen el acceso durante un rato.
Seguidamente la clase:
'album',
'url' => self::uri2open($spotifyUri),
'name' => (string) $xml->name,
'year' => (string) $xml->released,
'artist' => (string) $xml->artist->name,
'artist_url' => self::uri2open($xml->artist['href']),
);
foreach ($xml->tracks->track as $t)
{
$element['item'][] = array(
"type" => 'track',
"url" => self::uri2open($t['href']),
"name" => (string) $t->name,
'artist' => (string) $t->artist->name,
'artist_url' => self::uri2open($t->artist['href']),
'length' => (string) $t->length,
'popularity' => (int) $t->popularity
);
}
return $element;
}
protected function artist($xml,$spotifyUri)
{
$element = array(
'type' => 'artist',
'url' => self::uri2open($spotifyUri),
'name' => (string) $xml->name,
);
foreach ($xml->albums->album as $a)
{
$element['item'][] = array(
'type' => 'album',
'url' => self::uri2open($a['href']),
'name' => (string) $a->name,
'year' => (string) $a->released,
'artist' => (string) $a->artist->name,
'artist_url' => self::uri2open($a->artist['href']),
);
}
return $element;
}
protected function track($xml,$spotifyUri)
{
$element = array(
"type" => 'track',
"url" => self::uri2open($spotifyUri),
"name" => (string) $xml->name,
'artist' => (string) $xml->artist->name,
'artist_url' => self::uri2open($xml->artist['href']),
'length' => (string) $xml->length,
'popularity' => (int) $xml->popularity
);
return $element;
}
}
2 respuestas a “Clase PHP para consultar la API de Spotify”
Si que te la has currado 😉
Thanks por compartirla!
Bueno, es bastante tonta, pero a mi me resulta más cómodo preocuparme de las apis una sola vez y a partir de ahi trabajar solo con arrays así que así se queda! 😉
Gracias por el comentario.