YouTube Channel Scraper avatar

YouTube Channel Scraper

Pricing

from $0.00005 / actor start

Go to Apify Store
YouTube Channel Scraper

YouTube Channel Scraper

Scrape the latest YouTube videos, shorts, and live of a channel with views and duration.

Pricing

from $0.00005 / actor start

Rating

5.0

(3)

Developer

Akash Kumar Naik

Akash Kumar Naik

Maintained by Community

Actor stats

4

Bookmarked

95

Total users

2

Monthly active users

10 days ago

Last modified

Features

Limited permissions

Share

YouTube Channel Video Scraper is an Apify Actor that extracts video data from YouTube channels — titles, URLs, thumbnails, view counts, and publish dates — with sorting by latest, popular, or oldest uploads.

What Is YouTube Channel Video Scraper?

YouTube Channel Video Scraper collects video metadata from any public YouTube channel using Playwright browser automation. Point it at a channel URL, choose how many videos you need and in what order, and get structured JSON data ready for analysis or export.

Key Features

  • Data extraction — collect video metadata from YouTube channels
  • Sorting options — sort by latest, popular, or oldest uploads
  • Custom limits — control the number of videos to extract (1–1000)
  • Browser automation — uses Playwright for reliable data extraction
  • Proxy support — datacenter proxies by default; residential available for tough blocks
  • Pay-per-event pricing — $0.005 per video scraped

Use Cases

  • YouTube channel analysis and research
  • Video metadata collection
  • Content planning and trend analysis
  • Market research and competitive analysis
  • Building video databases or archives

Input Parameters

ParameterTypeRequiredDefaultDescription
channel_urlstringYes—YouTube channel URL, e.g. https://www.youtube.com/@apify
max_videosintegerNo10Maximum number of videos to scrape (1–1000)
sort_bystringNolatestSort order: latest, popular, or oldest
proxyConfigurationobjectNoApify Proxy offProxy settings (see below)

Proxy notes:

  • useApifyProxy: enable/disable Apify Proxy (default: false)
  • apifyProxyGroups: [] or "auto" — datacenter proxies, fastest and cheapest; "RESIDENTIAL" — least likely to be blocked but more expensive

Example input:

{
"channel_url": "https://www.youtube.com/@apify",
"max_videos": 50,
"sort_by": "popular",
"proxyConfiguration": {
"useApifyProxy": false,
"apifyProxyGroups": []
}
}

Sample Output

Each scraped video includes:

  • title — video title
  • url — direct YouTube video link
  • thumbnail_url — HD thumbnail image URL (maxresdefault quality)
  • views — view count
  • published_date — publish date

Example output:

[
{
"title": "Sample Video Title",
"url": "https://www.youtube.com/watch?v=example",
"thumbnail_url": "https://img.youtube.com/vi/example/hqdefault.jpg",
"views": "100K views",
"published_date": "2 days ago"
}
]

How It Works

  1. Accepts a YouTube channel URL and configuration parameters
  2. Launches a headless browser using Playwright
  3. Navigates to the channel's videos page
  4. Applies the selected sorting filter
  5. Scrolls to load videos until reaching the specified limit
  6. Extracts video metadata using DOM selectors
  7. Returns structured data in JSON format

How to Use

  1. Open the Actor page on Apify Store and click Start Actor.
  2. Paste the channel URL (e.g. https://www.youtube.com/@apify).
  3. Set max_videos and sort_by as needed.
  4. Enable Apify Proxy (residential) if you experience blocks.
  5. Run the Actor and download results as JSON, CSV, or Excel from the dataset.

How to Use via API

cURL:

curl -X POST "https://api.apify.com/v2/acts/akash9078/youtube-channel-video-scraper/runs" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channel_url": "https://www.youtube.com/@apify", "max_videos": 50, "sort_by": "popular"}'

Python:

import requests
response = requests.post(
"https://api.apify.com/v2/acts/akash9078/youtube-channel-video-scraper/runs",
headers={"Authorization": "Bearer YOUR_APIFY_TOKEN"},
json={"channel_url": "https://www.youtube.com/@apify", "max_videos": 50, "sort_by": "popular"},
)
print(response.json())

Node.js with Apify Client:

const { ApifyClient } = require('apify-client');
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('akash9078/youtube-channel-video-scraper').call({
channel_url: 'https://www.youtube.com/@apify',
max_videos: 50,
sort_by: 'popular',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Pricing

EventPrice
YouTube Video Scraped (youtube-video)$0.005 per video

You are charged for each video successfully scraped and added to the dataset.

Limitations

  • Works with public YouTube channels only
  • Requires a stable internet connection
  • Large channel pages may require more scraping time
  • YouTube updates may occasionally affect selectors

FAQ

What is the maximum number of videos per run?

Up to 1000 videos, set via max_videos (default 10).

Which sort orders are supported?

latest, popular, and oldest — matching the channel page's own sorting tabs.

Do I need a proxy?

Apify Proxy is off by default. Datacenter proxies are the cheapest option for most runs; switch to residential proxies ("RESIDENTIAL") if you experience blocks.

Does the Actor need a YouTube login?

No. It scrapes public channel pages without authentication.

Check out my other Apify Actors:


Built and maintained by akash9078 on the Apify platform.