YouTube Playlist Scraper With Creator Contact Links avatar

YouTube Playlist Scraper With Creator Contact Links

Pricing

Pay per usage

Go to Apify Store
YouTube Playlist Scraper With Creator Contact Links

YouTube Playlist Scraper With Creator Contact Links

Gather complete YouTube playlist information with ease. Pull all video data—titles, metadata, thumbnails, and stats—into organized datasets. Perfect for automation, research, bulk processing, and content strategy workflows.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

SimpleAPI

SimpleAPI

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

0

Monthly active users

4 days ago

Last modified

Share

Scrape every video in a YouTube playlist and enrich each row with the video creator's channel profile and public contact/social links — website, Instagram, X, TikTok, whatever the creator listed on their About page. Point it at a playlist URL or a creator's @username, and get back an outreach-ready list instead of just video titles.

Most playlist scrapers stop at video metadata. This one fetches each unique creator's About page once (cached per run), pulls their approximate subscriber count, country, join date and public links, and can filter out any creator who hasn't listed a contact link at all — so you only pay for rows you can actually act on.

It's an Apify actor that scrapes every video in one or more YouTube playlists — or discovers a creator's playlists from their @username and scrapes up to 5 of them — then enriches each video row with its creator's channel profile. Each unique creator's About page is fetched once per run and cached, so a 50-video playlist from one channel costs one channel-profile fetch, not fifty. channelLinks[] surfaces the creator's declared public links (present for roughly 40-60% of creators, since not everyone lists one), and requireContactLink can drop any row whose creator has none — filtered before the row is pushed, so you're never charged for an uncontactable lead.

FieldDescription
videoId / title / videoUrl / duration / viewCountStandard video fields.
channel.name / channel.urlVideo creator's channel name and URL.
channelDetails.subscribersApprox / .country / .videoCount / .joinedDate / .totalViews / .descriptionCreator's channel profile, fetched once per unique creator.
channelLinksArray of {title, url} — the creator's public links from their About page (website, social profiles). Present for roughly 40-60% of creators.
hasContactLinktrue if channelLinks has at least one entry.
playlistInfo.playlistTitleWhich playlist this video came from.
extractedAtScrape timestamp.

Why not build this yourself?

YouTube's playlist page and channel About page are both HTML-embedded JSON with no public API, and naive scraping gets soft-blocked with a consent interstitial on non-US/EU exit IPs — this actor ships a durable consent-bypass cookie to avoid that, plus a proxy escalation ladder (direct → datacenter → residential, with 3 retries on residential) that persists its state across playlists in a run rather than resetting per request. The caching layer is the part most implementations skip: fetching a creator's About page once per unique creator instead of once per video is what keeps a large playlist from a single channel affordable and fast.

One honest limit: not every creator publishes a contact link on their About page — channelLinks coverage runs roughly 40-60% depending on the niche, and that's a real ceiling of what's public, not a bug in extraction. Use requireContactLink to keep only the rows that clear that bar.

  • Influencer/UGC outreach teams — turn a curated playlist (e.g. "best cooking channels 2026") into a contact list of creators with public links, filtered to only those you can actually reach.
  • Brand partnership scouts — profile every creator behind a competitor's or category's top playlist in one run.
  • Talent researchers — use channelDetails (subscribers, country, join date) to qualify creators before reaching out.
  • Content curators — build a structured video-plus-creator dataset from any public playlist for a content roundup or newsletter.

🔼 Input sample

