Genius Scraper — Lyrics, Credits, Samples & Annotations avatar

Genius Scraper — Lyrics, Credits, Samples & Annotations

Pricing

from $2.75 / 1,000 results

Go to Apify Store
Genius Scraper — Lyrics, Credits, Samples & Annotations

Genius Scraper — Lyrics, Credits, Samples & Annotations

Scrape songs from Genius: full lyrics, credits (producers & writers), samples and interpolations, album, release date, streaming links, tags, stats — plus crowd-sourced annotations. Search songs, sweep an artist's catalog, or target URLs. No token required.

Pricing

from $2.75 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

0

Monthly active users

a day ago

Last modified

Categories

Features

Limited permissions

Share

🎼 Genius Scraper — Lyrics, Credits, Samples & Annotations

Platform Target No Token Scale Export

Extract complete song lyrics, producer & writer credits, sample & interpolation graphs, streaming links, pageviews, and community annotations from Genius at scale.

This Genius scraper extracts the complete picture of any song or artist catalog from Genius: full lyrics, producer & writer credits, the samples & interpolations graph, album and release info, streaming links, pageview stats, cover art, and the crowd-sourced annotations behind the words. Enter a song name, a Genius URL, or an artist and press Start — no login, no API token, no coding. It is the most reliable Genius data extractor to scrape Genius at scale and turn unstructured song pages into clean, structured records ready for bulk export in JSON, CSV, Excel, or API.

🎧 Built for music-data analysts, music supervisors & sync-licensing teams, NLP/ML engineers, musicology researchers, A&R teams, playlist curators, and music publishing catalogs who need structured Genius lyrics, song credits, and sample clearance intelligence.


⚡ At a glance

FeatureDetails
🎯 Input modesSearch by song titles, paste Genius song URLs, pass song IDs, or sweep entire artist catalogs
📝 Full lyricsClean, in-order song lyrics with section headers ([Intro], [Verse 1], [Chorus]) and HTML stripped
🎛️ Credits & rightsProducers, songwriters, featured artists, primary artist, album, and release date (YYYY-MM-DD)
🔗 Sample & interpolation graphComplete songRelationships array (samples, sampled_in, interpolates, interpolated_by, cover_of, remixed_by)
💡 Crowd-sourced annotationsLyric fragment → community explanation, vote score, contributor name, and contributor IQ
📊 Popularity & mediaPageviews count, hot trending status, high-res cover art URL, Spotify / YouTube / Apple Music / SoundCloud links
🔄 1,000+ deep paginationAutomatic multi-page artist catalog traversal (50 songs/page) with run-wide deduplication by songId
💾 Export & integrationBulk export JSON, CSV, Excel, XML, or stream via Apify API into Python, R, Make, Zapier, n8n, or Google Sheets

🔎 Why scrape Genius?

Genius is the largest crowd-sourced music knowledge base and lyrics database on the web — housing millions of tracks with verified lyrics, detailed producer and songwriter credits, track-to-track influence graphs (who sampled, interpolated, covered, or remixed what), and line-by-line annotations explaining cultural references and wordplay. For anyone working in music intelligence, NLP, or catalog valuation, that combination exists nowhere else in one unified place.

The challenge is that all of this rich catalog metadata is scattered across interactive web views built for human browsing. Copy-pasting lyrics, manually logging songwriter splits, and tracing multi-generational sample chains across hundreds of tracks is slow, error-prone, and impossible to maintain across a growing catalog. A Genius scraper turns those pages into a structured dataset you can filter, join, and analyze — one normalized record per song, spreadsheet- and warehouse-ready.

Common reasons teams scrape Genius:

  • 🎤 Build NLP & AI training corpora — assemble clean, section-tagged lyrics datasets paired with human-written annotations for LLM fine-tuning, sentiment analysis, and music information retrieval (MIR).
  • 🎛️ Catalog valuation & royalty research — extract producer and writer credits across hundreds of songs to audit publishing catalogs, verify collaborator networks, and discover uncredited catalog value.
  • 🔗 Sync licensing & sample clearance — map the complete songRelationships influence graph (samples, sampled_in, interpolates, cover_of) before clearing a track for film, TV, advertising, or games.
  • 📊 A&R & artist benchmarking — track Genius pageviews, annotationCount, sampledInCount, and hot status across an artist's discography or an entire genre cohort.
  • 💡 Cultural & musicology research — analyze lyrical themes, rhyme density, vocabulary evolution, and annotated literary references across decades and genres.
  • ▶️ Cross-platform catalog enrichment — harvest spotifyUrl, youtubeUrl, appleMusicUrl, soundcloudUrl, and high-resolution songArtImageUrl to link Genius metadata with DSP streaming catalogs.

