YouTube Channel Scraper
Pricing
from $0.00005 / actor start
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
Maintained by CommunityActor stats
4
Bookmarked
95
Total users
2
Monthly active users
10 days ago
Last modified
Categories
Features
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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
channel_url | string | Yes | — | YouTube channel URL, e.g. https://www.youtube.com/@apify |
max_videos | integer | No | 10 | Maximum number of videos to scrape (1–1000) |
sort_by | string | No | latest | Sort order: latest, popular, or oldest |
proxyConfiguration | object | No | Apify Proxy off | Proxy 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
- Accepts a YouTube channel URL and configuration parameters
- Launches a headless browser using Playwright
- Navigates to the channel's videos page
- Applies the selected sorting filter
- Scrolls to load videos until reaching the specified limit
- Extracts video metadata using DOM selectors
- Returns structured data in JSON format
How to Use
- Open the Actor page on Apify Store and click Start Actor.
- Paste the channel URL (e.g.
https://www.youtube.com/@apify). - Set
max_videosandsort_byas needed. - Enable Apify Proxy (residential) if you experience blocks.
- 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 requestsresponse = 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
| Event | Price |
|---|---|
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.
Related Actors
Check out my other Apify Actors:
- YouTube Transcript Scraper — extract transcripts from any YouTube video
- YouTube Transcript Extractor — transcripts with timestamps in 100+ languages
- YouTube Full Channel Transcripts Extractor — transcripts for entire channels
- YouTube Playlist Scraper — full metadata for every video in a playlist
- YouTube Playlist Scraper with Transcript — playlist metadata plus transcripts
- YouTube Search Scraper — search YouTube via the official Data API
- YouTube Trending Scraper — trending videos by region and category
Built and maintained by akash9078 on the Apify platform.