Deezer Scraper - Tracks, Albums, Artists, Playlists & Lyrics

Scrape Deezer by keyword or URL. Extract tracks, albums, artists, playlists, lyrics, radios, charts and public profiles. Get BPM, ISRC, contributors, release dates, availability, full tracklists, artist top tracks and discographies.

Open actor on Apify ↗Need a custom scraper?Telegram @abotapi ↗

What Deezer Scraper can do

  • Two ways in. Search by keyword (six entity types), or paste any Deezer link (track, album, artist, playlist, radio, genre or public profile) and the actor picks the right read.
  • Full track listings, not truncated samples. Albums and playlists return the collection record plus one row per track, walked across every result page (a 1,075-track playlist was verified to come back complete, not cut at the first hundred).
  • Per-track depth on demand. In search mode, switch on detail enrichment to add BPM, the full contributor list, ISRC, release date, disk and track positions, and the per-country availability list - billed per track only when you use it.
  • Charts per genre. Read the global or per-genre charts for tracks, albums, artists or playlists in one run.
  • Lyrics in any mode. Add plain lyrics, time-synced LRC lines, word-level karaoke timing, songwriters and publishers to every track row, billed only where lyrics were found.
  • Built for schedules. Incremental mode returns only new and changed records on recurring runs, and a refused run fails loudly instead of returning an empty dataset.

Choose what to collect

These inputs let you configure Deezer Scraper - Tracks, Albums, Artists, Playlists & Lyrics. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredChoose 'search' to query the catalog by keyword (or read the charts), or 'url' to scrape pasted Deezer links: track, album, artist, playlist, radio, genre and public user-profile pages.

Choices: search, url

queriesarrayKeywords to search for, one search per row (e.g. "daft punk"). Combined with Entity type below.
searchTypestringWhat to search for: tracks (default), albums, artists, playlists, radios, or public user profiles.

Choices: track, album, artist, playlist, user, radio

sourcestringSearch reads keyword results. Charts reads Deezer's global or per-genre charts for the entity type above (charts cover tracks, albums, artists and playlists).

Choices: search, chart