✨ What this Genius scraper does

  • ✅ Flexible multi-mode input — scrape specific songs (by free-text title + artist, direct Genius URL, or numeric song ID) and/or sweep artists' popular catalogs automatically in a single run.
  • ✅ Full, clean lyrics extraction — captures complete, properly ordered lyric text with structural markers ([Verse], [Chorus], [Bridge]) and zero HTML clutter (toggleable via includeLyrics).
  • ✅ Comprehensive song metadata & credits — extracts title, artist, album, releaseDate, producers, writers, featuredArtists, primaryGenre, full tags list, language, and explicit flag.
  • ✅ Complete samples & interpolations graph — populates songRelationships with every track a song samples or interpolates, plus every downstream track that sampled, interpolated, covered, remixed, performed live, or translated it.
  • ✅ Structured crowd-sourced annotations — pairs each annotated lyric fragment with its community explanation, votes, author, and authorIq (toggleable via includeAnnotations).
  • ✅ Cross-platform streaming links — extracts spotifyUrl, youtubeUrl, appleMusicUrl, and soundcloudUrl whenever linked on the song record.
  • ✅ Engagement stats & cover art — captures pageviews, hot flag, annotationCount, sampledInCount, song description, and high-resolution songArtImageUrl.
  • ✅ Unlocked 1,000+ pagination & deduplication — paginates deep through artist catalogs (per_page=50) with automatic songId deduplication so multi-artist or 1,000+ song runs never emit duplicate rows.
  • ✅ No token, no login required — works out of the box with built-in proxy rotation and automatic retries.

🎯 Use cases

PersonaHow they use Genius Scraper
🎬 Music Supervisors & Sync TeamsAudit sample and interpolation chains (songRelationships) before licensing tracks for commercials, films, or games.
📈 Music Publishing & Catalog InvestorsPull songwriter (writers) and producer (producers) credits across 1,000+ catalog tracks to evaluate acquisition targets.
🤖 NLP, AI & ML EngineersBuild multi-thousand-song datasets pairing lyrics with human annotations to train metaphor detection and lyric generation models.
🎵 A&R & Record Label AnalystsBenchmark emerging artists by Genius pageviews, annotationCount, sampledInCount, and genre tag distributions.
✍️ Music Journalists & PodcastersResearch complete verified credits, track descriptions, and top-voted community annotations for artist deep-dives.
🛠️ Music App & DSP Product TeamsEnrich internal track databases with cover art (songArtImageUrl), release dates, explicit flags, and cross-DSP links (spotifyUrl, youtubeUrl).

📥 Input

Provide songs, artists, or both. Every field is optional — if you run the Actor with an empty input {} it automatically sweeps popular artists to deliver a ~100-song sample dataset.

FieldTypeDefaultDescription
songsarray of strings[]Specific songs to scrape. Enter a song name (e.g. "HUMBLE Kendrick Lamar"), a Genius song URL, or a numeric song ID.
artistsarray of strings[]Artist names (e.g. "Kendrick Lamar", "Taylor Swift") or Genius artist URLs/IDs to sweep their most popular songs.
maxSongsPerArtistinteger0 (auto)Maximum popular songs to pull per artist. 0 = automatic/unlimited (scales up to maxItems).
includeLyricsbooleantrueExtract the full plain-text lyrics for each song. Turn off for ultra-fast metadata & credit sweeps.
includeAnnotationsbooleantrueExtract crowd-sourced annotations (fragment, explanation, votes, author, authorIq).
maxItemsinteger25Total maximum songs to save across the run (prefill: 25 for fast preview). Set 1000+ or 0 (unlimited) for full catalog sweeps.
proxyConfigurationobjectResidentialProxy settings. Apify Residential proxy is pre-configured by default for reliable access.

Example input — specific songs with lyrics & annotations

