Contenido
Spotify Scraper
open.spotify.com
Spotify se sirve mediante un endpoint de plugin dedicado en lugar de la obtención de página genérica. Lee los mismos datos que carga el propio reproductor web de Spotify, así que devuelve cifras que la Web API oficial omite, como los recuentos de reproducciones y los oyentes mensuales. Dale un artista, un álbum, una canción o una playlist (una URL de open.spotify.com, un URI de Spotify o un ID sin más junto con type) y lo devuelve ya analizado. Un artista: seguidores, oyentes mensuales, ranking mundial, principales ciudades con su número de oyentes, biografía, marca de verificado, enlaces sociales e imágenes, canciones más populares con sus reproducciones, la discografía agrupada en lanzamientos populares, álbumes, sencillos y recopilatorios, artistas relacionados, los lanzamientos en los que aparece y las playlists que lo incluyen; discography=true añade la lista completa de lanzamientos, por páginas. Un álbum: tipo, fecha de lanzamiento, sello, copyright, artistas, portada y sus canciones con reproducciones. Una canción: número de reproducciones, duración, indicador de contenido explícito, álbum y todos los artistas acreditados. Una playlist: nombre, descripción, seguidores, propietario, portada y sus canciones con reproducciones, la fecha en que se añadió cada una, el tempo y la tonalidad. Con type=search y una consulta devuelve las canciones, artistas, álbumes o playlists coincidentes. Las listas se paginan con offset y max_results, hasta 1.000 canciones de un álbum, 2.000 canciones de una playlist o 100 resultados de búsqueda por llamada. No hace falta cuenta de Spotify, app de desarrollador ni token OAuth.
Qué puedes extraer
- Seguidores, oyentes mensuales, ranking mundial y principales ciudades del artista con su número de oyentes
- Biografía, marca de verificado, enlaces sociales e imágenes del artista
- Canciones más populares con reproducciones, grupos de discografía (lanzamientos populares, álbumes, sencillos, recopilatorios) y la lista completa de lanzamientos
- Artistas relacionados, lanzamientos en los que aparece el artista y playlists que lo incluyen
- Tipo de álbum, fecha de lanzamiento, sello, copyright, artistas, portada y canciones con reproducciones
- Número de reproducciones de la canción, duración, indicador de contenido explícito, álbum y todos los artistas acreditados
- Nombre, descripción, seguidores, propietario y portada de la playlist, y sus canciones con reproducciones, fecha en que se añadieron, tempo y tonalidad
- Búsqueda de canciones, artistas, álbumes o playlists, hasta 100 resultados por consulta
- Entrada como URL de open.spotify.com, URI de Spotify o ID sin más; las listas se paginan con offset y max_results
Endpoints dedicados
/music/spotify Artistas, álbumes, canciones, playlists y búsqueda de Spotify
type=artist: artist (followers, monthlyListeners, worldRank, topCities, biography, externalLinks, images, verified), topTracks con playcount, grupos de discography con totales, relatedArtists, appearsOn, y las playlists featuredOn y discoveredOn; discography=true añade la lista completa releases. type=album: album (tipo, fecha de lanzamiento, sello, copyright, artistas, portada) y tracks con playcount. type=track: track con playcount, duración, indicador de explícito, álbum y todos los artistas acreditados. type=playlist: playlist (nombre, descripción, followers, propietario, portada, totalTracks) y tracks con playcount, addedAt, bpm y key. type=search con query y search_type (tracks, artists, albums o playlists): results. id admite una URL de open.spotify.com, un URI de Spotify o un ID sin más (en ese caso indica type). Las listas se paginan con offset y max_results (canciones de álbum hasta 1.000, de playlist hasta 2.000, búsqueda hasta 100, lanzamientos hasta 1.000) y responden con hasMore y nextOffset.
Cómo rastrearlo
curl -X POST \
-H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
"https://api.scrapeunblocker.com/music/spotify?type=artist&id=4tZwfgrHOc3mvqYlEYSvVi"import requests
resp = requests.post(
"https://api.scrapeunblocker.com/music/spotify",
headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
params={"type": "artist", "id": "4tZwfgrHOc3mvqYlEYSvVi"},
)
print(resp.text)import { ScrapeUnblockerClient } from 'scrapeunblocker';
const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });
const artist = await su.spotifyArtist('4tZwfgrHOc3mvqYlEYSvVi');
const results = await su.spotifySearch('daft punk', { searchType: 'tracks' });
console.log(artist);
console.log(results); Las peticiones son POST y sus parámetros van en la query string. El renderizado en navegador siempre ocurre: no hay ningún flag que activar.
Ejemplo de respuesta
{
"type": "artist",
"artist": {
"id": "4tZwfgrHOc3mvqYlEYSvVi",
"name": "Daft Punk",
"uri": "spotify:artist:4tZwfgrHOc3mvqYlEYSvVi",
"url": "https://open.spotify.com/artist/4tZwfgrHOc3mvqYlEYSvVi",
"verified": true,
"followers": 11826317,
"monthlyListeners": 28475892,
"worldRank": 252,
"topCities": [
{
"city": "Mexico City",
"country": "MX",
"region": "CMX",
"listeners": 752913
},
{
"city": "London",
"country": "GB",
"region": "ENG",
"listeners": 419944
},
{
"city": "Santiago",
"country": "CL",
"region": "RM",
"listeners": 384724
}
],
"biography": "As they evolved from '90s French house pioneers to 2000s dance tastemakers to mainstream heroes in the 2010s, Daft Punk remained one of dance music's most iconic acts. With their early singles and 199...",
"externalLinks": [
{
"name": "facebook",
"url": "https://facebook.com/daftpunk/?locale=fr_FR"
},
{
"name": "instagram",
"url": "https://instagram.com/daftpunk/"
}
],
"image": "https://i.scdn.co/image/ab6761610000e5ebd3aa7cc0e419b6c459b08e8e"
},
"topTracks": [
{
"id": "0DiWol3AO6WpXZgp0goxAV",
"name": "One More Time",
"url": "https://open.spotify.com/track/0DiWol3AO6WpXZgp0goxAV",
"playcount": 982262281,
"durationMs": 320357,
"explicit": false,
"playable": true,
"artists": [
{
"id": "4tZwfgrHOc3mvqYlEYSvVi",
"name": "Daft Punk",
"uri": "spotify:artist:4tZwfgrHOc3mvqYlEYSvVi",
"url": "https://open.spotify.com/artist/4tZwfgrHOc3mvqYlEYSvVi"
}
],
"album": {
"id": "2noRn2Aes5aoNVsU6iWThc",
"url": "https://open.spotify.com/album/2noRn2Aes5aoNVsU6iWThc"
}
},
{
"id": "2Foc5Q5nqNiosCNqttzHof",
"name": "Get Lucky (Radio Edit) [feat. Pharrell Williams and Nile Rodgers]",
"url": "https://open.spotify.com/track/2Foc5Q5nqNiosCNqttzHof",
"playcount": 1454306499,
"durationMs": 247632,
"explicit": false,
"playable": true,
"artists": [
{
"id": "4tZwfgrHOc3mvqYlEYSvVi",
"name": "Daft Punk",
"uri": "spotify:artist:4tZwfgrHOc3mvqYlEYSvVi",
"url": "https://open.spotify.com/artist/4tZwfgrHOc3mvqYlEYSvVi"
}
],
"album": {
"id": "2ePFIvZKMe8zefATp9ofFA",
"url": "https://open.spotify.com/album/2ePFIvZKMe8zefATp9ofFA"
}
}
],
"discography": {
"popularReleases": [
{
"id": "2noRn2Aes5aoNVsU6iWThc",
"name": "Discovery",
"url": "https://open.spotify.com/album/2noRn2Aes5aoNVsU6iWThc",
"albumType": "album",
"releaseDate": "2001-03-12",
"releaseDatePrecision": "day",
"totalTracks": 14,
"label": "Daft Life Ltd./ADA France",
"image": "https://i.scdn.co/image/ab67616d0000b2731e81bff9807a9e629fce5ade",
"artists": null,
"playable": true
}
],
"albums": {
"totalCount": 15,
"items": [
{
"id": "5AFf68gtvNgGLZarsyEEL8",
"name": "Random Access Memories (Drumless Edition)",
"url": "https://open.spotify.com/album/5AFf68gtvNgGLZarsyEEL8",
"albumType": "album",
"releaseDate": "2023-11-17",
"releaseDatePrecision": "day",
"totalTracks": 13,
"label": "Legacy Recordings",
"image": "https://i.scdn.co/image/ab67616d0000b273d1ec82bc061a90006584aa9b",
"playable": true
}
]
},
"singles": {
"totalCount": 21
},
"compilations": {
"totalCount": 1
}
},
"relatedArtists": [
{
"id": "3yDIp0kaq9EFKe07X1X2rz",
"name": "Nile Rodgers",
"url": "https://open.spotify.com/artist/3yDIp0kaq9EFKe07X1X2rz"
},
{
"id": "1rAv1GhTQ2rmG94p9lU3rB",
"name": "Julian Casablancas",
"url": "https://open.spotify.com/artist/1rAv1GhTQ2rmG94p9lU3rB"
}
],
"pagesFetched": 1
} Preguntas frecuentes
¿Es legal hacer scraping de Spotify?
Recopilar datos públicos del catálogo de Spotify, como los recuentos de reproducciones, el número de seguidores y las listas de canciones, es lícito en muchas jurisdicciones, pero las normas dependen de tu país, de los datos que recopiles y de cómo los uses. Las playlists creadas por usuarios llevan el nombre de su propietario, que puede ser un dato personal, así que cumple las normas de privacidad que se te apliquen. ScrapeUnblocker devuelve lo que Spotify muestra sin iniciar sesión; qué recopilas y cómo lo usas es responsabilidad tuya.
¿Cómo hago scraping de Spotify sin que me bloqueen?
El plugin no renderiza el reproductor web de Spotify: pide los datos al propio gateway web de Spotify con un token anónimo, sin navegador, a través de los exits ISP de ScrapeUnblocker, con las mismas lecturas que hace el reproductor web. En el benchmark de ScrapeUnblocker devolvió datos en el 99,9 % de 1.286 llamadas, cada una con una entrada distinta (330 artistas, 270 álbumes, 330 canciones, 180 playlists y 176 búsquedas, con IDs obtenidos de 71 búsquedas por género y país), unos 1,1 s por llamada; el único fallo fue una búsqueda de un término poco común para la que Spotify no devolvió datos.
¿Devuelve los recuentos de reproducciones y los oyentes mensuales de Spotify?
Sí. Los recuentos de reproducciones llegan para cada canción (canciones más populares, canciones de álbumes y playlists y consultas de una sola canción), y un artista llega con sus oyentes mensuales, seguidores, ranking mundial y principales ciudades con su número de oyentes. La Spotify Web API oficial no expone estas cifras; el plugin las lee de los datos públicos que el reproductor web de Spotify muestra sin iniciar sesión, así que no hace falta cuenta de Spotify, app de desarrollador ni token OAuth.
¿Cuántos resultados de Spotify puedo obtener por llamada?
La búsqueda devuelve unos 100 resultados por consulta: hasta 100 (max_results, por defecto 20) de canciones, artistas, álbumes o playlists, según search_type. Las canciones de un álbum llegan de 100 en 100 por página hasta 1.000 por llamada, las de una playlist de 100 en 100 hasta 2.000, y la lista completa de lanzamientos de un artista (discography=true) de 50 en 50 hasta 1.000. Cada lista responde con hasMore y nextOffset; pasa nextOffset como offset para continuar.
¿Importa el país en los datos de Spotify?
El mercado de Spotify sigue al país desde el que sale la petición, lo que puede cambiar si una canción se puede reproducir y el orden de los resultados de búsqueda; los recuentos de reproducciones son los mismos en todas partes. Si no se fija proxy_country (ISO-2, como DE o GB), el mercado sigue al exit por el que salga la llamada, así que fija proxy_country cuando necesites resultados coherentes en un mismo mercado. Una playlist privada se trata como no encontrada y responde 404.
¿Cuánto cuesta hacer scraping de Spotify?
Cada página obtenida de Spotify se factura como una petición: un artista, una canción, un álbum o una playlist con sus primeras 100 canciones, o una búsqueda de hasta 50 resultados es 1 petición, y las listas más largas cuestan una más por página, con pagesFetched mostrando el número exacto. 1 petición = 1 crédito, 1,00 EUR por cada 1.000 en Pay as you go, bajando hasta unos 0,55 EUR por cada 1.000 en el plan Ultimate. No se facturan los bloqueos ni los timeouts, y la prueba gratuita incluye 500 peticiones sin tarjeta.
Scrapers relacionados
Spotify y los demás nombres y marcas de open.spotify.com pertenecen a su titular y aquí se usan solo para identificar el sitio web con el que funciona esta API. ScrapeUnblocker es un servicio independiente: no está afiliado al titular de open.spotify.com ni cuenta con su respaldo o patrocinio.
Empieza a rastrear este sitio hoy
Plan gratuito incluido. No necesitas tarjeta para probarlo.