SoundCloud MP3 Downloader avatar

SoundCloud MP3 Downloader

Pricing

$0.01 / 1,000 saved tracks

Go to Apify Store
SoundCloud MP3 Downloader

SoundCloud MP3 Downloader

Get playable SoundCloud media links from track URLs, profiles, playlists, and search terms. Export progressive MP3 URLs, HLS streams, track metadata, artist details, and engagement counts.

Pricing

$0.01 / 1,000 saved tracks

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

13

Total users

6

Monthly active users

a day ago

Last modified

Share

Music researchers and audio teams can collect public SoundCloud track media links and details with SoundCloud MP3 Downloader. Each saved row keeps available media URLs, source links, artist details, and public counts together in an Apify dataset for catalog review or audio analysis.

Each saved row represents one public SoundCloud track and includes at least one media variant supplied by SoundCloud. Rows can also include a matched target, track title and link, artist details, duration, artwork, engagement counts, tags, license, dates, description, and waveform URL when available.

If the same track is found from more than one submitted target, matchedInput shows the first target that found it. Later matches do not add submitted values to the saved row.

Some fields can be null when SoundCloud does not expose them.

▶️ Get public SoundCloud track results

  1. Add public track, artist profile, or playlist links, an @handle, or a search term to SoundCloud targets.
  2. Set a total or per-target track limit to stop sooner. Leave both limits blank to get all available tracks until each source is exhausted.
  3. Turn on Only downloadable to keep tracks SoundCloud marks as downloadable.
  4. Start the Actor and open the dataset.

⚙️ Input

Add public SoundCloud track URLs, profile URLs, playlist URLs, @handles, or search terms. Each target is processed separately.

Input fields

FieldTypeWhat it does
targetsarray of strings, requiredAdds track, profile, or playlist links, @handles, or search terms.
maxTotalTracksinteger, optional; prefilled with 11Stops after this many playable tracks across all targets. Leave it blank with no per-target limit to get all available tracks until each source is exhausted.
maxTracksPerTargetinteger, optionalStops after this many playable tracks from each target. Leave it blank with no total limit to get all available tracks until each source is exhausted.
onlyDownloadableboolean, optional; default falseKeeps tracks SoundCloud marks as downloadable.

Successful default-input run

{
"targets": [
"ambient"
],
"maxTotalTracks": 11,
"onlyDownloadable": false
}

🧾 Output

Output fields

FieldTypeWhat it does
matchedInputstring or nullShows the first submitted target that found this track.
trackIdintegerGives the SoundCloud track ID.
trackUrlstring or nullGives the public SoundCloud track URL.
titlestringGives the track title shown by SoundCloud.
descriptionstring or nullGives the track description from SoundCloud.
artistNamestring or nullGives the artist or uploader name.
artistUrlstring or nullGives the public artist or uploader URL.
durationMsinteger or nullGives the track duration in milliseconds.
artworkUrlstring or nullGives the track artwork URL.
downloadableboolean or nullShows whether SoundCloud marks the track as downloadable.
streamableboolean or nullShows whether SoundCloud marks the track as streamable.
mediaobjectHolds audio links and variants that SoundCloud lists for the track.
media.variantsarray of objectsLists the audio variants supplied by SoundCloud.
media.variants[].urlstringGives one SoundCloud-hosted media URL.
media.variants[].protocolstring or nullGives the media protocol.
media.variants[].mimeTypestring or nullGives the media MIME type.
media.variants[].presetstring or nullGives the SoundCloud media preset.
media.variants[].qualitystring or nullGives the media quality label.
media.variants[].durationMsinteger or nullGives the variant duration in milliseconds when exposed.
media.variants[].extensionstring or nullGives the detected file or playlist extension.
artistobject or nullHolds public artist or uploader profile details.
artist.idinteger or nullGives the artist or uploader ID.
artist.usernamestring or nullGives the SoundCloud username.
artist.fullNamestring or nullGives the artist or uploader display name when exposed.
artist.avatarUrlstring or nullGives the profile avatar URL.
artist.followersCountinteger or nullGives the follower count.
artist.trackCountinteger or nullGives the number of tracks on the profile.
artist.verifiedboolean or nullShows whether SoundCloud marks the profile as verified.
artist.proboolean or nullShows whether SoundCloud marks the profile as Pro.
engagementobjectHolds public engagement counts.
engagement.playbackCountinteger or nullGives the play count.
engagement.likesCountinteger or nullGives the like count.
engagement.repostsCountinteger or nullGives the repost count.
engagement.commentCountinteger or nullGives the comment count.
engagement.downloadCountinteger or nullGives the download count when exposed.
licensestring or nullGives the SoundCloud license label.
genrestring or nullGives the SoundCloud genre label.
tagsarray of stringsGives tags parsed from the track.
createdAtstring or nullGives the source track creation date.
releaseDatestring or nullGives the release date when exposed.
waveformUrlstring or nullGives the SoundCloud waveform data URL.