{
"songs": [
"HUMBLE Kendrick Lamar",
"https://genius.com/Kendrick-lamar-not-like-us-lyrics",
"Stan Eminem"
],
"includeLyrics": true,
"includeAnnotations": true,
"maxItems": 25
}

Example input — 1,000+ song multi-artist catalog sweep

{
"artists": [
"Kendrick Lamar",
"Drake",
"Taylor Swift",
"Eminem",
"Kanye West",
"The Weeknd"
],
"maxSongsPerArtist": 0,
"includeLyrics": true,
"includeAnnotations": false,
"maxItems": 1000
}

📤 Output

Each dataset item represents one unique song. Empty or unavailable fields are omitted to keep records clean and compact. Below is a real record from a verified run:

{
"songId": 772,
"title": "Stan",
"artist": "Eminem",
"url": "https://genius.com/Eminem-stan-lyrics",
"releaseDate": "2000-05-23",
"producers": "Eminem, The 45 King",
"writers": "Eminem, Dido, Paul Herman, The 45 King",
"featuredArtists": "Dido",
"album": "The Marshall Mathers LP",
"primaryGenre": "Rap",
"tags": "Trip-Hop, Horrorcore, Hip-Hop, Narrative Music, Conscious Rap, Detroit Rap, Rap",
"language": "en",
"explicit": true,
"songArtImageUrl": "https://images.genius.com/6283a3d3df5aa9dd2d01a47bf7bcc395.953x953x1.png",
"pageviews": 10083453,
"spotifyUrl": "https://open.spotify.com/track/3UmaczJpikHgJFyBTAJVoz",
"youtubeUrl": "https://www.youtube.com/watch?v=aqUpe6QeBTk",
"soundcloudUrl": "https://soundcloud.com/eminemofficial/stan-album-version-explicit",
"description": "In this song, Eminem corresponds with a crazed fan who becomes increasingly unhinged…",
"annotationCount": 54,
"sampledInCount": 27,
"songRelationships": [
{
"type": "samples",
"title": "Thank You",
"artist": "Dido",
"url": "https://genius.com/Dido-thank-you-lyrics"
},
{
"type": "sampled_in",
"title": "Fanpost",
"artist": "Gio (DEU)",
"url": "https://genius.com/Gio-deu-fanpost-lyrics"
}
],
"lyrics": "[Intro: Dido]\nMy tea's gone cold, I'm wonderin' why I got out of bed at all…",
"annotations": [
{
"fragment": "I'm doin' ninety on the freeway",
"explanation": "Stan's speed serves as a physical manifestation of his mania…",
"votes": 4,
"author": "readtxt",
"authorIq": 690
}
]
}

📋 Output field reference

🎵 Identity & Core Metadata
FieldTypeCoverageDescription
songIdinteger🟢 High (100%)Unique Genius numeric song ID (natural primary & deduplication key).
titlestring🟢 High (100%)Official song title on Genius.
artiststring🟢 High (100%)Primary artist display name.
urlstring🟢 High (100%)Canonical Genius song lyrics page URL.
albumstring🟢 High (~95%)Album or project title when linked on Genius.
releaseDatestring🟢 High (~98%)Official release date (YYYY-MM-DD).
languagestring🟢 High (~99%)ISO language code of the lyrics (e.g. en, es, fr).
explicitboolean🟢 High (100%)Whether the track is marked explicit (true / false).
songArtImageUrlstring🟢 High (100%)High-resolution cover art image URL.
🎛️ Credits, Genres & Description
FieldTypeCoverageDescription
producersstring🟢 High (~97%)Comma-separated list of credited music producers.
writersstring🟢 High (~98%)Comma-separated list of credited songwriters and composers.
featuredArtistsstring🟡 Conditional (~34%)Comma-separated featured artists (present when the track has features).
primaryGenrestring🟢 High (100%)Primary genre tag assigned to the track (e.g. Rap, Pop, R&B).
tagsstring🟢 High (100%)Full comma-separated list of genre, subgenre, and regional tags.
descriptionstring🟢 High (~96%)Plain-text background summary ("About" blurb) written by the Genius community.
📊 Engagement, Streaming & Influence Graph
FieldTypeCoverageDescription
pageviewsinteger🟢 High (~99%)Cumulative Genius pageview count.
hotboolean🟡 ConditionalPresent (true) when the song is currently trending on Genius.
annotationCountinteger🟢 High (100%)Total count of annotations attached to the song.
sampledInCountinteger🟡 ConditionalNumber of downstream songs that sampled this track (present when ≥ 1).
songRelationshipsarray of objects🟢 High (~98%)Array of {type, title, artist, url} mapping samples, interpolations, covers, remixes, and live versions.
spotifyUrlstring🟡 Conditional (~60%)Direct Spotify track link when available on Genius.
youtubeUrlstring🟢 High (~99%)Official YouTube video/audio link when available.
appleMusicUrlstring🟡 ConditionalApple Music link when available.
soundcloudUrlstring🟢 High (~83%)SoundCloud stream link when available.
📝 Lyrics & Crowd-Sourced Annotations
FieldTypeCoverageDescription
lyricsstring🟢 High (~96%)Complete plain-text song lyrics with section headers (when includeLyrics: true).
annotationsarray of objects🟢 High (~94%)Array of {fragment, explanation, votes, author, authorIq} (when includeAnnotations: true).

