Soundcloud Scraper avatar

Soundcloud Scraper

Pricing

$5.00 / 1,000 result scrapeds

Go to Apify Store
Soundcloud Scraper

Soundcloud Scraper

Scrape SoundCloud tracks, playlists, and artist profiles without authentication. Extract track metadata (plays, likes, reposts), artist info, tags, and descriptions. Search by keyword or genre. Export to JSON/CSV.

Pricing

$5.00 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

CryptoSignals Agent

CryptoSignals Agent

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

6

Monthly active users

27 minutes ago

Last modified

Categories

Share

Extract track data, artist profiles, and search results from SoundCloud at scale. This Apify Actor uses SoundCloud's public API v2 with automatic client_id rotation — no authentication required.

Why SoundCloud Data?

SoundCloud hosts 300M+ tracks from 40M+ creators. Unlike Spotify, most content is public and uploaded by independent artists, making it the richest source for:

  • Music discovery & playlist curation — find trending tracks by genre, BPM, or mood before they hit mainstream platforms
  • Artist research & A&R — identify emerging artists by follower growth, play counts, and engagement ratios
  • Music market analysis — track genre trends, release patterns, and engagement benchmarks across millions of tracks
  • Content creation — find Creative Commons tracks for podcasts, YouTube videos, and streaming
  • Academic research — analyze music metadata, waveform patterns, and listener behavior at scale
  • Label scouting — discover unsigned talent with high engagement-to-follower ratios
  • Competitive intelligence — monitor competitor releases, fan engagement, and genre positioning

Features

1. Search Tracks

Search SoundCloud's catalog by keywords, genres, or artist names. Returns structured data including play counts, likes, duration, artwork URLs, and more.

{
"action": "search",
"query": "lo-fi hip hop",
"maxItems": 50
}

Output fields:

FieldTypeDescription
idnumberSoundCloud track ID
titlestringTrack title
artiststringArtist/uploader name
artistUrlstringArtist profile URL
urlstringTrack permalink URL
playsnumberTotal play count
likesnumberTotal likes
repostsnumberTotal reposts
commentsnumberComment count
durationnumberDuration in milliseconds
durationFormattedstringDuration as MM:SS
genrestringTrack genre
tagsstringTrack tags
imageUrlstringHigh-res artwork URL (500x500)
waveformUrlstringWaveform JSON URL
createdAtstringUpload date (ISO 8601)
descriptionstringTrack description (max 500 chars)
licensestringLicense type
downloadablebooleanWhether downloads are enabled
streamablebooleanWhether streaming is enabled

2. Track Details

Get comprehensive track data including waveform samples and available audio formats. Perfect for music analysis, visualization, and audio research.

{
"action": "track",
"url": "https://soundcloud.com/flume/never-be-like-you-feat-kai"
}

Additional output fields for track details:

FieldTypeDescription
waveform.widthnumberWaveform width in samples
waveform.heightnumberWaveform max amplitude
waveform.samplesarrayArray of amplitude values
formatsarrayAvailable audio transcodings
formats[].presetstringAudio preset (e.g., mp3_0_1, aac_160k)
formats[].protocolstringStreaming protocol (hls, progressive)
formats[].mimeTypestringMIME type of the audio format

3. User Profile

Scrape artist/user profiles with follower counts, track listings, and engagement metrics. Ideal for artist discovery and competitive analysis.

{
"action": "user",
"url": "https://soundcloud.com/flume",
"maxItems": 30
}

Output fields:

FieldTypeDescription
idnumberSoundCloud user ID
usernamestringDisplay username
fullNamestringFull name
urlstringProfile URL
avatarUrlstringHigh-res avatar URL
citystringCity
countrystringCountry code
descriptionstringBio (max 500 chars)
followersnumberFollower count
followingnumberFollowing count
tracksnumberTotal track count
playlistsnumberPlaylist count
likesnumberTotal likes given
verifiedbooleanVerified status
createdAtstringAccount creation date
trackListarrayArray of track objects

Use Cases & Examples

Playlist Curation Pipeline

Build automated playlist curation by searching for tracks in a genre, filtering by engagement metrics, and sorting by recency:

{
"action": "search",
"query": "ambient electronic 2024",
"maxItems": 100
}

Then filter results where plays > 10000 and likes/plays > 0.02 for high-engagement tracks.

Artist Discovery & A&R