Some values can be null when SoundCloud does not expose them.

Track row from a successful current-beta run

{
"matchedInput": "https://soundcloud.com/hasnaa-tabra/sets/classical-music",
"trackId": 6815163,
"trackUrl": "https://soundcloud.com/cynthiawong/serenade-melancolique-tchaikovsky",
"title": "Serenade Melancolique - Tchaikovsky",
"description": "Recorded and mixed by Cynthia Wong for Sound II in the Winter semester of 2010 at Concordia University. \r\n\r\nDAW used: Pro Tools LE 7\r\n\r\nPiece is performed by Grégor Monlun.\r\n\r\nPlease credit the artist(s) respectively and appropriately.\r\n\r\n",
"artistName": "cynthiawong",
"artistUrl": "https://soundcloud.com/cynthiawong",
"durationMs": 625546,
"artworkUrl": "https://i1.sndcdn.com/artworks-000002959921-j5e0id-large.jpg",
"downloadable": true,
"streamable": true,
"media": {
"variants": [
{
"url": "https://playback.media-streaming.soundcloud.cloud/j2Duya0n2na4/aac_160k/61594062-ec66-448a-98b3-1c46779160f4/playlist.m3u8?expires=1791491108&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9wbGF5YmFjay5tZWRpYS1zdHJlYW1pbmcuc291bmRjbG91ZC5jbG91ZC9qMkR1eWEwbjJuYTQvYWFjXzE2MGsvNjE1OTQwNjItZWM2Ni00NDhhLTk4YjMtMWM0Njc3OTE2MGY0L3BsYXlsaXN0Lm0zdTg~ZXhwaXJlcz0xNzkxNDkxMTA4IiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzkxNDg0MDI4fX19XX0_&Signature=F-eYWnu~PCBKs3jX2~BvH4xGjyzbyq4a1Z0GTHsRBYoKDUpJewTul5-7PCOej0-9L8rvtlBbUXg~OGGk7sr5XpNx5FxsaMct8acNepM~0oDy91LW4mR8X4HL9ApjWtMSu14pqXVMvsZE6v7wItVO753PKOcsl0cxm-noEJLou5MJJXsALZEM5Mpw70eqyD1kWiUwV3hDWXMvNHFm7Bp7di6B1TcXMt4FUb5jdqH2BD3MI6Q0QVVI7IVPKLTSJ5VQ630D~zLDBWq3DY8ivNsJyYnRp2jGtLl449Yq6StWDT~0QIICbuhVfptWW~JWfEyj-jfrfi1i-7o47XYLmZwpTw__&Key-Pair-Id=K34606QXLEIRF3",
"protocol": "hls",
"mimeType": "audio/mp4; codecs=\"mp4a.40.2\"",
"preset": "aac_160k",
"quality": "sq",
"durationMs": 625546,
"extension": "m4a"
},
{
"url": "https://playback.media-streaming.soundcloud.cloud/j2Duya0n2na4/aac_96k/c8538d0a-d7f8-470d-9436-d16204967bb0/playlist.m3u8?expires=1791491109&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9wbGF5YmFjay5tZWRpYS1zdHJlYW1pbmcuc291bmRjbG91ZC5jbG91ZC9qMkR1eWEwbjJuYTQvYWFjXzk2ay9jODUzOGQwYS1kN2Y4LTQ3MGQtOTQzNi1kMTYyMDQ5NjdiYjAvcGxheWxpc3QubTN1OD9leHBpcmVzPTE3OTE0OTExMDkiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3OTE0ODQwMjl9fX1dfQ__&Signature=zDM6dXMA8T9tFJeS1HpfuhxQRs6xjLA1cwckJuyCQo1zczU6neUD3FC9YKr62vOoBGeAzEhxnfPp-DXCGzGXLG6IczKjUB9vD0S4li4lkKpVG40dbmo-pTN2OcODn3qnB3l3CtU3I9fWVZyNFtpCfSm~ilHiZBzNHVUCakOwUXafC-NtCQYdLdExr2FdRqZ2NbLSXP5j4W1rMULu57snghXz2puJst-D6buHKnDl6FtjVXIPT8vtnSzMNKbgCzAaqiHYEE3L3aDaAtViod5vA~OlqWY5uzqu6fLzBCuNpEVinoQ2vw1MIDNUmjs2jLqY4efrI8j5B1y1TjadwNbANw__&Key-Pair-Id=K34606QXLEIRF3",
"protocol": "hls",
"mimeType": "audio/mp4; codecs=\"mp4a.40.2\"",
"preset": "aac_96k",
"quality": "lq",
"durationMs": 625546,
"extension": "m4a"
},
{
"url": "https://cf-hls-media.sndcdn.com/playlist/j2Duya0n2na4.128.mp3/playlist.m3u8?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiKjovL2NmLWhscy1tZWRpYS5zbmRjZG4uY29tL3BsYXlsaXN0L2oyRHV5YTBuMm5hNC4xMjgubXAzL3BsYXlsaXN0Lm0zdTgqIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzkxNDg0MDMyfX19XX0_&Signature=SjGK67qfTPCVTWtKGwng0S6sgla8~nMJt0dDzKFVbrx~D4VvZc7OXyxdSTZWk-LDbrVnLNsj-3ax8xVITC0OdIryjI28lqBDdq-2NQypeSsTSjfforAqzRlrkF5QwyaTAlT2D0z75a5QShgMx6RTNUcAbHYETowq6sjEUzplroXAviEzUgsgQPmnAQe53GEr~2lcmTPaz72pi9bVfE5EhgFqXdZ6nofnIqlIw2cj5eNfumqXqrVDFzMwJiWHKt0mL~qPamCKL2IKFY-ck5eUyKayzH45AlmWYiwdIY~ziRZplWvqko5j2cZ-ILZWTUcJDg9E67RlSiEJ4k9Iyh5V7Q__&Key-Pair-Id=APKAI6TU7MMXM5DG6EPQ",
"protocol": "hls",
"mimeType": "audio/mpeg",
"preset": "mp3_0_0",
"quality": "sq",
"durationMs": 625818,
"extension": "mp3"
},
{
"url": "https://cf-media.sndcdn.com/j2Duya0n2na4.128.mp3?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiKjovL2NmLW1lZGlhLnNuZGNkbi5jb20vajJEdXlhMG4ybmE0LjEyOC5tcDMqIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzkxNDg0MDMzfX19XX0_&Signature=ZGBDR5FqDViPUrCsnhCwUFUo396-T6pFqTNxiRwcNipzQhxSNxyevQigKpgoSPDQwHfhbqtrGBaJ79~6LF494Psxz8bLc7ybvQCb4XShBEWK0AR1XiCkefy8gWIf7VEVC9nWt72e9fU72zdAvX1aoVtYvQ1jKd2Et3Zp66fwDRXZeHdqyFg~PfoXEMfSmOv3IevhTEhNU3YMBhVPia~TQ5ozp7xlww0JIW5oPujnNkssGxhBo2TyIhdzaozv-YOsupnMdF2XTzbH4mn0gc1QIbQgRJSkYDJk0RqiEgxLgUAf9KM5FReW3h~P6cDYSxZ0yBNQHs0rL5QXTZ5BwFgCZA__&Key-Pair-Id=APKAI6TU7MMXM5DG6EPQ",
"protocol": "progressive",
"mimeType": "audio/mpeg",
"preset": "mp3_0_0",
"quality": "sq",
"durationMs": 625818,
"extension": "mp3"
}
]
},
"artist": {
"id": 783911,
"username": "cynthiawong",
"fullName": "Cynthia Wong",
"avatarUrl": "https://i1.sndcdn.com/avatars-000011998310-9984ch-large.jpg",
"followersCount": 526,
"trackCount": null,
"verified": false,
"pro": false
},
"engagement": {
"playbackCount": 1094047,
"likesCount": 14075,
"repostsCount": 1457,
"commentCount": 112,
"downloadCount": 100
},
"license": "cc-by",
"genre": "Classical",
"tags": [
"serenade mélancolique",
"violin",
"tchaikovsky",
"classical",
"serenade",
"gregor monlun",
"concordia",
"concordia university",
"communication studies",
"coms",
"communications"
],
"createdAt": "2010-11-08T16:30:05Z",
"releaseDate": null,
"waveformUrl": "https://wave.sndcdn.com/j2Duya0n2na4_m.json"
}

