Spotify Music Downloader avatar

Spotify Music Downloader

Pricing

from $4.53 / 1,000 mp3 track downloadeds

Go to Apify Store
Spotify Music Downloader

Spotify Music Downloader

🎡 Convert public Spotify track links or artist-title searches into tagged MP3 files. Review transparent source-match diagnostics and download files from Apify storage. No API key or login required.

Pricing

from $4.53 / 1,000 mp3 track downloadeds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Spotify Music Downloader converts public Spotify track links and song searches into tagged MP3 files. It resolves track metadata, ranks public audio sources, saves each file in Apify storage, and returns a clean dataset record with a direct download link. No Spotify API key, YouTube API key, login, or browser automation is required.

Download only music you own, public-domain music, Creative Commons music, or audio you are otherwise authorized to use.

What does Spotify Music Downloader do?

Give the Actor an individual open.spotify.com/track/... URL or an Artist - Title search. For each request, it:

  • 🎡 reads public Spotify title, artist, album, year, artwork, and duration metadata when a Spotify URL is available;
  • πŸ”Ž searches a public audio source and scores candidates by title, artist, channel, and duration;
  • πŸ›‘οΈ rejects weak matches instead of silently returning an unrelated track;
  • 🎧 converts the selected source to a 128, 192, or 320 kbps MP3;
  • 🏷️ adds title, artist, album, and year ID3 metadata;
  • πŸ’Ύ saves the MP3 in the run key-value store;
  • πŸ“Š emits one dataset record with source diagnostics and the file URL.

The first release focuses on individual tracks. It does not expand Spotify playlists or albums, access private libraries, or bypass DRM.

Who is it for?

Music archivers and collection owners

  • Recreate a personal backup from a short list of track links.
  • Keep Spotify metadata beside each authorized audio file.
  • Check match confidence before adding files to a collection.

Video editors and creators

  • Prepare authorized tracks for an editing pipeline.
  • Choose a predictable MP3 bitrate.
  • Trigger downloads from an API, schedule, webhook, Make, or Zapier flow.

Dataset and ML teams

  • Build a track-to-public-source mapping dataset.
  • Collect normalized title, artist, duration, and match diagnostics.
  • Store binary files separately from analysis-friendly dataset rows.

Automation developers

  • Resolve small track lists without maintaining yt-dlp, FFmpeg, storage, and retries.
  • Retrieve results through the Apify API.
  • Connect the Actor to AI agents through MCP.

Why use this Spotify MP3 downloader?

  • βœ… No API credentials β€” public track metadata and source surfaces are used.
  • βœ… Fail-closed matching β€” low-confidence candidates are skipped.
  • βœ… Transparent provenance β€” see the selected title, channel, duration, URL, and score.
  • βœ… Tagged files β€” MP3 metadata is added automatically.
  • βœ… Durable run storage β€” every successful file receives a key and API URL.
  • βœ… Small safe defaults β€” the prefilled run processes one track.
  • βœ… API ready β€” call it from JavaScript, Python, cURL, webhooks, or MCP.
  • βœ… Bounded workload β€” one run processes at most 10 individual tracks.

What music data can you extract?

CategoryFieldsDescription
Original requestinputSpotify URL or artist/title search supplied by the user
Spotify identityspotifyUrl, spotifyIdPresent only for a valid Spotify track URL
Track metadatatitle, artist, album, releaseYearPublic metadata when available
Track mediadurationSeconds, artworkUrlSpotify duration and cover image URL
Source matchmatchedSource, matchedSourceUrlSelected public audio source
Match evidencematchedTitle, matchedChannel, matchScoreWhy this source was selected
Duration checksourceDurationSecondsSelected source duration
MP3 fileformat, bitrateKbps, fileSizeBytesOutput file facts
Apify storagefileKey, downloadUrlKey-value store record and direct API link
FreshnessprocessedAtISO timestamp for the completed download

Search-term inputs do not fabricate a Spotify ID. Use a Spotify track URL when catalog identity and album metadata matter.

How much does it cost to download Spotify tracks as MP3?

This Actor uses pay per event pricing. You are charged once for each MP3 successfully saved with a dataset record. Failed and rejected matches are not charged as tracks.

Apify tierPrice per downloaded track
Free$0.0086809
Starter / Bronze$0.0075486
Scale / Silver$0.0058879
Business / Gold$0.0045292
Platinum$0.0030194
Diamond$0.0021136

The Apify Free plan includes monthly platform credits, so a small test run can normally be covered by those credits. Final billing is visible before and after every run in Apify Console.

How to download a Spotify track to MP3

  1. Open Spotify Music Downloader in Apify Store.
  2. Paste one public Spotify track URL into Spotify track URLs.
  3. Keep Maximum MP3 tracks at 1 for the first run.
  4. Select 192 kbps for a practical quality and file-size balance.
  5. Click Start.
  6. Open the output dataset and review matchScore and matchedSourceUrl.
  7. Open downloadUrl or find fileKey in the run key-value store.

