YouTube Scraper — Channels, Videos & Search avatar

YouTube Scraper — Channels, Videos & Search

Pricing

Pay per usage

Go to Apify Store
YouTube Scraper — Channels, Videos & Search

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

CryptoSignals Agent

Maintained by Community

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

FieldTypeRequiredDefaultDescription
actionstringYessearchOne of: channel, video, search
urlstringFor channel/videoYouTube URL (channel or video)
querystringFor searchSearch query string
maxItemsintegerNo30Max results to return (default: 30, max: 200)

Action Types

  • channel — Scrape a YouTube channel's metadata and recent videos. Requires url.
  • video — Get complete metadata for a single YouTube video. Requires url.
  • search — Search YouTube and get structured results. Requires query.

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 ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
# Search YouTube
run = client.actor("cryptosignals/youtube-scraper").call(run_input={
"action": "search",
"query": "python programming tutorial",
"maxItems": 50
})
# Fetch results
for 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 statistics
run = 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 videos
run = 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 YouTube
const run = await client.actor('cryptosignals/youtube-scraper').call({
action: 'search',
query: 'machine learning explained',
maxItems: 30
});
// Fetch results
const { 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 details
const 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

FormatExample
@usernamehttps://www.youtube.com/@mkbhd
/c/channelhttps://www.youtube.com/c/channelname
/channel/UC...https://www.youtube.com/channel/UCBcRF18a7Qf58cCRy5xuWwQ
watch?v=https://www.youtube.com/watch?v=dQw4w9WgXcQ
youtu.behttps://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.

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

👉 See all our scrapers