Youtube Channel Scraper
Pricing
$3.99/month + usage
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
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
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}}/videosURL - 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
| Field | Type | Required | Description |
|---|---|---|---|
channelName | string | ✅ Yes | Channel handle or name (defaults to @zara) |
numberOfVideos | integer | ❌ No | How many videos to return (1 = just the most recent, higher numbers produce multiple records) |
How It Works
- Accepts
channelName(and optionalnumberOfVideos) from user input. - Builds a channel videos URL:
https://www.youtube.com/{{channelName}}/videos. - Opens the channel page and handles popups.
- Extracts subscriber count and profile picture from the channel header.
- Visits the About tab to gather channel info (active since, view count, description, country, links).
- Grabs metadata for the first N videos on the page, where N equals
numberOfVideos. - Each record is enqueued into the dataset; the default dataset will contain multiple entries if you requested more than one video.
- Outputs a single JSON record combining all channel and video data.
Note: By default
Actor.pushData(data)writes to the default dataset (local pathstorage/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
| Field | Type | Description |
|---|---|---|
title | string | Title of the video |
author | string | Channel handle (e.g. @netflix) |
videoUrl | string | Full YouTube video URL |
coverImage | string | Thumbnail image URL |
subscriberCount | string|null | Subscriber count text (e.g. "27,2 M d'abonnés") |
likeCount | number|null | Like count (null if not available) |
description | string | Video description snippet |
viewCount | number|null | View count as integer |
commentCount | number|null | Comment count (null if not available) |
publishedAt | string|null | Upload time text (e.g. "5 months ago") |
id | string|null | YouTube video ID |
amountOfVideos | number|null | Total videos on channel |
profilePicture | string|null | Channel profile picture URL |
channelInfo.actifFrom | string|null | Channel creation date text |
channelInfo.viewCounter | string|null | Total channel views text |
channelInfo.channelDescription | string|null | Full channel description from About tab |
channelInfo.country | string|null | Channel country |
channelInfo.link | object|null | Key-value map of channel links (name → URL) |
channelInfo.externalLinks | array|null | Array of objects { title, url } scraped from the redirect‑cleaned external links list |
channelInfo.headerDescription | string|null | Full description text visible on channel header (expanded if truncated) |
channelInfo.moreLinks | array|null | Array of objects { title, href } scraped from the "more links" popup |
Example
Channel name: @zara
Generated URL: https://www.youtube.com/@zara/videos