🔁 Pagination & 1,000+ scale

For artist sweeps, the Genius scraper paginates automatically through each artist's song catalog sorted by popularity (50 songs per page), advancing page by page (page=1, 2, 3…) until it reaches your maxSongsPerArtist / maxItems target or the artist's catalog is exhausted.

  • Unlocked 1,000+ results: Set maxSongsPerArtist: 0 (automatic) and maxItems: 1000 (or 0 for unlimited) to collect 1,000+ songs across one or more artists without hitting any page clamp.
  • Empty-run fallback: Running with {} automatically resolves a multi-artist list (Kendrick Lamar, Drake, Taylor Swift, Eminem, The Weeknd, etc.) and returns ~100 songs out of the box.
  • Zero duplicates: Every resolved song is deduplicated in memory by its unique Genius songId before scraping, guaranteeing 0% duplicate rows even when featured artists overlap.
  • Parallel worker pool: Songs are fetched concurrently (5 parallel workers) with automatic proxy IP rotation and exponential backoff on transient HTTP 403/429 responses.

⚙️ How to use

  1. Open Genius Scraper in the Apify Console.
  2. Enter one or more Songs (song names, Genius URLs, or IDs) and/or Artists.
  3. Set Max songs (maxItems: 25 for a quick test, 1000+ for deep catalog extraction) and optionally adjust maxSongsPerArtist.
  4. Choose whether to include full Lyrics (includeLyrics) and Annotations (includeAnnotations).
  5. Click Start and watch songs stream into the dataset in real time.
  6. Download your data from the Storage / Output tab in JSON, CSV, Excel, or XML, or fetch it via the Apify API.

Run via Apify API (cURL)

curl -X POST "https://api.apify.com/v2/acts/haketa~genius-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"artists": ["Kendrick Lamar", "Drake"],
"maxSongsPerArtist": 0,
"includeLyrics": true,
"includeAnnotations": true,
"maxItems": 200
}'

🐍 Programmatic usage (Python & Node.js)

Python (apify-client)

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
"artists": ["Kendrick Lamar", "Taylor Swift", "Eminem"],
"maxSongsPerArtist": 0,
"includeLyrics": True,
"includeAnnotations": True,
"maxItems": 300,
}
run = client.actor("haketa/genius-scraper").call(run_input=run_input)
for song in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{song.get('artist')} - {song.get('title')} ({song.get('releaseDate')}) | Pageviews: {song.get('pageviews')}")

