IMSLP Scraper avatar

IMSLP Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
IMSLP Scraper

IMSLP Scraper

Scrape IMSLP (Petrucci Music Library) - the world's largest free public-domain sheet music library with 260k+ works. Search works, browse by composer or genre category, fetch full work details, score file (PDF) URLs and recordings.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Scrape IMSLP (Petrucci Music Library) — the world's largest free public-domain sheet music library, with 260,000+ works. Search works by title / composer / keyword, browse all works by a composer, browse genre categories (symphonies, sonatas, concertos, operas…), or fetch a work by its IMSLP# id — and get full work details, score file (PDF) URLs, recordings and genre/period/instrumentation metadata. HTTP-only via the public imslp.org MediaWiki API. No auth, no proxy.

What this actor does

  • Four modes: search, browseByComposer, browseByCategory, byWorkId
  • Full work detail: work title, alternative title, opus number, key, movements, dedication, year of composition, year of first publication, average duration, piece style, librettist, language, instrumentation
  • Score files: every downloadable score (mostly PDF) with its file name, description, size and direct URL
  • Recordings: audio recordings (MP3/OGG) with direct URLs
  • Filters: genre tags, period (piece style), instrumentation, keyword
  • Empty fields are omitted

Data Source

IMSLP (International Music Score Library Project / Petrucci Music Library) — https://imslp.org — a free, non-commercial library of public-domain and Creative Commons scores. This actor uses the public MediaWiki API (api.php; action=query / action=parse) and is not affiliated with IMSLP.

Score file URLs and IMSLP's bot check (verified)

The files[].url and recordings[].url values emitted by this actor are IMSLP's canonical file URLs (https://imslp.org/images/...). Verified live: for scripted clients (plain curl, httpx, even browser-impersonating curl_cffi), IMSLP answers these URLs with a 302 to /friendlytest.html — an MTCaptcha bot check ("IMSLP - Bot Check"), and the PDF/MP3 bytes are never served. Only a real browser that completes the captcha receives the file.

Because the bytes are not fetchable by any scripted client, the actor cannot rehost them into the Apify Key-Value Store; it therefore emits the canonical upstream URLs as-is for customers who consume IMSLP in a browser context, and documents this behavior instead. The URL, file size and description for every file/recording are still captured, so records are complete except for the downloadable bytes.

Output per work

  • imslpId — IMSLP page id (when resolvable)
  • title — full IMSLP page title (e.g. Piano Sonata No.4, Op.7 (Beethoven, Ludwig van))
  • workTitle, alternativeTitle — from the work info template
  • composer — extracted from the title
  • opus — Opus/Catalogue number
  • key — musical key
  • movementsHeader, numberOfMovements, incipit
  • dedication, yearOfComposition, yearOfFirstPublication
  • librettist, language, averageDuration
  • pieceStyle — Baroque / Classical / Romantic / Modern / …
  • instrumentation — e.g. piano, violin and piano, orchestra
  • genreTags[] — IMSLP genre tags (e.g. sonatas)
  • instrumentationTags[] — IMSLP instrument tags (e.g. pf)
  • externalLinks[] — Wikipedia / AllMusic style links
  • files[] — scores: fileName, fileDescription, url, fileSize (capped at 30)
  • recordings[] — audio: fileName, fileDescription, url (capped at 15)
  • sourceUrl — canonical IMSLP work page
  • recordType: "work", scrapedAt

Input

FieldTypeDefaultDescription
modestringsearchsearch / browseByComposer / browseByCategory / byWorkId
searchQuerystringbeethoven piano sonataFree-text query (mode=search)
composerNamestringIMSLP composer category, e.g. Beethoven, Ludwig van (mode=browseByComposer)
categorystringGenre category dropdown (mode=browseByCategory)
workIdsarrayIMSLP# ids or work URLs (mode=byWorkId)
genrestringGenre-tag filter dropdown
periodstringPeriod / piece-style filter dropdown
instrumentationstringInstrumentation filter dropdown
containsKeywordstringKeep only works whose title/work title/composer contains the text
maxItemsint50Hard cap (1–1000)

Example: search for piano sonatas by Beethoven

{
"mode": "search",
"searchQuery": "beethoven piano sonata",
"maxItems": 20
}

Example: everything by one composer

{
"mode": "browseByComposer",
"composerName": "Chopin, Frédéric",
"genre": "nocturnes",
"maxItems": 50
}

Example: browse a genre category, Classical period only

{
"mode": "browseByCategory",
"category": "Symphonies",
"period": "Classical",
"maxItems": 100
}

Example: lookup by IMSLP# id

{
"mode": "byWorkId",
"workIds": ["IMSLP17208", "https://imslp.org/wiki/Piano_Sonata_No.4,_Op.7_(Beethoven,_Ludwig_van)"],
"maxItems": 5
}

Use cases

  • Musicology research — build datasets of public-domain works by composer, genre or period
  • Sheet-music apps — index works with direct score download URLs
  • Music education — curate repertoire lists by instrumentation (e.g. all violin-and-piano sonatas)
  • Copyright / public-domain analysis — track composers, years of composition and publication
  • Piano pedagogy — filter sonatas/etudes by difficulty-adjacent metadata (opus, key, composer)

Limitations

  • Score file bytes are not script-downloadable — IMSLP answers scripted clients with a 302 to /friendlytest.html (MTCaptcha bot check); the actor emits the canonical upstream URLs as-is for consumption in a browser context. URL, file size and description are still captured for every file/recording.
  • Caps on files and recordings — the first 30 score files and 15 recordings per work are emitted to keep payloads manageable.
  • Metadata completeness variesopus, key, dedication and similar fields depend on the work page's info template; works without them simply omit the fields. imslpId is emitted when resolvable.
  • Search relies on IMSLP's MediaWiki index — the same relevance behavior as imslp.org's own search.
  • Not affiliated — this actor is a third-party tool and is not affiliated with IMSLP.

FAQ

What is IMSLP? The International Music Score Library Project (Petrucci Music Library), a volunteer-curated library of over 700,000 public-domain scores and recordings. It is the largest free sheet-music source on the internet.

How fresh is the data? The actor reads IMSLP pages live at run time, so data is as fresh as the source itself.

Why are files and recordings capped? Very large works can carry 100+ files; the actor emits the first 30 score files and 15 recordings to keep payloads manageable.

Are the score file URLs directly downloadable? The URLs are IMSLP's canonical file URLs. IMSLP protects automated bulk downloading with a bot check — a human visiting the file page in a browser can download directly; scripted clients may be asked to pass IMSLP's verification first. The actor itself does not bypass this.

Which periods are supported? Baroque, Classical, Romantic, Modern, Medieval, Renaissance, Impressionist, Early 20th century and Contemporary — matching IMSLP's piece-style values.

Is this affiliated with IMSLP? No — this is a third-party actor using the public IMSLP MediaWiki API.