YouTube Scraper — Videos, Channels & Search Results
Pricing
Pay per usage
YouTube Scraper — Videos, Channels & Search Results
Extract YouTube video data from search results and channel pages. Scrape titles, view counts, durations, thumbnails, publish dates, channel info, subscriber counts, and descriptions. Sort by relevance, date, views, or rating. Perfect for content research, competitor analysis, influencer discovery, a
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Ricardo Akiyoshi
Actor stats
0
Bookmarked
12
Total users
5
Monthly active users
6 days ago
Last modified
Categories
Share
YouTube Scraper — Extract Videos, Channels & Search Data
Scrape YouTube search results and channel pages without using the official API. Extract video titles, view counts, durations, thumbnails, publish dates, channel stats, and subscriber counts at scale.
What It Does
- Search scraping — Enter any search query and get structured data for every YouTube video result, sorted by relevance, date, views, or rating
- Channel scraping — Provide channel URLs to extract their uploaded videos, subscriber counts, total views, and channel metadata
- No API key needed — Works by parsing YouTube's public HTML pages, so you never need a Google API key or quota
- Pay-per-result pricing — Only pay for the data you actually receive, starting at $0.003 per video
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQueries | array | ["coffee shop"] | YouTube search queries to scrape (e.g., ["react tutorial", "python tips"]) |
channelUrls | array | ["https://www.youtube.com/@MrBeast"] | YouTube channel URLs to scrape videos from |
maxVideos | integer | 10 | Maximum number of videos to extract per query or channel (max 500) |
sortBy | string | "relevance" | Sort search results: relevance, date, view_count, or rating |
scrapeChannelInfo | boolean | true | Also extract channel metadata (subscribers, total views, description) |
maxConcurrency | integer | 3 | Number of parallel browser sessions |
proxyConfiguration | object | {"useApifyProxy": true} | Proxy settings for avoiding blocks |
Output Example
Each video result includes the following fields:
{"type": "video","title": "I Built 100 Wells In Africa","videoId": "hQKfk2aGzis","videoUrl": "https://www.youtube.com/watch?v=hQKfk2aGzis","thumbnailUrl": "https://i.ytimg.com/vi/hQKfk2aGzis/hq720.jpg","viewCount": 214000000,"viewCountText": "214M views","duration": "18:22","publishedDate": "2024-01-21T00:00:00.000Z","publishedText": "1 year ago","channelName": "MrBeast","channelUrl": "https://www.youtube.com/@MrBeast","descriptionSnippet": "We built 100 wells across Africa to bring clean drinking water to communities that need it most.","scrapedAt": "2026-03-03T14:22:05.123Z"}
When scrapeChannelInfo is enabled, you also get channel metadata:
{"type": "channel","channelName": "MrBeast","channelUrl": "https://www.youtube.com/@MrBeast","description": "SUBSCRIBE FOR A COOKIE!","subscriberCount": 358000000,"subscriberCountText": "358M subscribers","videoCount": 850,"videoCountText": "850 videos","totalViews": 62500000000,"totalViewsText": "62.5B views","avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_mKz...","bannerUrl": "https://yt3.googleusercontent.com/banner/abc123...","joinDate": "2012-02-20","country": "US","keywords": ["MrBeast", "philanthropy", "challenges"],"scrapedAt": "2026-03-03T14:22:08.456Z"}
Use Cases
- Content research — Find trending videos in any niche to plan your own content strategy
- Competitor analysis — Track competitor channels' upload frequency, view counts, and engagement
- Influencer discovery — Search for creators by topic and compare subscriber counts and view metrics
- Market research — Analyze which video topics and formats get the most views in your industry
- Academic research — Collect large datasets of YouTube metadata for media studies or trend analysis
- Ad placement research — Identify high-performing channels and videos for YouTube ad targeting
API Usage
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('sovereigntaylor/youtube-scraper').call({searchQueries: ['machine learning tutorial'],maxVideos: 50,sortBy: 'view_count',scrapeChannelInfo: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_API_TOKEN')run = client.actor('sovereigntaylor/youtube-scraper').call(run_input={'searchQueries': ['machine learning tutorial'],'maxVideos': 50,'sortBy': 'view_count','scrapeChannelInfo': True,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL
curl "https://api.apify.com/v2/acts/sovereigntaylor~youtube-scraper/runs" \-X POST \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_API_TOKEN" \-d '{"searchQueries": ["machine learning tutorial"],"maxVideos": 50,"sortBy": "view_count","scrapeChannelInfo": true}'
Pricing
This actor uses pay-per-event pricing — you only pay for results successfully scraped.
| Event | Price |
|---|---|
| Video scraped | $0.003 |
| Channel metadata scraped | $0.005 |
Example: Scraping 100 videos + 5 channel profiles = (100 x $0.003) + (5 x $0.005) = $0.325
Limitations
- YouTube may rate-limit or block requests during heavy scraping — use proxy rotation and moderate concurrency
- View counts and subscriber numbers are approximate (YouTube rounds large numbers)
- Video descriptions are returned as snippets, not full text
- Live streams and premieres may appear in results but have limited metadata
- Maximum 500 videos per search query or channel per run
Related Actors
- Instagram Scraper — Scrape Instagram profiles, posts, and hashtags
- Twitter/X Followers Scraper — Extract follower lists and profile data from X/Twitter
- Reddit Scraper — Scrape Reddit posts and comments from any subreddit
- TripAdvisor Scraper — Extract hotel, restaurant, and attraction reviews