Musescore Sheet Music Scraper
Pricing
$4.45 / 1,000 scores
Musescore Sheet Music Scraper
Search public Musescore sheet music by plain terms or public listing URLs. Get one structured row for each accepted public score with links, titles, publishers, cover images, visible details, counts, tags, difficulty, and instruments.
Pricing
$4.45 / 1,000 scores
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
0
Monthly active users
12 days ago
Last modified
Categories
Share
🎼 Find public Musescore sheet music
Musescore Scraper helps music researchers, teachers, repertoire planners, and developers find public sheet music on Musescore. Search by plain terms or public listing URLs, then get one structured row for each accepted score with its link, title, publisher, cover image, visible details, counts, tags, difficulty, instruments, and source position.
For a quick first run, use the prefilled golden hour piano search term, the golden hour listing URL, and the default limit of 25 rows.
- Build a classical repertoire list with Classical Sheet Music.
- Find easier piano arrangements for lessons or practice with Easy Piano Sheet Music.
- Collect public violin scores for repertoire planning with Violin Sheet Music.
- Gather guitar scores for a practice list with Guitar Sheet Music.
- Find piano scores for a lesson or catalog list with Piano Sheet Music.
- Search a broad public sheet music collection with Sheet Music.
📦 Public Musescore score rows
Each saved row represents one accepted public Musescore score. When the same score appears through another submitted search or URL, the Actor saves the first eligible occurrence and ignores later matches. It does not merge later matches into that row. Missing scalar values are saved as null, and missing lists are saved as empty arrays, when Musescore does not show a value.
▶️ Find public scores from Musescore
Run steps
- Add plain Musescore search terms, public Musescore listing URLs, or both.
- Leave
Maximum resultsempty to return all available results until the source is exhausted, or set a positive number to stop after that many saved rows. - Run the Actor and open the default dataset.
- Review score links, source positions, visible metadata, and public counts.
- Export the rows or retrieve them through the Apify API.
⚙️ Input
Input fields
| Field | Type | What it does |
|---|---|---|
searchQueries | array of strings | Searches public Musescore with song, artist, instrument, arrangement, or other plain terms. |
startUrls | array of objects | Uses public Musescore search, sheet music, tag, or instrument listing URLs while keeping the source filters and order. |
startUrls[].url | string | Holds one public Musescore search or listing URL. |
maxItems | integer | Sets the total number of sheet music rows to save across all submitted terms and URLs. Leave it empty to return all available results until the source is exhausted. |
Example input
This is the public input from a successful current-beta default-input run.
{"searchQueries": ["golden hour piano"],"startUrls": [{"url": "https://musescore.com/sheetmusic?text=golden%20hour"}],"maxItems": 25}
🧾 Output
Run output
| Field | Type | What it does |
|---|---|---|
results | string link | Opens the default dataset with one row per public score. |
The default dataset uses one row shape. The table below lists every field in that row.
Dataset row fields
| Field | Type | What it does |
|---|---|---|
searchQuery | string or null | Shows the plain search term that found the score, or null when a URL found it. |
startUrl | string or null | Shows the public Musescore URL submitted for the score, or null when a search term found it. |
resolvedSearchUrl | URL string | Links to the public Musescore listing that produced the score. |
targetIndex | integer | Gives the zero-based position of the search term or URL in the run input. |
sourcePosition | integer | Gives the one-based position of the score on its Musescore listing page. |
scoreId | string or null | Shows the Musescore score identifier from the score URL when available. |
scoreUrl | URL string | Links to the public Musescore score page. |
title | string | Shows the score title from Musescore. |
publisher | string or null | Shows the publisher or arranger name when available. |
publisherUrl | URL string or null | Links to the public publisher or arranger profile when available. |
coverImageUrl | URL string or null | Links to the public score cover image when available. |
coverImageAlt | string or null | Gives the cover image text when available. |
parts | integer or null | Shows the number of score parts when available. |
pages | integer or null | Shows the number of score pages when available. |
duration | string or null | Shows the score duration, such as 03:09, when available. |
uploadDate | date string or null | Shows the source upload date in YYYY-MM-DD form when available. |
views | integer or null | Shows the public view count when available. |
favorites | integer or null | Shows the public save count when available. |
voteCount | integer or null | Shows the public vote count when available. |
tags | array of strings | Lists the tags shown for the score. |
difficulty | string or null | Shows the difficulty label when available. |
instruments | array of strings | Lists the instrument labels shown for the score. |
Genuine current-beta row
This complete row came from a successful current-beta run using the public input above.
{"searchQuery": null,"startUrl": "https://musescore.com/sheetmusic?text=golden%20hour","resolvedSearchUrl": "https://musescore.com/sheetmusic?text=golden%20hour","targetIndex": 1,"sourcePosition": 10,"scoreId": "8768277","scoreUrl": "https://musescore.com/user/40408085/scores/8768277","title": "Golden hour – JVKE Golden Hour - Concert Band","publisher": "AWazny","publisherUrl": "https://musescore.com/user/40408085","coverImageUrl": "https://cdn.ustatik.com/musescore/scoredata/g/511cba52205e730f5ca4d61743c78367d0ef0e96/score_0.png@500x660?no-cache=1715703475&bgclr=ffffff","coverImageAlt": "[b]Golden[/b] [b]hour[/b] – JVKE [b]Golden[/b] [b]Hour[/b] - Concert Band sheet music arranged by AWazny for Concert Band","parts": 23,"pages": 31,"duration": "03:36","uploadDate": "2022-10-06","views": 20100,"favorites": 552,"voteCount": 111,"tags": [],"difficulty": null,"instruments": ["Concert Band","Trombone","Euphonium","Tuba","Flute","Oboe","Clarinet in b-flat","Clarinet bass","Bassoon","Saxophone alto","Saxophone tenor","Saxophone baritone","Trumpet in b-flat","French horn","Timpani","Vibraphone","Snare drum","Drum group","Marimba"]}
💳 Pricing
This Actor uses pay-per-event pricing. You are charged for each saved public sheet music score. There is no separate Actor-start charge. The current price is $0.00445 per saved score, or $4.45 per 1,000 saved scores.
🔌 Integrations
Read the returned rows in the Apify dataset or through its API. You can export the dataset, schedule runs, and connect run events to webhooks.
❓ FAQ
Do I need a Musescore account or API key?
No. The Actor reads public Musescore pages and does not ask for Musescore cookies, login details, or an API key. Private, logged-in-only, account-specific, and paywalled scores are not included.
Can I use Musescore URLs instead of search terms?
Yes. Add public search, sheet music, tag, or instrument listing URLs. The Actor keeps the source filters and order when they are visible in the URL.
What happens when the same score appears more than once?
The Actor saves the first eligible occurrence and ignores later matches for that score. The saved row keeps the source query or URL from the first match. It does not merge later matches into that row.
What happens when I leave Maximum results empty?
It returns all available results until the source is exhausted. Set a positive number when you want the run to stop after that many saved rows.
Does it download sheet music files?
No. It returns public metadata and links. It does not download or store PDFs, audio, MIDI, score files, or other copyrighted sheet-music assets.
What if Musescore does not show a field?
That field is saved as null, or the list is empty, instead of being guessed.
Can I use the output through an API?
Yes. Read the structured dataset through the Apify API or standard export formats. This is not an official Musescore API.
📝 Changelog
v1.0 (19-09-2026)
- Dataset rows now use the current score fields without legacy text and run metadata fields.
- The Actor can collect results across listing pages and continue with other targets when one target fails.
v0.1 (14-06-2026)
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- YouTube Music Scraper - Search public YouTube Music pages for songs, albums, artists, playlists, and profiles.
- SoundCloud Scraper - Collect public SoundCloud tracks, artists, playlists, albums, and comments.
- Spotify Songs Scraper - Find public Spotify tracks by keyword with artist and album details.
- Discogs - Search public releases, artists, labels, and marketplace data.
- Musescore Sheet Music Scraper - Collect Musescore sheet music from a search URL with automatic pagination and score details.
Made with ❤️ by Maxime Dupré