Youtube Channel Scraper avatar

Youtube Channel Scraper

Pricing

$3.99/month + usage

Go to Apify Store
Youtube Channel Scraper

Youtube Channel Scraper

YouTube channel scraper built with Puppeteer/Playwright that extracts channel name, description, subscribers, total views, video count, joined date, country, and external links (Instagram, TikTok, website, etc.). Handles “...more” popup, parses redirect URLs, and stores clean structured JSON output.

Pricing

$3.99/month + usage

Rating

5.0

(4)

Developer

ScrapeAI

ScrapeAI

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

This actor visits the Videos tab of a YouTube channel and by default outputs one record containing the channel's details and the most recent video. You can now request multiple video entries using the numberOfVideos input parameter.


Features

  • Dynamic channel name/handle input
  • Automatically constructs https://www.youtube.com/{{channelName}}/videos URL
  • Outputs one or more channel/video records per run (controlled via numberOfVideos)
  • Scrapes additional field(s) such as the full header description and any social/pop‑up links
  • Collects channel profile and About page info (active since, views, description, country, links)
  • Outputs a rich JSON record

Input

{
"channelName": "@NationalGeographic"
}

Input Fields

FieldTypeRequiredDescription
channelNamestring✅ YesChannel handle or name (defaults to @zara)
numberOfVideosinteger❌ NoHow many videos to return (1 = just the most recent, higher numbers produce multiple records)

How It Works

  1. Accepts channelName (and optional numberOfVideos) from user input.
  2. Builds a channel videos URL: https://www.youtube.com/{{channelName}}/videos.
  3. Opens the channel page and handles popups.
  4. Extracts subscriber count and profile picture from the channel header.
  5. Visits the About tab to gather channel info (active since, view count, description, country, links).
  6. Grabs metadata for the first N videos on the page, where N equals numberOfVideos.
  7. Each record is enqueued into the dataset; the default dataset will contain multiple entries if you requested more than one video.
  8. Outputs a single JSON record combining all channel and video data.

Note: By default Actor.pushData(data) writes to the default dataset (local path storage/datasets/default/). Opening a named dataset such as the former if you want all results in the default dataset; the latter if you need a dedicated dataset with its own view schema.

Example Record

{
"title": "PAIN HUSTLERS | Emily Blunt & Catherine O'Hara Clip | Netflix",
"author": "@netflix",
"videoUrl": "https://www.youtube.com/watch?v=mEbVjufYiFE",
"coverImage": "https://i.ytimg.com/vi/mEbVjufYiFE/hqdefault.jpg",
"subscriberCount": "27,2 M d'abonnés",
"likeCount": null,
"description": "Emily Blunt, Chris Evans, Catherine O'Hara, and Andy Garcia in PAIN HUSTLERS.",
"viewCount": 29280,
"commentCount": null,
"publishedAt": "5 months ago",
"id": "mEbVjufYiFE",
"amountOfVideos": null,
"profilePicture": null,
"channelInfo": {
"actifFrom": "Actif depuis le 17 juil. 2012",
"viewCounter": "7 569 331 655 vues",
"channelDescription": "Netflix is the world's leading streaming entertainment service.",
"country": "États-Unis",
"link": {
"Netflix": "signup.netflix.com",
"Facebook": "facebook.com/netflixus",
"Twitter": "twitter.com/netflix",
"Instagram": "instagram.com/netflix",
"Tumblr": "netflix.tumblr.com"
},
"externalLinks": [
{ "title": "Netflix", "url": "https://signup.netflix.com" },
{ "title": "Facebook", "url": "https://facebook.com/netflixus" }
],
"headerDescription": "Learn about Netflix and our latest releases.",
"moreLinks": [
{ "title": "More info", "href": "https://netflix.com/about" }
]
}
}

Output Schema

FieldTypeDescription
titlestringTitle of the video
authorstringChannel handle (e.g. @netflix)
videoUrlstringFull YouTube video URL
coverImagestringThumbnail image URL
subscriberCountstring|nullSubscriber count text (e.g. "27,2 M d'abonnés")
likeCountnumber|nullLike count (null if not available)
descriptionstringVideo description snippet
viewCountnumber|nullView count as integer
commentCountnumber|nullComment count (null if not available)
publishedAtstring|nullUpload time text (e.g. "5 months ago")
idstring|nullYouTube video ID
amountOfVideosnumber|nullTotal videos on channel
profilePicturestring|nullChannel profile picture URL
channelInfo.actifFromstring|nullChannel creation date text
channelInfo.viewCounterstring|nullTotal channel views text
channelInfo.channelDescriptionstring|nullFull channel description from About tab
channelInfo.countrystring|nullChannel country
channelInfo.linkobject|nullKey-value map of channel links (name → URL)
channelInfo.externalLinksarray|nullArray of objects { title, url } scraped from the redirect‑cleaned external links list
channelInfo.headerDescriptionstring|nullFull description text visible on channel header (expanded if truncated)
channelInfo.moreLinksarray|nullArray of objects { title, href } scraped from the "more links" popup

Example

Channel name: @zara

Generated URL: https://www.youtube.com/@zara/videos