# SoundCloud Scraper — Tracks, Artists & Playlists (`hipersoft/soundcloud-scraper`) Actor

Search SoundCloud and scrape tracks (plays, likes, reposts, genre, duration), artists (followers, track count, location) and playlists. Resolve any SoundCloud URL. Fast clean HTTP, no login or API key. For music analytics, A\&R and marketing.

- **URL**: https://apify.com/hipersoft/soundcloud-scraper.md
- **Developed by:** [hiper soft](https://apify.com/hipersoft) (community)
- **Categories:** Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.0012 / item scraped

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## SoundCloud Scraper — Tracks, Artists & Playlists

Search SoundCloud and pull clean, structured JSON for tracks, artists (users) and playlists — including play counts, likes, reposts, followers and genres. You can also drop in any SoundCloud URL and resolve it directly. It runs over SoundCloud's public web API with an auto-extracted, self-refreshing client ID, so there's **no login and no API key** to manage. Fast HTTP scraping built for music analytics, A\&R scouting and marketing research.

### Features

- 🎧 **Tracks, users & playlists** — set `searchType` to `all`, `track`, `user` or `playlist`.
- 📊 **Engagement metrics** — tracks come with `playbackCount`, `likesCount`, `repostsCount` and `commentCount`.
- 👤 **Artist intelligence** — user records include `followersCount`, `trackCount`, `city`, `countryCode` and `verified`.
- 🔗 **Resolve any URL** — paste track/user/playlist links into `urls` to scrape them directly, no search needed.
- 🔑 **Self-healing auth** — the public client ID is extracted at runtime and refreshes automatically when it rotates.
- 🎚️ **Volume control** — `maxItemsPerSearch` (1–2000) with automatic pagination per search term.
- 🧱 **Clean text fields** — descriptions and tags are stripped of HTML and decoded, ready to use.

### What you get

One flat JSON record per item. Example track:

```json
{
  "type": "track",
  "id": 123456789,
  "title": "Late Night Lofi",
  "user": "chillbeats",
  "userId": 987654,
  "durationMs": 184000,
  "genre": "Lo-fi",
  "playbackCount": 254800,
  "likesCount": 9800,
  "repostsCount": 1200,
  "commentCount": 340,
  "downloadable": false,
  "createdAt": "2023-04-12T10:20:30Z",
  "tags": "lofi chill study",
  "description": "A mellow beat for late nights.",
  "artwork": "https://i1.sndcdn.com/artworks-....-t500x500.jpg",
  "url": "https://soundcloud.com/chillbeats/late-night-lofi"
}
```

### Input

```json
{
  "searches": ["lofi", "deep house"],
  "searchType": "track",
  "urls": [],
  "maxItemsPerSearch": 40
}
```

| Field | Description |
| --- | --- |
| `searches` | Keywords to search on SoundCloud, one per line. |
| `searchType` | What to return: `all`, `track`, `user` or `playlist`. |
| `urls` | Specific SoundCloud track/user/playlist URLs to resolve directly. |
| `maxItemsPerSearch` | Results per search term (1–2000). |

### Use cases

- Find rising tracks in a genre by sorting on `playbackCount` and `likesCount`.
- Build A\&R shortlists of artists by `followersCount` and location.
- Monitor a track or artist's engagement over time.
- Enrich a music dataset with genres, durations and artwork.

### Pricing

Pay-per-event: you're billed a small amount per run and per item scraped — you only pay for what you get. See the **Pricing** tab for current rates.

### FAQ

**Do I need a SoundCloud account or API key?**
No. The Actor runs over [SoundCloud](https://soundcloud.com)'s public web API with a client ID that's auto-extracted at runtime and refreshes itself, so there's no login and no API key to manage.

**How many tracks can I get per run?**
Set `maxItemsPerSearch` up to 2,000 per search term, with pagination handled automatically. Add more keywords in `searches` to scale the run further.

**Can I download tracks or audio?**
No. This Actor returns public metadata only — titles, engagement metrics, genres, artwork URLs and descriptions. It does not download audio streams or files.

**What's the output format?**
One flat JSON record per item, with clean, decoded text fields. Export as JSON, CSV or Excel from the dataset.

**Can I scrape a specific track, artist or playlist URL?**
Yes. Paste any SoundCloud track, user or playlist link into `urls` to resolve it directly, no search required.

### Related Actors

Building a music dataset? Pair this with our other music and media scrapers:

- [Spotify Scraper](https://apify.com/hipersoft/spotify-scraper) — tracks, artists, albums and playlists with no login or API key.
- [Deezer Scraper](https://apify.com/hipersoft/deezer-scraper) — tracks, artists, albums, playlists and global top charts with ISRCs.
- [Discogs Scraper](https://apify.com/hipersoft/discogs-scraper) — vinyl, CD and digital releases with marketplace prices and community stats.
- [Apple Podcasts Scraper](https://apify.com/hipersoft/apple-podcasts-scraper) — podcast shows and episodes with RSS feeds and artwork.

### Notes

This Actor uses SoundCloud's public web API and returns public metadata only — no audio streams or downloads. Not affiliated with, endorsed by, or connected to SoundCloud; all trademarks belong to their respective owners.

# Actor input Schema

## `searches` (type: `array`):

Keywords to search on SoundCloud (e.g. "lofi", "daft punk"), one per line.

## `searchType` (type: `string`):

What to return.

## `urls` (type: `array`):

Specific SoundCloud track/user/playlist URLs to resolve directly. One per line.

## `maxItemsPerSearch` (type: `integer`):

Results per search term.

## `proxyConfiguration` (type: `object`):

Optional. SoundCloud works without a proxy; enable one for large runs.

## Actor input object example

```json
{
  "searches": [
    "lofi"
  ],
  "searchType": "all",
  "urls": [],
  "maxItemsPerSearch": 40,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searches": [
        "lofi"
    ],
    "urls": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("hipersoft/soundcloud-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searches": ["lofi"],
    "urls": [],
}

# Run the Actor and wait for it to finish
run = client.actor("hipersoft/soundcloud-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searches": [
    "lofi"
  ],
  "urls": []
}' |
apify call hipersoft/soundcloud-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=hipersoft/soundcloud-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/2F7Nlp8lAJpqDkQz6/builds/4VktYTYKP1MXiORpE/openapi.json
