YouTube Music Song Scraper
Pricing
from $2.99 / 1,000 songs
YouTube Music Song Scraper
Search YouTube Music songs, browse Music playlists and pages, and extract rich returned song and player metadata with pagination.
Pricing
from $2.99 / 1,000 songs
Rating
0.0
(0)
Developer
w3crawler
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
Collects song/video records from public YouTube and YouTube Music pages. Search uses the public YouTube results page; direct watch and playlist/browse URLs are also supported. The actor parses page-embedded data and never stores signed media or caption URLs.
Dataset fields
Each record can include:
- stable video ID, title, description, accessibility text, duration and seconds, displayed/parsed views, publication text, release date/year, explicit/live/upcoming flags, badges, thumbnail variants with dimensions, and public YouTube/YouTube Music URLs
- artist objects with names, IDs, and public channel links; album name, Music browse ID, and public album URL when the page exposes them
- source type/query/URL, rank/page, public extraction provenance, locale, initial result coverage, continuation visibility, request limits, and scrape time
- optional safe public watch-page metadata: description length, keywords, tags, category, playability status, caption-language summaries, and audio/video format counts. Caption base URLs and signed stream URLs are intentionally omitted.
Input
Provide at least one search query or public YouTube/YouTube Music watch, playlist, or browse URL.
| Field | Default | Description |
|---|---|---|
searchQueries | — | Song/video search terms. |
startUrls | — | Public watch, playlist, or browse URLs. |
maxItems | 20 | Maximum unique records, 1–100. |
maxPages | 3 | Maximum public search pages per source, 1–10. |
maxRetries | 1 | Bounded retries per public request, 0–3. |
requestTimeoutSecs | 60 | Per-request timeout, 15–180 seconds. |
requestDelayMs | 250 | Pacing delay between requests, 0–5000 ms. |
includePlayerDetails | true | Attempt optional public watch-page enrichment. |
includeDiagnostics | true | Write bounded four-field diagnostics. |
enableProxyFallback | true | Try one configured Apify Proxy after a direct request fails. |
proxyConfiguration | — | Optional account-authorized Apify Proxy or credential-free HTTP/SOCKS URLs. |
countryCode | US | Public-page country context. |
languageCode | en | Public-page language context. |
Example:
{"searchQueries": ["Adele Hello"],"startUrls": ["https://music.youtube.com/watch?v=rYEDA3JcQqw"],"maxItems": 10,"maxPages": 2,"includePlayerDetails": true,"proxyConfiguration": { "useApifyProxy": false }}
Reliability and verification
Requests use fixed ordinary public-page headers, bounded retries, pacing, and optional configured Apify Proxy routing. There is no CAPTCHA/login bypass, request-identity spoofing, browser automation, or credential storage. Optional player enrichment failures preserve the base song record and emit a bounded diagnostic. Continuation markers are reported, but opaque continuation commands are not replayed.
Verify locally with npm test, npx apify validate-schema, npx apify run --purge --input-file INPUT.json, and node validate-datasets.js. Deploy with npx apify actors push <actor-id> --version 2.0 --build-tag latest, then call the cloud Actor with the bounded QA inputs and compare IDs, required fields, duplicates, and field coverage.