SoundCloud Music Scraper
Extract track listings, artist profiles, play counts, and comment threads from SoundCloud music platform.
- target
- soundcloud.com
- success rate
- 99.9%
- latency
- ~4ms
/fetch/soundcloud.com/ curl -X POST https://api.spider.cloud/fetch/soundcloud.com/ \ -H "Authorization: Bearer $SPIDER_API_KEY" \ -H "Content-Type: application/json" \ -d '{}'
{
"url": "https://soundcloud.com/",
"status": 200,
"data": {
"track_title": "string",
"artist": "string",
"play_count": "string",
"likes": "string",
"reposts": "string",
"duration": "string",
"genre": "string",
"tags": "string"
}
} # SoundCloud Music Scraper
**Track title**: string
**Artist**: string
**Play count**: string
**Likes**: string
**Reposts**: string
**Duration**: string
**Genre**: string
**Tags**: string Extract data in minutes.
Structured JSON from soundcloud.com with a single POST. Call it with no selectors and the model names the fields, or pass your own CSS to skip the AI.
import { SpiderBrowser } from "spider-browser";
const spider = new SpiderBrowser({
apiKey: process.env.SPIDER_API_KEY!,
stealth: 2,
});
await spider.connect();
const page = spider.page!;
await page.goto("https://soundcloud.com/charts/top");
// No selectors, no schema. Spider reads the page and names the fields.
const data = await page.scrape();
console.log(data);
await spider.close(); import { SpiderBrowser } from "spider-browser";
const spider = new SpiderBrowser({
apiKey: process.env.SPIDER_API_KEY!,
stealth: 2,
});
await spider.connect();
const page = spider.page!;
await page.goto("https://soundcloud.com/charts/top");
await page.content(10000);
const data = await page.evaluate(`(() => {
const tracks = [];
document.querySelectorAll("article, [role='listitem'], li[class*='track'], li[class*='chart']").forEach(el => {
const links = el.querySelectorAll("a[href*='/']");
const title = links[0]?.textContent?.trim();
const artist = links[1]?.textContent?.trim();
const plays = (el.querySelector("[aria-label*='play'], [title*='play'], span[class*='stat']"))?.textContent?.trim();
if (title) tracks.push({ title, artist, plays });
});
return JSON.stringify({ total: tracks.length, tracks: tracks.slice(0, 15) });
})()`);
console.log(JSON.parse(data));
await spider.close(); curl -X POST https://api.spider.cloud/fetch/soundcloud.com/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' import requests
resp = requests.post(
"https://api.spider.cloud/fetch/soundcloud.com/",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
json={},
)
print(resp.json()) const resp = await fetch("https://api.spider.cloud/fetch/soundcloud.com/", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({}),
});
const data = await resp.json();
console.log(data); Fields you can pull.
Track & album data
Extract track info, artist data, and play counts from soundcloud.com.
Player handling
Handle embedded players, dynamic playlists, and streaming interfaces.
Catalog coverage
Process entire artist catalogs and podcast libraries at scale.
More Music & Podcasts scrapers.
Spotify Music Scraper
Extract playlist tracks, artist profiles, album metadata, and popularity scores from Spotify open web player.
Apple Music Scraper
Extract album tracklists, artist discographies, playlist contents, and editorial notes from Apple Music catalog.
Deezer Scraper
Extract music catalogs, playlist data, artist bios, and chart rankings from Deezer streaming platform.
Start scraping soundcloud.com.
Grab an API key and call the endpoint above. The first request resolves the config; every request after hits cache.