YouTube Scraper — Channels, Videos & Search
Pricing
Pay per usage
YouTube Scraper — Channels, Videos & Search
Scrape YouTube channels, videos, and search results without an API key. Uses yt-dlp for reliable metadata extraction. Extract views, likes, subscribers, descriptions.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
CryptoSignals Agent
Actor stats
0
Bookmarked
3
Total users
1
Monthly active users
11 hours ago
Last modified
Share
YouTube Scraper — Channels, Videos & Search (No API Key Required)
Extract YouTube channel data, video statistics, and search results — no API key needed. No Google Cloud account, no OAuth, no quota limits. Export to JSON, CSV, Excel, or connect via Zapier / Make.com integration.
Why Use This YouTube Scraper?
YouTube is the world's largest video platform with over 2 billion monthly active users. The official YouTube Data API requires a Google Cloud account, API key setup, and has strict quota limits. This scraper bypasses all of that — giving you the same data without any API key or setup.
No API key needed. No Google Cloud account, no OAuth credentials, no quota limits. Just configure your input, run the actor, and download structured data.
Features
- Channel scraping — get subscriber counts, video lists, and channel metadata
- Video statistics — views, likes, comments, duration, tags, descriptions, and more
- YouTube search — search YouTube programmatically and get structured results
- No API key needed — zero setup, no Google Cloud account, no OAuth, no quotas
- Fast & reliable — handles rate limiting and anti-bot measures automatically
- JSON & CSV export — download results in JSON, CSV, Excel, XML, or RSS
- Zapier / Make.com integration — connect to 5,000+ apps via webhooks
- Multiple URL formats — supports @username, /c/channel, /channel/UC..., watch?v=, and youtu.be links
- Scheduled runs — set up recurring scrapes to track channel growth and video performance
Input Schema
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
action | string | Yes | search | One of: channel, video, search |
url | string | For channel/video | — | YouTube URL (channel or video) |
query | string | For search | — | Search query string |
maxItems | integer | No | 30 | Max results to return (default: 30, max: 200) |
Action Types
channel— Scrape a YouTube channel's metadata and recent videos. Requiresurl.video— Get complete metadata for a single YouTube video. Requiresurl.search— Search YouTube and get structured results. Requiresquery.
Example Inputs
Scrape a channel:
{"action": "channel","url": "https://www.youtube.com/@mkbhd","maxItems": 30}
Get video details:
{"action": "video","url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"}
Search YouTube:
{"action": "search","query": "python programming tutorial","maxItems": 50}
Output Schema
Video Details Output
{"type": "video","id": "dQw4w9WgXcQ","title": "Rick Astley - Never Gonna Give You Up","url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","channel": "Rick Astley","channelUrl": "https://www.youtube.com/@RickAstleyYT","views": 1752745940,"likes": 18859741,"comments": 2400000,"duration": 213,"durationString": "3:33","uploadDate": "20091025","description": "The official video for...","tags": ["rick astley", "never gonna give you up"],"thumbnail": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg","categories": ["Music"],"language": "en"}
Channel Video Output
{"type": "channelVideo","channel": "MKBHD","channelUrl": "https://www.youtube.com/@mkbhd","id": "D4QyStJWgCc","title": "Nothing Phone 4A/Pro Review","url": "https://www.youtube.com/watch?v=D4QyStJWgCc","views": 1204240,"duration": 724.0,"thumbnail": "https://i.ytimg.com/vi/D4QyStJWgCc/hqdefault.jpg"}
Search Result Output
{"type": "searchResult","query": "python tutorial","id": "K5KVEU3aaeQ","title": "Python Full Course for Beginners","url": "https://www.youtube.com/watch?v=K5KVEU3aaeQ","channel": "Programming with Mosh","views": 5756711,"duration": 7341.0,"thumbnail": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault.jpg"}
Code Examples
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")# Search YouTuberun = client.actor("cryptosignals/youtube-scraper").call(run_input={"action": "search","query": "python programming tutorial","maxItems": 50})# Fetch resultsfor item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['title']} — {item.get('views', 0):,} views")print(f" Channel: {item.get('channel', 'N/A')}")print(f" URL: {item['url']}")print("---")
# Get detailed video statisticsrun = client.actor("cryptosignals/youtube-scraper").call(run_input={"action": "video","url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"Title: {item['title']}")print(f"Views: {item['views']:,} | Likes: {item.get('likes', 0):,}")print(f"Duration: {item.get('durationString', 'N/A')}")print(f"Tags: {', '.join(item.get('tags', []))}")
# Scrape a channel's recent videosrun = client.actor("cryptosignals/youtube-scraper").call(run_input={"action": "channel","url": "https://www.youtube.com/@mkbhd","maxItems": 30})videos = list(client.dataset(run["defaultDatasetId"]).iterate_items())total_views = sum(v.get("views", 0) for v in videos)print(f"Channel: {videos[0].get('channel', 'Unknown')} | {len(videos)} videos | {total_views:,} total views")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });// Search YouTubeconst run = await client.actor('cryptosignals/youtube-scraper').call({action: 'search',query: 'machine learning explained',maxItems: 30});// Fetch resultsconst { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => {console.log(`${item.title} — ${item.views?.toLocaleString()} views`);console.log(` Channel: ${item.channel} | ${item.url}`);});
// Get video detailsconst videoRun = await client.actor('cryptosignals/youtube-scraper').call({action: 'video',url: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'});const { items: videos } = await client.dataset(videoRun.defaultDatasetId).listItems();const video = videos[0];console.log(`${video.title}`);console.log(`Views: ${video.views?.toLocaleString()} | Likes: ${video.likes?.toLocaleString()}`);console.log(`Duration: ${video.durationString} | Upload: ${video.uploadDate}`);
Use Cases
Market Research & Competitor Analysis
Track competitor channels, analyze their most popular videos, and discover trending content in your niche. Monitor view counts and engagement metrics over time.
Content Creator Analytics
Analyze any YouTube channel's performance — find their top-performing videos, track upload frequency, and benchmark against competitors.
SEO & Keyword Research
Search YouTube for keywords to understand what content ranks well. Find gaps in content coverage and discover high-demand topics with low competition.
Influencer Marketing
Evaluate YouTube influencers for sponsorship opportunities. Analyze subscriber counts, view-to-subscriber ratios, and content quality before reaching out.
Academic Research & Data Science
Collect YouTube data for academic studies, sentiment analysis, trend research, and social media analytics projects.
Lead Generation
Find YouTube channels in specific niches for outreach, sponsorship opportunities, or partnership development. Export channel data for your CRM.
Social Media Monitoring
Track brand mentions, product reviews, and industry discussions on YouTube with automated search queries. Set up recurring scrapes for ongoing monitoring.
Podcast & Media Research
Discover popular YouTube shows and interviews in your industry. Track episode frequency, guest appearances, and audience engagement.
Supported URL Formats
| Format | Example |
|---|---|
| @username | https://www.youtube.com/@mkbhd |
| /c/channel | https://www.youtube.com/c/channelname |
| /channel/UC... | https://www.youtube.com/channel/UCBcRF18a7Qf58cCRy5xuWwQ |
| watch?v= | https://www.youtube.com/watch?v=dQw4w9WgXcQ |
| youtu.be | https://youtu.be/dQw4w9WgXcQ |
Integrations
Connect YouTube Scraper with your favorite tools:
- Zapier — Trigger workflows when new data is scraped. Send YouTube data to Google Sheets, Slack, email, or 5,000+ apps.
- Make.com (Integromat) — Build complex automation workflows with YouTube data as a trigger or data source.
- Google Sheets — Export results directly to spreadsheets for collaborative analysis.
- Webhooks — Send results to any HTTP endpoint in real-time.
- API — Access results programmatically via the Apify API in Python, JavaScript, or any language.
- Scheduled runs — Set up daily or weekly scraping schedules to track channel growth.
FAQ
Do I need a YouTube API key?
No! This scraper works without any API key, OAuth credentials, or Google Cloud setup. No API key needed — it extracts data from YouTube's public pages directly.
Is this scraper free to use?
The scraper itself is free. You only pay for Apify platform compute time. Apify offers a free tier with $5 of monthly usage.
How many results can I scrape?
You can scrape up to 200 results per run for channel videos and search results. For single video details, each run returns one complete result.
Can I export to CSV or JSON?
Yes. Results are stored in an Apify dataset that can be exported to JSON, CSV, Excel (XLSX), XML, or RSS with a single click. You can also download via the API.
Does this download videos?
No. This scraper only extracts metadata (titles, views, likes, etc.). It does not download any video or audio content.
How often is the data updated?
Every run fetches fresh, real-time data directly from YouTube. There is no caching — you always get the latest statistics.
Can I scrape private or unlisted videos?
No. This scraper only works with publicly available YouTube content.
Can I use this with Zapier or Make.com?
Yes! Apify has native integrations with both Zapier and Make.com. Trigger workflows automatically whenever a scraping run completes.
What output formats are available?
You can download results in JSON, CSV, Excel (XLSX), XML, HTML, or RSS format.
How does this compare to the YouTube Data API?
The YouTube Data API requires a Google Cloud account, API key setup, and has a quota of 10,000 units/day. This scraper has no such limitations — no setup, no quotas, no API key needed.
Legal & Compliance
This actor scrapes only publicly available metadata from YouTube. It does not download video or audio content, bypass access controls, or access any private data.
Important considerations:
- Comply with YouTube's Terms of Service and your local data protection laws (GDPR, CCPA, etc.) when using scraped data.
- Do not use this tool for spam, harassment, or any illegal purpose.
- The data extracted (view counts, titles, descriptions) is the same information visible to any YouTube visitor.
- The actor does not download or store videos — it only extracts metadata and statistics.
- For commercial use, consult your legal team regarding compliance with applicable regulations.
- Respect content creators' intellectual property rights and privacy.
This tool is intended for legitimate purposes such as market research, content analysis, competitive intelligence, academic study, and SEO research.
Pricing
This actor runs on the Apify platform. You pay only for compute usage — there are no additional fees for the actor itself. Apify offers a free tier with $5 of monthly usage.
Limitations
- Public content only — cannot access private, unlisted, or age-restricted videos
- Maximum 200 results per run for channel videos and search
- Metadata only — does not download video or audio files
- YouTube may change their page structure — the actor uses yt-dlp for reliable extraction
- Some video fields (tags, categories) may not be available for all videos
Related Scrapers by CryptoSignals
- TikTok Scraper — Short-form video profiles & hashtags
- Pinterest Scraper — Visual content, pins & boards
- Reddit Scraper — Community posts & discussions