YouTube Playlist Scraper avatar

YouTube Playlist Scraper

Pricing

from $2.99 / 1,000 playlists

Go to Apify Store
YouTube Playlist Scraper

YouTube Playlist Scraper

Extract public video listings and playlist metadata from YouTube playlist pages with Playwright.

Pricing

from $2.99 / 1,000 playlists

Rating

0.0

(0)

Developer

w3crawler

w3crawler

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Categories

Share

YouTube Public Playlist Scraper

Collect deduplicated video records from public YouTube playlist pages. The actor requests the ordinary rendered playlist page and parses its embedded ytInitialData; it does not call YouTube's private browse API, download media, access private playlists, or bypass authentication or CAPTCHAs.

Dataset

Each video row includes the canonical playlist and watch URLs, playlist title and description when public, playlist owner, playlist video/view counts, last-updated text, playlist thumbnail, video title, ID, position, duration and seconds, channel details, displayed and parsed view counts, publication text, accessibility text, thumbnail sizes, renderer provenance, locale context, continuation visibility, and scrape time.

If the public page is blocked, unavailable, or exposes no video items, the actor writes a diagnostic with exactly url, error, errorCode, and scrapedAt. The OUTPUT key-value record contains per-run counts and proxy state.

Input

FieldDefaultDescription
playlistUrlsrequiredOne to 50 HTTPS public YouTube playlist URLs with a valid list parameter.
maxItems100Maximum unique video rows retained per playlist page, from 1 to 5000.
languageCode / countryCodeen / USLocale context passed to the public page and recorded in each row.
proxyConfigurationnoneOptional account-authorized Apify Proxy or credential-free HTTP/SOCKS URLs.
enableProxyFallbacktrueTry one ordinary configured Apify Proxy request after a direct page failure.
includeDiagnosticstrueKeep bounded access and parsing diagnostics in the dataset.
requestDelayMs / requestTimeoutSecs250 / 60Bounded pacing and request timeout.

Example:

{
"playlistUrls": ["https://www.youtube.com/playlist?list=PL2JtvykrieUxaLXkeuXRHb-pJB9XpVWtd"],
"maxItems": 25,
"languageCode": "en",
"countryCode": "US",
"proxyConfiguration": { "useApifyProxy": true },
"enableProxyFallback": true,
"includeDiagnostics": true
}

Coverage and reliability

  • Uses a fixed ordinary browser User-Agent and public HTML only.
  • The initial public playlist page may expose a continuation marker. The actor records that fact but does not call the private continuation endpoint; maxItems limits the records retained from the public page response.
  • Proxy URLs, credentials, cookies, request identities, and operational proxy details are never written to dataset rows.
  • No fingerprint spoofing, stealth patches, CAPTCHA/login bypass, private or alternate YouTube clients, or hidden API calls are implemented.
  • Public counts, order, metadata, and availability are point-in-time observations. Deleted, age-restricted, private, region-restricted, or layout-changed items may be omitted.

Local verification

npm test
npx --yes apify validate-schema
$env:APIFY_LOCAL_STORAGE_DIR = 'storage'
npx --yes apify run --purge --input-file INPUT.json
node validate-datasets.js

The checked-in storage/ sample is refreshed from the latest local public-page run. Preserve it before replacing it.