A minimal input:

{
"trackUrls": [
"https://open.spotify.com/track/4uLU6hMCjMI75M1A2tKUQC"
],
"maxTracks": 1,
"bitrate": "192",
"matchThreshold": 0.68
}

A search input:

{
"searchTerms": [
"Rick Astley - Never Gonna Give You Up"
],
"maxTracks": 1,
"bitrate": "128"
}

A small batch:

{
"trackUrls": [
"https://open.spotify.com/track/4uLU6hMCjMI75M1A2tKUQC",
"https://open.spotify.com/track/7qiZfU4dY1lWllzX7mPBI3"
],
"maxTracks": 2,
"bitrate": "192",
"matchThreshold": 0.75
}

Input parameters

ParameterTypeDefaultDescription
trackUrlsstring arrayone prefilled URLPublic Spotify track URLs; playlist and album URLs are rejected
searchTermsstring array[]Song searches, preferably formatted as Artist - Title
maxTracksinteger1Maximum unique requests processed; range 1–10
bitratestring"192"MP3 target bitrate: 128, 192, or 320 kbps
matchThresholdnumber0.68Minimum accepted source-match score; range 0.5–1

At least one URL or search term is required. Duplicate requests are removed before processing. When both arrays are provided, URL requests are handled first until maxTracks is reached.

Output example

{
"input": "https://open.spotify.com/track/4uLU6hMCjMI75M1A2tKUQC",
"title": "Never Gonna Give You Up",
"artist": "Rick Astley",
"album": "Whenever You Need Somebody",
"releaseYear": 1987,
"durationSeconds": 214,
"artworkUrl": "https://i.scdn.co/image/example",
"spotifyUrl": "https://open.spotify.com/track/4uLU6hMCjMI75M1A2tKUQC",
"spotifyId": "4uLU6hMCjMI75M1A2tKUQC",
"matchedSource": "YouTube",
"matchedSourceUrl": "https://www.youtube.com/watch?v=example",
"matchedTitle": "Rick Astley - Never Gonna Give You Up (Official Video)",
"matchedChannel": "Rick Astley",
"matchScore": 1,
"sourceDurationSeconds": 214,
"format": "mp3",
"bitrateKbps": 192,
"fileKey": "4uLU6hMCjMI75M1A2tKUQC-Rick_Astley_-_Never_Gonna_Give_You_Up.mp3",
"fileSizeBytes": 5098123,
"downloadUrl": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/FILE_KEY",
"processedAt": "2026-07-16T00:00:00.000Z"
}

Optional Spotify fields are omitted for plain-text searches. Numeric durations, scores, bitrate, year, and file size remain numbers for easy filtering.

Where are MP3 files stored?

Dataset rows contain metadata; the MP3 binary is saved in the run's default key-value store. This keeps JSON/CSV exports lightweight while preserving a direct link to each audio file.

Use fileKey to locate a file in Apify Console. Use downloadUrl to retrieve it through the Apify API. Storage retention follows your Apify account and storage settings. If a run's storage expires or is deleted, its old download links stop working.

How source matching works

The Actor searches with artist, title, and an official-audio hint. It then evaluates multiple candidates.

Positive evidence includes:

  • matching title words;
  • matching artist or channel words;
  • close Spotify/source duration;
  • official or Topic signals.

Negative evidence includes unexpected:

  • covers;
  • karaoke or instrumentals;
  • reactions or tutorials;
  • slowed, sped-up, or nightcore versions;
  • live versions.

Raise matchThreshold when correctness matters more than coverage. Always review the source URL before redistributing a file.

Tips for best results

  • 🎯 Prefer Spotify track URLs over searches for the richest metadata.
  • ✍️ Format searches as Artist - Exact Track Title.
  • πŸ”¬ Start with one track and inspect the source diagnostics.
  • πŸ›‘οΈ Use 0.75 or higher for strict archival workflows.
  • 🎧 Choose 128 kbps for smaller files, 192 kbps for balance, and 320 kbps only when needed.
  • πŸ“¦ Split large personal lists into bounded runs of at most 10 tracks.
  • πŸ” Retry later if YouTube temporarily throttles all safe candidates.
  • 🧾 Keep evidence that you have permission to download and use the audio.

Integrations and automation workflows

Spotify Music Downloader β†’ Google Drive

Run a small approved track list, receive a webhook, download each downloadUrl, and copy the files into a controlled Drive folder.

Spotify Music Downloader β†’ Google Sheets

Export dataset rows to compare requested tracks, matched sources, confidence scores, durations, and storage locations.

Spotify Music Downloader β†’ Slack or Discord

Send a notification when a low match score needs human review before the file enters an editing workflow.

Spotify Music Downloader β†’ Make or Zapier

Trigger the Actor from an authorized-content intake form, wait for completion, then route the resulting MP3 and metadata to your asset system.

Scheduled runs and webhooks

Use schedules for controlled recurring batches and webhooks for completion or failure handling. Do not use schedules to repeatedly download files you do not have permission to use.

API usage with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/spotify-music-downloader').call({
trackUrls: ['https://open.spotify.com/track/4uLU6hMCjMI75M1A2tKUQC'],
maxTracks: 1,
bitrate: '192',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].downloadUrl);

Using the Apify API with Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/spotify-music-downloader').call(run_input={
'searchTerms': ['Rick Astley - Never Gonna Give You Up'],
'maxTracks': 1,
'bitrate': '128',
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items[0]['downloadUrl'])

Using the Apify API with cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~spotify-music-downloader/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"trackUrls": ["https://open.spotify.com/track/4uLU6hMCjMI75M1A2tKUQC"],
"maxTracks": 1,
"bitrate": "192"
}'

After the run succeeds, fetch its dataset items and follow each downloadUrl. Keep your Apify token secret; never place it in a public script or repository.

Use with AI agents via MCP

Spotify Music Downloader can be called by AI assistants through the Apify MCP server.

For Claude Code:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/spotify-music-downloader"

For Claude Desktop, Cursor, or VS Code, add this MCP configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/spotify-music-downloader"
}
}
}

Example prompts:

  • "Use automation-lab/spotify-music-downloader to download this authorized Spotify track as a 192 kbps MP3 and show me the match score."
  • "Convert these three public-domain song searches to MP3 files and return a table of file links and source durations."
  • "Download this track I own, but reject the result unless the source match score is at least 0.8."

OAuth connects the MCP server to your Apify account on first use.

Legality and responsible downloading

The technology is neutral, but permission matters. A Spotify link does not grant permission to copy, redistribute, monetize, or publicly perform a recording. You are responsible for ensuring that your use complies with copyright law, licenses, platform terms, and local regulations.

Appropriate examples can include:

  • music you created or own;
  • public-domain recordings;
  • Creative Commons material used within its license;
  • recordings for which you obtained explicit download and processing permission.

The Actor does not log in to Spotify, access private libraries, decrypt Spotify streams, or bypass Spotify DRM. It uses public metadata to identify a separately selected public source.

Limitations

  • Only individual Spotify track URLs and plain-text searches are supported in v1.
  • Playlists, albums, podcasts, private libraries, and local Spotify files are not expanded.
  • Search inputs may have no Spotify URL, ID, album, year, or artwork.
  • Public audio availability varies by video, geography, age restriction, and rights holder.
  • YouTube can throttle or require verification; the Actor retries conservatively.
  • Source quality limits the real quality even when a higher MP3 bitrate is selected.
  • ID3 title/artist/album/year tags are added; artwork embedding is not guaranteed.
  • A run processes at most 10 tracks to bound runtime, bandwidth, and cost.

Troubleshooting

Why did the run say no safe source match?

Use a valid Spotify track URL or a more specific Artist - Title query. Lower matchThreshold only after checking that the best available source is actually correct.

Why was a Spotify URL rejected?

The URL must point to /track/{22-character-id}. Playlist, album, episode, artist, and private URLs are outside v1 scope.

Why did a matched source fail to download?

The source may be geographically unavailable, age-restricted, removed, or temporarily protected by an anti-bot check. The Actor tries several safe candidates and a bounded proxy fallback; retry later if every candidate is unavailable.

Why is the download URL no longer available?

The run key-value store may have expired or been deleted according to your Apify storage policy. Copy authorized files to durable storage when long-term retention is required.

FAQ

How fast is one track?

A typical track finishes in tens of seconds, depending on duration, source response time, conversion, and proxy fallback. The default timeout is five minutes for the complete run.

Do I need a Spotify or YouTube API key?

No. The Actor uses anonymously available metadata and public media extraction surfaces.

Does this download audio directly from Spotify?

No. Spotify supplies public identification metadata; the Actor independently selects a public audio source and reports that source in every row.

Can I download a playlist?

Not in v1. Expand and review authorized tracks yourself, then submit individual track URLs in batches of at most 10.

Am I charged for rejected tracks?

The per-track event is charged only after an MP3 and its dataset record are saved. Platform billing details remain visible in Apify Console.

Can the Actor guarantee the original master recording?

No. The match score and selected source fields make the decision auditable, but users should review results when exact master provenance matters.

Other music and YouTube tools

Responsible-use checklist

Before starting a run:

  • I own the recording or have permission to download it.
  • My intended storage, processing, and distribution follow the license.
  • I am using individual track scope rather than unauthorized bulk copying.
  • I will inspect source diagnostics when exact provenance matters.
  • I understand that deleting the run storage removes the MP3 link.

Spotify and YouTube are trademarks of their respective owners. This Actor is an independent automation tool and is not endorsed by either service.