Musescore Scraper
Pricing
$4.45 / 1,000 scraped scores
Musescore Scraper
Scrape public Musescore sheet music results from search terms or Musescore URLs. Export score links, titles, publishers, thumbnails, metrics, tags, and instruments.
Pricing
$4.45 / 1,000 scraped scores
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
🎼 Musescore scraper for sheet music results
Musescore Scraper collects public sheet music results from Musescore. Add plain search terms such as golden hour piano, paste Musescore search or listing URLs, or mix both in one run. The Actor saves clean rows with score URLs, titles, publishers, thumbnails, visible score details, engagement metrics, tags, instruments, and scrape timestamps.
Use this Musescore scraper when you need repeatable sheet music discovery data for catalog research, music education research, content planning, repertoire lists, trend tracking, or internal data workflows. You do not need a Musescore account, cookies, login details, or an API key.
For a quick first run, keep the prefilled golden hour piano search term and the default limit of 25 results. The Actor searches public Musescore result pages, saves accepted score cards during the run, and stops at your maxItems limit.
✅ What this Actor does
- Searches Musescore from one or more plain search terms.
- Accepts public Musescore search, sheet music, tag, and instrument listing URLs.
- Saves one dataset item for each accepted public sheet music result.
- Exports score links, score IDs, titles, publishers, publisher profile URLs, and cover thumbnails.
- Adds visible score details such as parts, pages, duration, upload date, views, saves, votes, tags, difficulty, and instruments when Musescore shows them.
- Keeps source provenance with the original search query or URL, resolved search URL, target index, source position, and scrape time.
- Deduplicates the same score URL across all submitted targets in one run.
- Stops at your total result limit.
Unavailable fields are saved as null or empty arrays instead of guessed values. Invalid or empty inputs are reported in logs instead of fake dataset rows.
📦 Data you can export
Each output row represents one public Musescore sheet music result. Fields can include:
searchQuery,startUrl,resolvedSearchUrl,targetIndex, andsourcePositionscoreId,scoreUrl, andtitlepublisherandpublisherUrlcoverImageUrlandcoverImageAltparts,pages,duration,uploadDateText, anduploadDateviewsText,views,favoritesText,favorites,voteCountText, andvoteCounttags,difficulty, andinstrumentsdetailsRaw,scrapedAt, andstatus
You can open the dataset in Apify, export it as JSON, CSV, Excel, XML, RSS, or HTML, call it through the Apify API, schedule repeat runs, or connect it to webhooks and integrations.
▶️ How to run it
- Add one or more Musescore search terms, Musescore URLs, or both.
- Keep
Maximum resultsat25for a small first run. - Run the Actor.
- Open the dataset and check the score URLs, metadata, and source positions.
- Raise the limit or add more targets once the output shape matches what you need.
Example input:
{"searchQueries": ["golden hour piano", "moonlight sonata piano"],"startUrls": [{"url": "https://musescore.com/sheetmusic?text=golden%20hour"}],"maxItems": 25}
🔎 Input options
searchQueries are plain Musescore searches. Use song titles, artists, instruments, arrangement types, or any phrase you would type into Musescore search.
startUrls are public Musescore search or listing URLs. Use them when you already have a Musescore page with source-native filters, tags, instruments, or order that you want to preserve.
maxItems is the total number of sheet music rows to save across all search terms and URLs. The default is 25, and the maximum is 10000.
🧾 Output example
{"searchQuery": "golden hour piano","startUrl": null,"resolvedSearchUrl": "https://musescore.com/sheetmusic?text=golden+hour+piano","targetIndex": 0,"sourcePosition": 1,"scoreId": "6929025","scoreUrl": "https://musescore.com/user/39593079/scores/6929025","title": "Golden hour - Kacey Musgraves (Easy Piano)","publisher": "Hal Leonard","publisherUrl": "https://musescore.com/official_scores","coverImageUrl": "https://cdn.ustatik.com/musescore/scoredata/g/00924cd304f1a8c4abd029203747f625d910d698/score_0.png@500x660?no-cache=1718098745&bgclr=ffffff","coverImageAlt": "[b]Golden[/b] [b]hour[/b] - Kacey Musgraves (Easy [b]Piano[/b]) sheet music arranged by Hal Leonard for Solo","parts": 1,"pages": 5,"duration": "03:09","uploadDateText": "Aug 20, 2021","uploadDate": "2021-08-20","viewsText": "103.8K","views": 103800,"favoritesText": "325","favorites": 325,"voteCountText": "77","voteCount": 77,"tags": ["Official", "Beginner"],"difficulty": "Beginner","instruments": ["Solo Piano", "Piano"],"detailsRaw": "1 part • 5 pages • 03:09 • Aug 20, 2021 • 103.8K views • 325 saves","scrapedAt": "2026-06-14T14:33:36.709Z","status": "ok"}
Real rows may include different fields as null when Musescore does not show that value on the result card.
💳 Pricing
This Actor uses pay-per-event pricing. You are charged for each saved sheet music result. There is no separate Actor-start charge.
The price is $4.45 per 1,000 saved results, or $0.00445 per result.
⚠️ Limits and caveats
- The Actor collects public Musescore search and listing data only.
- It does not download PDFs, audio files, MIDI files, score files, or copyrighted sheet music assets.
- It does not scrape private scores, logged-in-only pages, account-specific data, or paywalled content.
- Search order, available fields, and result visibility depend on what Musescore shows publicly at run time.
- Some result cards may omit publisher, date, metrics, tags, difficulty, or instrument data.
- The Actor is not affiliated with Musescore and is not an official Musescore API client.
❓ FAQ
🔑 Do I need a Musescore account?
No. The Actor is designed for public Musescore result pages and does not ask for Musescore cookies, login details, or an API key.
🔗 Can I use Musescore URLs instead of search terms?
Yes. Paste public Musescore search, sheet music, tag, or instrument listing URLs in Musescore search URLs. The Actor preserves the source page's filters and order when Musescore exposes score cards.
📄 Does it download sheet music files?
No. This is a metadata and search-result scraper. It saves public score links, thumbnails, visible details, and metrics, but it does not download PDFs, audio, MIDI, or score files.
📊 Can I use the output as a Musescore API?
Yes, through Apify. You can run the Actor via the Apify API, schedule repeat runs, export datasets, or connect runs to webhooks and integrations.
🧩 Why are some fields null?
Musescore does not show every field on every result card. The Actor keeps missing scalar values as null and missing lists as empty arrays instead of guessing.
📝 Changelog
- 0.1: Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Other actors
- SoundCloud Scraper ↗ - Export public music tracks, artists, playlists, albums, and comments.
- YouTube Channel Search Scraper ↗ - Find public YouTube channels from search keywords.
- YouTube Channel Scraper ↗ - Scrape profiles and video rows from known YouTube channels.
- Unsplash Image Scraper ↗ - Collect image search results from Unsplash keywords.
- Web Images Scraper ↗ - Extract image URLs and metadata from public webpages.
Made with ❤️ by Maxime Dupré