Spotify Songs Scraper avatar

Spotify Songs Scraper

Pricing

from $1.75 / 1,000 tracks

Go to Apify Store
Spotify Songs Scraper

Spotify Songs Scraper

Search public Spotify tracks with one or more keywords and choose the number of tracks per keyword. Get structured rows with track, artist, album, cover art, duration, explicit status, playability, availability, and Spotify links.

Pricing

from $1.75 / 1,000 tracks

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

🎵 Find public Spotify tracks by keyword

For music researchers, playlist planners, and developers, this Actor searches public Spotify tracks from one or more keywords and saves structured track rows. You get track and artist details, album context, cover art, duration, explicit status, playability, availability, and Spotify links in one dataset.

🎧 Spotify track rows

Each saved row keeps the submitted keyword with the track it found. Track identity, artist profiles, album details, cover-art links, duration, explicit status, and availability stay together for later review or data work.

▶️ Search public Spotify tracks

Add one or more keywords and start a run. Each keyword is searched separately. Set maxResultsPerKeyword to stop each search after a chosen number. Leave it empty to return all available results until the source is exhausted. When the same source track matches more than one keyword, the first eligible match is saved and later matches are ignored. Open the default dataset to read the rows or use its API link.

⚙️ Input

Input fields

keywords is required. maxResultsPerKeyword is optional.

FieldTypeWhat it does
keywordsarray of stringsAdds one or more words or phrases for separate Spotify track searches.
maxResultsPerKeywordintegerLimits saved tracks for each keyword. Leave it empty to return all available results until the source is exhausted.

Example input

This example uses the public input from a successful current-beta run.

{
"keywords": [
"jazz piano"
]
}

🧾 Output

Run output

FieldTypeWhat it does
tracksstring linkOpens the returned track rows in the default dataset.

The default dataset uses one row shape for saved tracks. The dotted paths below show nested fields.

Dataset row fields

FieldTypeWhat it does
keywordstringShows the keyword linked to the saved track.
trackobjectHolds the track title, stable identity, and public links.
track.idstringShows the stable Spotify track ID.
track.titlestringShows the track title.
track.spotifyUrlURL stringLinks to the canonical Spotify track page.
track.webUrlURL stringLinks to the public web page for the track.
artistsarray of objectsLists the artists linked to the track.
artists[].idstringShows the stable Spotify artist ID.
artists[].namestringShows the artist name.
artists[].spotifyUrlURL stringLinks to the canonical Spotify artist profile.
artists[].webUrlURL stringLinks to the public web page for the artist.
artists[].isVerifiedbooleanShows the public artist verification flag when available.
albumobjectHolds album identity, name, and release date when available.
album.idstringShows the stable Spotify album ID.
album.namestringShows the album name.
album.releaseDatestringShows the public album release date when available.
coverArtarray of objectsLists album cover image links and available sizes.
coverArt[].urlURL stringLinks to one album cover image.
coverArt[].widthintegerShows the image width in pixels when available.
coverArt[].heightintegerShows the image height in pixels when available.
durationMsintegerShows the track duration in milliseconds.
isExplicitbooleanShows whether the track is marked as explicit.
availabilityobjectHolds playability and source availability flags.
availability.isPlayablebooleanShows whether Spotify reports that the track can be played.
availability.isAvailablebooleanShows whether the track is available from the source.

Genuine current-beta row

This is a full row from the successful current-beta run that used the example input above.

{
"keyword": "jazz piano",
"track": {
"id": "1YQWosTIljIvxAgHWTp7KP",
"title": "Take Five",
"spotifyUrl": "https://open.spotify.com/track/1YQWosTIljIvxAgHWTp7KP",
"webUrl": "https://open.spotify.com/track/1YQWosTIljIvxAgHWTp7KP"
},
"artists": [
{
"id": "4iRZAbYvBqnxrbs6K25aJ7",
"name": "The Dave Brubeck Quartet",
"spotifyUrl": "https://open.spotify.com/artist/4iRZAbYvBqnxrbs6K25aJ7",
"webUrl": "https://open.spotify.com/artist/4iRZAbYvBqnxrbs6K25aJ7"
}
],
"album": {
"id": "0nTTEAhCZsbbeplyDMIFuA",
"name": "Time Out",
"releaseDate": "1959-12-14T00:00:00Z"
},
"coverArt": [
{
"url": "https://image-cdn-fa.spotifycdn.com/image/ab67616d00001e02b6bd44cf06bf8f4d5ce1e080",
"width": 300,
"height": 300
},
{
"url": "https://image-cdn-fa.spotifycdn.com/image/ab67616d00004851b6bd44cf06bf8f4d5ce1e080",
"width": 64,
"height": 64
},
{
"url": "https://image-cdn-fa.spotifycdn.com/image/ab67616d0000b273b6bd44cf06bf8f4d5ce1e080",
"width": 640,
"height": 640
}
],
"durationMs": 328831,
"isExplicit": false,
"availability": {
"isPlayable": true,
"isAvailable": true
}
}

💳 Pricing

This Actor uses pay-per-event pricing. A track event covers each track saved to the default dataset. Check the Apify pricing panel for the current tier price.

🔌 Integrations

Read the returned rows in the Apify dataset or through its API link. You can export the structured dataset in the formats offered by Apify.

❓ FAQ

What happens when the same track matches more than one keyword?

The Actor saves the first eligible match and ignores later matches for the same source track. The saved row keeps the keyword linked to that first match.

What does leaving Results per keyword empty do?

It returns all available results until the source is exhausted. Set a positive number when you want each keyword search to stop earlier.

Can I submit more than one keyword?

Yes. Add several values to keywords. Each value is searched separately, and each saved row shows the keyword linked to it.

Which fields are in a track row?

Rows include track IDs and links, artist IDs and profiles, album details, cover-art links, duration, explicit status, playability, and availability.

Does this Actor search playlists or albums?

Tracks are the primary search target. Album and artist data is context for each track, so this Actor does not search playlists, albums, artists, or user profiles as primary targets.

Can I download audio or create playlists?

No. The Actor returns public track data and links. It does not download audio, create or edit playlists, or provide lyrics or audio analysis.

Can I use the returned data through an API?

Yes. The returned track data is available in a structured Apify dataset for download and API use.

📝 Changelog

0.0: Initial release

🆘 Support

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

  • Spotify Downloader - Download metadata and media links for a track media workflow.
  • YouTube Music Scraper - Search another public music source for songs, albums, artists, and playlists.
  • SoundCloud Scraper - Collect public tracks and related SoundCloud data for cross-source research.
  • Billboard - Compare song or album entries with current or historical chart ranks.
  • YouTube Music Downloader - Save audio from direct public YouTube Music or YouTube links.

Made with ❤️ by Maxime Dupré