💳 Pricing

The Actor uses pay-per-event pricing. One event is charged for each public track saved with a resolved MP3 or stream URL.

🔌 Integrations

Run the Actor through the Apify API and read the saved dataset from the run.

❓ FAQ

What does “could not be loaded” mean?

The warning says the submitted target could not be loaded and was skipped. It does not show whether the target was invalid or unavailable, or whether SoundCloud had a temporary access problem. The warning alone also does not say whether the run continued with other targets. Check the run status, log, and dataset for the outcome.

Yes. The downloadable field shows whether SoundCloud marks the track as downloadable. A media URL is separate data, so its presence does not change that source flag.

No. If SoundCloud exposes only a short preview, that preview may be returned.

Can I use private SoundCloud tracks?

No. The Actor works with public tracks and does not process private or access-restricted items.

Does the dataset contain audio files?

No. It contains SoundCloud-hosted media URLs and track details, not an audio file field.

Can I use artist profiles and playlists?

Yes. Add public profile or playlist URLs to SoundCloud targets to get track rows from those sources.

📝 Changelog

v1.0 (08-10-2026)

  • Leave both track limits blank to keep collecting playable tracks from each target until its source is exhausted.
  • Track rows now include descriptions. Audio links are in media.variants; media.progressiveMp3Url, media.hlsMp3Url, trackUrn, durationText, and artist.urn are no longer returned.
  • The sort input is removed, so runs can no longer choose newest or popular results.

v0.1

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré