Tous les scrapers

Contenu

Spotify Scraper

open.spotify.com

99.9% Taux de réussite
1.1s Réponse moyenne
Bot detection + rate limiting Protection
1 286 appels Mesuré sur

Spotify est servi via un endpoint de plugin dédié plutôt que par la récupération de page générique. Il lit les mêmes données que charge le lecteur web de Spotify, il renvoie donc des chiffres que l'API Web officielle omet, comme les nombres d'écoutes et les auditeurs mensuels. Donnez-lui un artiste, un album, un titre ou une playlist - une URL open.spotify.com, une URI Spotify ou un identifiant seul avec type - et il le renvoie déjà parsé. Un artiste : abonnés, auditeurs mensuels, classement mondial, villes principales avec leur nombre d'auditeurs, biographie, badge de vérification, liens sociaux et images, titres populaires avec nombres d'écoutes, la discographie regroupée en sorties populaires, albums, singles et compilations, artistes similaires, les sorties sur lesquelles il apparaît et les playlists qui le mettent en avant ; discography=true ajoute la liste complète des sorties, paginée. Un album : type, date de sortie, label, copyright, artistes, pochette et ses titres avec nombres d'écoutes. Un titre : nombre d'écoutes, durée, indicateur explicite, album et chaque artiste crédité. Une playlist : nom, description, abonnés, propriétaire, pochette et ses titres avec nombres d'écoutes, la date d'ajout de chacun, le tempo et la tonalité. Avec type=search et une requête, il renvoie les titres, artistes, albums ou playlists correspondants. Les listes se paginent avec offset et max_results, jusqu'à 1 000 titres d'album, 2 000 titres de playlist ou 100 résultats de recherche par appel. Aucun compte Spotify, application développeur ni jeton OAuth n'est nécessaire.

Ce que vous pouvez extraire

  • Abonnés, auditeurs mensuels, classement mondial et villes principales de l'artiste avec leur nombre d'auditeurs
  • Biographie, badge de vérification, liens sociaux et images de l'artiste
  • Titres populaires avec nombres d'écoutes, groupes de discographie (sorties populaires, albums, singles, compilations) et liste complète des sorties
  • Artistes similaires, sorties sur lesquelles l'artiste apparaît et playlists qui le mettent en avant
  • Type d'album, date de sortie, label, copyright, artistes, pochette et titres avec nombres d'écoutes
  • Nombre d'écoutes du titre, durée, indicateur explicite, album et chaque artiste crédité
  • Nom, description, abonnés, propriétaire et pochette de la playlist, et ses titres avec nombres d'écoutes, date d'ajout, tempo et tonalité
  • Recherche de titres, artistes, albums ou playlists, jusqu'à 100 résultats par requête
  • Entrée sous forme d'URL open.spotify.com, d'URI Spotify ou d'identifiant seul ; listes paginées avec offset et max_results

Endpoints dédiés

/music/spotify

Artistes, albums, titres, playlists et recherche Spotify

type=artist : artist (followers, monthlyListeners, worldRank, topCities, biography, externalLinks, images, verified), topTracks avec playcount, groupes de discographie avec totaux, relatedArtists, appearsOn, et playlists featuredOn et discoveredOn ; discography=true ajoute la liste complète releases. type=album : album (type, date de sortie, label, copyright, artistes, pochette) et tracks avec playcount. type=track : track avec playcount, durée, indicateur explicite, album et chaque artiste crédité. type=playlist : playlist (nom, description, followers, propriétaire, pochette, totalTracks) et tracks avec playcount, addedAt, bpm et key. type=search avec query et search_type (tracks, artists, albums ou playlists) : results. id accepte une URL open.spotify.com, une URI Spotify ou un identifiant seul (précisez alors type). Les listes se paginent avec offset et max_results (titres d'album jusqu'à 1 000, titres de playlist jusqu'à 2 000, recherche jusqu'à 100, sorties jusqu'à 1 000) et renvoient hasMore et nextOffset.

Comment le scraper

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);

Les requêtes sont en POST et passent leurs paramètres dans la query string. Le rendu navigateur a toujours lieu : aucun flag à activer.

Exemple de réponse

{
  "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
}

Lire la documentation de l'API

Questions fréquentes

Le scraping de Spotify est-il légal ?

Collecter des données publiques du catalogue Spotify comme les nombres d'écoutes, les nombres d'abonnés et les listes de titres est licite dans de nombreuses juridictions, mais les règles dépendent de votre pays, des données collectées et de leur usage. Les playlists créées par des utilisateurs portent le nom de leur propriétaire, qui peut être une donnée personnelle, respectez donc les règles de confidentialité qui s'appliquent à vous. ScrapeUnblocker renvoie ce que Spotify montre sans connexion ; ce que vous collectez et comment vous l'utilisez relève de votre responsabilité.

Comment scraper Spotify sans se faire bloquer ?

Le plugin ne rend pas le lecteur web de Spotify : il demande les données à la passerelle web de Spotify elle-même avec un jeton anonyme, sans navigateur, via les sorties ISP de ScrapeUnblocker, soit les mêmes lectures que fait le lecteur web. Dans le benchmark de ScrapeUnblocker, 99,9 % des 1 286 appels, chacun avec une entrée différente (330 artistes, 270 albums, 330 titres, 180 playlists et 176 recherches, avec des identifiants tirés de 71 recherches par genre et par pays), ont renvoyé des données, en environ 1,1 s par appel ; le seul échec était la recherche d'un terme obscur pour lequel Spotify n'a renvoyé aucune donnée.

Renvoie-t-il les nombres d'écoutes et les auditeurs mensuels de Spotify ?

Oui. Les nombres d'écoutes reviennent pour chaque titre (titres populaires, titres d'album et de playlist et recherche d'un titre seul), et un artiste arrive avec ses auditeurs mensuels, ses abonnés, son classement mondial et ses villes principales avec leur nombre d'auditeurs. L'API Web officielle de Spotify n'expose pas ces chiffres ; le plugin les lit dans les données publiques que le lecteur web de Spotify affiche sans connexion, donc aucun compte Spotify, application développeur ni jeton OAuth n'est nécessaire.

Combien de résultats Spotify puis-je obtenir par appel ?

La recherche renvoie environ 100 résultats par requête : jusqu'à 100 (max_results, 20 par défaut) titres, artistes, albums ou playlists, choisis avec search_type. Les titres d'album arrivent 100 par page jusqu'à 1 000 par appel, les titres de playlist 100 par page jusqu'à 2 000, et la liste complète des sorties d'un artiste (discography=true) 50 par page jusqu'à 1 000. Chaque liste renvoie hasMore et nextOffset ; passez nextOffset comme offset pour continuer.

Le pays compte-t-il pour les données Spotify ?

Le marché Spotify suit le pays d'où part la requête, ce qui peut changer la disponibilité d'un titre à l'écoute et l'ordre des résultats de recherche ; les nombres d'écoutes sont les mêmes partout. Sauf si proxy_country est défini (ISO-2, comme DE ou GB), le marché suit la sortie par laquelle l'appel passe, donc définissez proxy_country lorsque vous avez besoin de résultats cohérents sur un seul marché. Une playlist privée est lue comme introuvable et répond 404.

Combien coûte le scraping de Spotify ?

Chaque page récupérée auprès de Spotify est facturée comme une requête : un artiste, un titre, un album ou une playlist avec ses 100 premiers titres, ou une recherche jusqu'à 50 résultats correspond à 1 requête, et les listes plus longues coûtent une requête de plus par page, pagesFetched indiquant le nombre exact. 1 requête = 1 crédit, 1,00 EUR pour 1 000 en paiement à l'usage, en descendant jusqu'à environ 0,55 EUR pour 1 000 sur l'offre Ultimate. Les blocages et les timeouts ne sont pas facturés, et l'essai gratuit inclut 500 requêtes sans carte bancaire.

Scrapers similaires

Spotify et les autres noms et marques de open.spotify.com appartiennent à leur titulaire et ne servent ici qu'à désigner le site avec lequel cette API fonctionne. ScrapeUnblocker est un service indépendant, sans lien avec le titulaire de open.spotify.com, et n'est ni approuvé ni parrainé par lui.

Commencez à scraper ce site dès aujourd'hui

Palier gratuit inclus. Aucune carte bancaire requise pour tester.