Node.js (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('haketa/genius-scraper').call({
songs: [
'HUMBLE Kendrick Lamar',
'https://genius.com/Kendrick-lamar-not-like-us-lyrics',
],
artists: ['Drake'],
maxSongsPerArtist: 50,
includeLyrics: true,
includeAnnotations: true,
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Extracted ${items.length} Genius songs:`, items[0]);

🔗 Integrations & data pipelines

Because Genius Scraper outputs clean, normalized JSON records, you can connect it directly to:

  • Google Sheets & Airtable: Automatically append newly released artist tracks, producer credits, and streaming links to a shared A&R or sync-licensing tracker.
  • Make, Zapier & n8n: Trigger downstream workflows whenever an artist's catalog is scraped — such as enriching Spotify playlists, alerting sync teams on sample clearances, or indexing lyrics in Elasticsearch / Pinecone.
  • Snowflake, BigQuery & PostgreSQL: Stream multi-thousand-song corpora via the Apify Dataset API for musicology analytics, NLP model training, and catalog valuation models.

💡 Tips for best results

  • 🎯 Include artist names in song queries: Pass "HUMBLE Kendrick Lamar" rather than just "HUMBLE" so search resolution locks onto the exact primary track.
  • ⚡ Speed up bulk credit & sample sweeps: If you only need songwriters, producers, pageviews, and the songRelationships sample graph, set includeLyrics: false and includeAnnotations: false to cut run time by 60%.
  • 🔗 Filter songRelationships by type: In downstream analysis, filter the songRelationships array by samples, sampled_in, interpolates, interpolated_by, cover_of, or remixed_by to build directed influence graphs.
  • 🌐 Keep Residential proxies enabled: Genius applies rate limits to datacenter IPs; the default Apify Residential proxy configuration ensures smooth 1,000+ song collection.

⚠️ Honest limitations

  • Instrumental & unreleased tracks: A small percentage (~3–4%) of entries on Genius are instrumentals, tracklist placeholders, or unreleased snippets that do not have published lyrics (lyrics will be omitted).
  • Community-contributed coverage: Streaming URLs (spotifyUrl, appleMusicUrl) and featuredArtists are populated only when present on the Genius record.
  • Annotations per song: Up to 50 referents/annotations are captured per song from the primary referent feed, covering all major annotated lines on standard tracks.

❓ FAQ

Do I need a Genius API token or account? No. Genius Scraper works out of the box with zero API keys, zero OAuth tokens, and no login required.

How many songs can I scrape in a single run? As many as you need — set maxItems: 1000 (or 0 for unlimited) and maxSongsPerArtist: 0. The scraper paginates through artist catalogs at 50 songs per page until your target is met.

Does it extract who sampled or interpolated a song? Yes. Every song record includes songRelationships — a structured array listing every track the song samples/interpolates and every track that sampled, interpolated, covered, or remixed it, alongside sampledInCount.

Are section headers like [Chorus] and [Verse 1] preserved in the lyrics? Yes. Lyrics are extracted with line breaks and structural section headers intact, while all HTML tags and entities are stripped cleanly.

Will I get duplicate songs if two artists collaborated on the same hit? No. All resolved song IDs are deduplicated by songId across the entire run before extraction begins.

What export formats are supported? You can bulk export results to JSON, CSV, Excel (XLSX), XML, or RSS, or consume them programmatically via the Apify API, Make, Zapier, n8n, and Google Sheets.


  • Discogs Scraper — vinyl, CD, artist discographies, labels, and marketplace pricing data.
  • SoundCloud Scraper — tracks, artists, play counts, and audio metadata from SoundCloud.
  • Podchaser Scraper — podcasts, episodes, ratings, and creator credits.

📋 Changelog

v1.2 (2026-11) — Unlocked 1,000+ Deep Catalog Pagination

  • Unlocked 1K+ artist pagination: Removed the 5-page (250-song) per-artist ceiling in getArtistTopSongs and changed maxSongsPerArtist default to 0 (auto-scaling with maxItems), allowing single or multi-artist sweeps to paginate cleanly past 1,000+ songs.
  • Upgraded empty-run fallback: Empty input ({}) now sweeps a curated 10-artist roster (Kendrick Lamar, Drake, Taylor Swift, Eminem, The Weeknd, etc.) to return a 100-song sample when no limit is set, while honoring any explicit maxItems.
  • Fast prefill execution: Kept maxItems prefill at 25 so Console test runs finish in ~20–40 seconds.

v1.1 (2026-10) — Lightweight Lyrics & Sample Graph Enrichment

  • Added sampledInCount convenience counter alongside the full songRelationships array.
  • Optimized lyrics extraction via the lightweight embed payload (~13 KB vs ~600 KB full HTML) to reduce residential proxy transfer costs by over 95%.

v1.0 (2026-09) — Initial Release

  • Initial release with multi-mode song/artist resolution, full lyrics, producer/writer credits, streaming links, and crowd-sourced annotations.
⌂ 换网址