chartGenreIdintegerDeezer genre id whose chart to read (0 = all genres). Find ids via a genre URL like https://www.deezer.com/en/genre/116 - the number at the end is the id.
urlsarrayPaste track, album, artist, playlist, radio, genre, chart or public user-profile URLs (e.g. https://www.deezer.com/track/3135556 or https://www.deezer.com/playlist/3155776842). Playlists and albums return the collection record plus one row per track.
includeArtistReleasesbooleanWhen an artist link is pasted, also return one album row per release in their discography (paged). Off by default.
includeUserCollectionsbooleanWhen a user-profile link is pasted, also return one playlist row per public playlist they published. Off by default.
excludeExplicitbooleanDrop records flagged explicit. Off by default.
minDurationSecintegerKeep only records at least this many seconds long (tracks, and track rows of playlists/albums). Leave 0 to disable.
maxDurationSecintegerKeep only records at most this many seconds long. Leave 0 to disable.
sortBystringRelevance keeps the catalog's own ranking (default). Title and Duration sort client-side, ascending.

Choices: relevance, title, duration

fetchDetailsbooleanIn search mode, also open each track's own endpoint for BPM, the full contributor list, ISRC, release date, disk and track positions, and the per-country availability list. Adds one request per track and a per-track surcharge. Off by default.
includeLyricsbooleanAlso return each track's lyrics: plain text, time-synced LRC lines (when Deezer has them), songwriters and publisher. Works in every mode, including album, playlist and chart track rows. Lyrics are licensed per country, so the connection's exit country decides which tracks have them. Read in batches of 25 tracks, so it adds very little run time. Charged per track where lyrics were found; tracks without lyrics are not charged. Off by default.
lyricsWordTimingbooleanWith Include lyrics on, also return per-word start and end times (milliseconds) for tracks where Deezer has them, in the lyricsWords field: one entry per line, each with its words. Most popular tracks have word timing. No extra charge; rows get larger. Off by default.
maxItemsintegerMaximum number of records to return across the whole run. This is the run's cap. Use 0 for unlimited.
maxPagesintegerMaximum number of result pages read per keyword or link. 0 means no limit, which is the default: the run then stops only at Max records, at the end of the results, or when a page returns nothing new.
resumeFromRunIdstringPaste a previous run ID or dataset ID to continue a large crawl that stopped part-way: this run skips records already collected there and returns only the remaining ones. For recurring monitoring of the same search instead, use Incremental changes below (the two are mutually exclusive once Incremental has saved state).
incrementalModebooleanTurn this on for daily or recurring monitoring. The first run returns every matching record as NEW. Later runs normally return only NEW, UPDATED and REAPPEARED records, which is how a fan-count jump or a track-listing change is spotted. Turn on Emit unchanged or Emit expired only when you also want those rows returned (and billed).
stateKeystringOptional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently configured runs. Leave empty to let the actor derive a key automatically from the mode, keywords, links and filters, so different searches never mix state with each other.
emitUnchangedbooleanOff by default. Turn on to also return records that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have, so leave it off unless you want the full snapshot every run.
emitExpiredbooleanOff by default. Turn on to also return records that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked search, so never when Max records capped it or when Resume was used. This returns, and bills, extra synthetic rows, so leave it off unless you want removal tracking.
mcpConnectorsarrayOptional. Each selected connector receives a condensed summary per record; the full record always stays in the dataset. Leave empty to skip.
notionParentPageUrlstringURL (or id) of the Notion page under which record pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on records written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

idid
deezerTypeType (text)
titleTitle
urlLink (link)
durationSecDuration (s) (number)
explicitLyricsExplicit (boolean)
rankRank (number)
isrcISRC (text)
previewUrlPreview (link)
releaseDateReleased (date)
bpmBPM (number)
gaingain
diskNumberdiskNumber
trackPositiontrackPosition
artistIdartistId
artistNameArtist (text)
artistUrlartistUrl
artistFansartistFans
artistAlbumCountartistAlbumCount
albumIdalbumId
albumTitleAlbum (text)
albumUrlalbumUrl
labellabel
copyrightcopyright
albumTrackCountTracks in album (number)
genresgenres
contributorNamescontributorNames
availableCountriesavailableCountries
collectionContextFrom collection (text)
trackIdstrackIds
trackTitlestrackTitles
descriptiondescription
fansFans (number)
creatorIdcreatorId
creatorNamecreatorName
playlistPublicplaylistPublic
collaborativecollaborative
userNameuserName
userCountryuserCountry
sourceQueryQuery (text)
chartGenreIdchartGenreId
detailFetchedDetail fetched (boolean)
lyricsStatusLyrics status (text)
lyricsLyrics (text)
lyricsSyncedlyricsSynced
lyricsSyncTypeLyrics sync (text)
lyricsWriterslyricsWriters
lyricsCopyrightlyricsCopyright
lyricsWordslyricsWords
changeTypeChange type (incremental mode) (text)
changedFieldsChanged fields (incremental mode) (text)
firstSeenAtFirst seen (incremental mode) (text)
lastSeenAtLast seen (incremental mode) (text)

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "id": "track:3135556",
  "deezerType": "track",
  "title": "One More Time",
  "url": "https://www.deezer.com/track/3135556",
  "durationSec": 320,
  "explicitLyrics": false,
  "isrc": "GBDUW0000059",
  "previewUrl": "https://cdns-preview-d.dzcdn.net/stream/track.mp3",
  "releaseDate": "2001-03-07",
  "bpm": 122.7,
  "artistId": 27,
  "artistName": "Daft Punk",
  "artistUrl": "https://www.deezer.com/artist/27",
  "artistFans": 4500000,
  "albumId": 302127,
  "albumTitle": "Discovery",
  "albumUrl": "https://www.deezer.com/album/302127",
  "label": "Parlophone (France)",
  "copyright": "(C) 2001 Daft Life Ltd.",
  "genres": [
    "Dance",
    "Electronic"
  ],
  "contributorNames": [
    "Daft Punk"
  ],
  "availableCountries": [
    "US",
    "GB",
    "DE"
  ],
  "collectionContext": null,
  "detailFetched": true,
  "changeType": null,
  "changedFields": [],
  "firstSeenAt": null,
  "lastSeenAt": null
}

Ways to use this data

  • Music analytics: build catalogs of tracks, albums and artists with popularity rank, fan counts and chart positions for trend research.
  • Playlist monitoring: walk any public playlist on a schedule and get only the tracks added, removed or reordered since the last run.
  • Catalog enrichment: attach BPM, ISRC, contributors and release metadata to your own music database.
  • Chart tracking: follow the global or per-genre charts daily and diff what moved.
  • Content and media tooling: feed previews, cover art and canonical links into apps, bots or newsletters.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

Can I get lyrics?

Yes. Turn on Include lyrics and every track row gets its full lyrics, time-synced LRC lines when Deezer has timing (most popular tracks do), the songwriters and the publishers. It works in every mode, including every track of a pasted album or playlist. Lyrics are read in batches, so a 1,000-track playlist adds about 15 seconds. Lyrics are licensed per country: a track Deezer has no lyrics for in the connection's country comes back with lyricsStatus: "not_found" and is not charged. To read lyrics as a given country sees them, use a residential connection with that country set.

Can I get word-by-word (karaoke) timing?

Yes. Also turn on Lyrics: word-level timing and each track with word timing gets lyricsWords: every line with its start and end in milliseconds, and every word inside it with its own start and end. lyricsSyncType: "word" tells you which tracks have it; most popular tracks do. It costs nothing extra but makes each row larger.

Can I get podcasts or shows?

No. Deezer retired the public podcast endpoints: the API answers with an error for every podcast id, and podcast search is rejected. Only the music catalog (tracks, albums, artists, playlists, radios, charts, public profiles) is covered.

Can I get only new or changed tracks on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new and updated records, and unchanged ones are not billed.