ParameterRequiredTypeDescriptionExample
playlistInputsYesarrayPlaylist URLs or @username (fetches up to 5 of that creator's playlists). Keyword search not supported.["https://www.youtube.com/playlist?list=PLObrtcm1Kw6Odq5ks2R3bbJUGVVwQF-vw"]
maxVideosNointegerVideos to pull per playlist (0 = all). Default 10.10
includeVideoDetailsNobooleanOn = full video row (thumbnail, videoInfo, durationLabel, full channel/playlist, extractedAt). Off = slim row. Default true.true
fetchChannelDetailsNobooleanAdd channelDetails per video, fetched once per unique creator. Default true.true
includeChannelLinksNobooleanAdd channelLinks[] from the creator's About page. Common pitfall: present for only ~40-60% of creators — not every creator publishes one. Default true.true
requireContactLinkNobooleanDrop videos whose creator lists no public link, before the row is pushed (uncharged for dropped rows). Default false.true
proxyConfigurationNoobjectOptional. Starts direct, auto-escalates datacenter then residential on a block. Default direct.{"useApifyProxy": false}
{
"playlistInputs": ["https://www.youtube.com/playlist?list=PLObrtcm1Kw6Odq5ks2R3bbJUGVVwQF-vw"],
"maxVideos": 20,
"requireContactLink": true
}

🔽 Output sample

{
"videoId": "dQw4w9WgXcQ",
"title": "Example Video Title",
"videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"channel": { "name": "Example Creator", "url": "https://www.youtube.com/@examplecreator" },
"channelDetails": {
"subscribersApprox": "120K",
"country": "United States",
"videoCount": 342,
"joinedDate": "Jan 15, 2018"
},
"channelLinks": [
{ "title": "Website", "url": "https://examplecreator.com" },
{ "title": "Instagram", "url": "https://instagram.com/examplecreator" }
],
"hasContactLink": true,
"playlistInfo": { "playlistTitle": "Best Tutorials 2026" }
}

▶️ Want to try other scrapers?

ActorWhat it does
youtube-search-scraper-channel-contact-linksSearch YouTube and pull channel contact links.
youtube-channel-keyword-research-scraperResearch channels by keyword and SEO signal.
youtube-video-details-comments-scraperGet video details and comments.

How to extract YouTube playlist and creator data programmatically

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("SimpleAPI/youtube-playlist-scraper-with-creator-contact-links").call(run_input={
"playlistInputs": ["https://www.youtube.com/playlist?list=PLObrtcm1Kw6Odq5ks2R3bbJUGVVwQF-vw"],
"maxVideos": 20,
"requireContactLink": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
if item.get("hasContactLink"):
print(item["channel"]["name"], item["channelLinks"])

Every run's dataset can also be exported straight to JSON, CSV, Excel or an API endpoint from the Apify Console — no code needed for a one-off pull.

Scraping publicly accessible data — including public playlists and channel About pages — is generally lawful in the US under the precedent set in hiQ Labs v. LinkedIn, which held that scraping data not gated behind a login does not violate the Computer Fraud and Abuse Act. This actor reads only public playlist and About page content, with no login required. Because this actor's purpose includes surfacing contact links tied to identifiable creators, GDPR (EU) and CCPA (California) apply to what you do with that output — review your legal basis before using extracted contact links for outreach, especially at scale.

❓ FAQ

Why doesn't every creator have a channelLinks entry? Not every creator publishes a public link on their About page — real coverage runs roughly 40-60%. This is a ceiling of what creators actually make public, not a gap in extraction.

How does channel-profile caching work? Each unique creator's About page is fetched once per run and cached, regardless of how many videos in the playlist(s) belong to them — a 50-video playlist from one channel costs one channel-profile fetch.

What does requireContactLink actually save me? It drops any video whose creator has no public link before the row is pushed to the dataset, so you're never charged for a row you can't act on for outreach.

Can I pass a creator's username instead of a playlist URL? Yes — an @username (or bare username) is resolved to that creator's playlists page, and up to 5 of their playlists are scraped automatically.

Does keyword search work as an input? No — only playlist URLs and @username inputs are supported; a bare keyword search term will fail to resolve and log a warning.

Why did a playlist return zero videos? The actor auto-escalates through direct, datacenter, then residential proxies on a block, retrying residential up to 3 times. If it still returns nothing, the playlist may be private, deleted, or empty — check the logged URL.

How is this different from other YouTube contact-scraping actors on Apify? As observed on the Apify Store on 2026-07-26, most YouTube contact-focused scrapers target search results or a single channel list directly. This one starts from a playlist (or a creator's playlist catalog) and enriches every video's creator in the same pass, with per-creator caching so repeat creators in one playlist aren't re-fetched.

Conclusion

YouTube Playlist Scraper With Creator Contact Links turns a playlist into an outreach-ready creator list — video data plus each creator's public contact links, cached efficiently and optionally filtered to only the leads you can actually reach.