Find emerging artists by searching for a genre and analyzing the artist profiles behind top-performing tracks:

{
"action": "search",
"query": "bedroom pop",
"maxItems": 200
}

Group by artist, count appearances, and fetch profiles for artists with multiple high-performing tracks but under 10K followers.

Music Market Analysis

Track genre trends over time by running periodic searches and comparing play count distributions:

{
"action": "search",
"query": "drill",
"maxItems": 200
}

Aggregate plays, likes, and comments to build engagement benchmarks per genre. Compare across genres to identify growth trends.

Waveform Analysis

Extract waveform data for audio fingerprinting, visualization, or energy analysis:

{
"action": "track",
"url": "https://soundcloud.com/artist/track-name"
}

The waveform.samples array contains amplitude values that represent the audio energy over time — useful for identifying drops, builds, and quiet sections.

Content Licensing Research

Find tracks available under Creative Commons or with downloads enabled:

{
"action": "search",
"query": "creative commons background music",
"maxItems": 50
}

Filter results where downloadable: true or license contains "cc-" for freely usable tracks.

Competitive Monitoring

Monitor a competitor label or artist's releases and engagement:

{
"action": "user",
"url": "https://soundcloud.com/label-name",
"maxItems": 50
}

Schedule periodic runs to track follower growth, new releases, and engagement trends over time.

How It Works

  1. Auto-rotating client_id — The actor extracts a fresh client_id from SoundCloud's JavaScript bundles on every run. No hardcoded keys that expire.
  2. Public API v2 — Uses SoundCloud's public API (api-v2.soundcloud.com) for fast, structured JSON responses. No browser rendering needed.
  3. Pagination — Automatically handles pagination for search results up to your maxItems limit.
  4. High-res images — Automatically upgrades artwork and avatar URLs to 500x500 resolution.

Input Schema

ParameterTypeRequiredDefaultDescription
actionstringYessearchAction to perform: search, track, or user
querystringFor searchSearch query (keywords, genre, artist name)
urlstringFor track/userFull SoundCloud URL
maxItemsintegerNo20Maximum results (1–200)

Integrations

Connect SoundCloud Scraper to your workflow:

  • Google Sheets — Export track data directly to spreadsheets for analysis
  • Zapier / Make — Trigger workflows when new tracks match your criteria
  • Slack — Get notifications for trending tracks in your genre
  • Airtable — Build a searchable music database
  • Python / Node.js — Use the Apify API client to integrate into your code

API Usage

Call the actor programmatically via the Apify API:

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("YOUR_ACTOR_ID").call(run_input={
"action": "search",
"query": "synthwave",
"maxItems": 50,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item['title']} by {item['artist']}{item['plays']:,} plays")
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('YOUR_ACTOR_ID').call({
action: 'search',
query: 'synthwave',
maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => {
console.log(`${item.title} by ${item.artist}${item.plays.toLocaleString()} plays`);
});

Rate Limits & Best Practices

  • SoundCloud's public API has rate limits. The actor respects these with automatic pagination delays.
  • For large-scale scraping (1000+ items), split into multiple runs with different queries.
  • Use maxItems to control costs — each result counts toward Actor.charge() billing.
  • Schedule runs during off-peak hours for more reliable results.

Pricing

This actor uses pay-per-result pricing via Actor.charge():

EventDescription
search-resultsCharged per search result returned
track-detailCharged per track detail fetched
user-profileCharged per user profile scraped

This actor accesses only publicly available data through SoundCloud's public API. Users are responsible for:

  • Complying with SoundCloud's Terms of Use
  • Respecting copyright and intellectual property rights
  • Using data in accordance with applicable data protection laws (GDPR, CCPA)
  • Not using scraped data for spam, harassment, or unauthorized commercial purposes

🔒 Avoiding SoundCloud Rate Limits

SoundCloud's API enforces strict rate limits and blocks datacenter IPs. For high-volume track and user data extraction, residential proxies prevent throttling.

ThorData Residential Proxies provide 200M+ rotating residential IPs across 195 countries — ensuring smooth, uninterrupted SoundCloud scraping at any scale.

Changelog

v0.0 (Initial Release)

  • Search tracks by keywords with pagination
  • Track detail extraction with waveform data
  • User profile scraping with track listings
  • Auto-rotating client_id extraction
  • High-res artwork URL upgrade