Youtube Scraper avatar

Youtube Scraper

Pricing

from $4.00 / 1,000 results

Go to Apify Store
Youtube Scraper

Youtube Scraper

Extract comprehensive data from YouTube including videos, channels, playlists, and search results. This Actor supports multiple filters, languages, and countries for customized data collection.

Pricing

from $4.00 / 1,000 results

Rating

0.0

(0)

Developer

Jason Giang

Jason Giang

Maintained by Community

Actor stats

3

Bookmarked

66

Total users

1

Monthly active users

7 hours ago

Last modified

Share

Extract comprehensive data from YouTube including videos, channels, playlists, and search results. This Actor supports multiple filters, languages, and countries for customized data collection.

Features

  • 🔍 Search Functionality: Search YouTube with keywords
  • 📺 Channel Scraping: Extract videos from YouTube channels using handles or URLs
  • 📋 Playlist Support: Scrape entire playlists
  • 🔗 URL Processing: Direct video, channel, and playlist URL scraping
  • 🌍 Multi-language Support: Configure language and country settings
  • Fast & Efficient: Optimized for speed and reliability
  • 📊 Rich Data: Get views, likes, duration, channel info, and more

Input Configuration

Basic Options

  • Start URLs: YouTube URLs (videos, channels, playlists)
  • Keywords: Search terms to find videos
  • YouTube Handles: Channel handles (e.g., @MrBeast)
  • Max Items: Maximum number of videos to scrape
  • Max Items Per Query: Limit per keyword/channel/playlist

Filters

  • Location (gl): Country code (US, GB, DE, etc.)
  • Language (hl): Language code (en, de, fr, etc.)
  • Upload Date: Filter by recency (hour, today, week, month, year)
  • Duration: Filter by video length (short, medium, long)
  • Sort By: Order results (relevance, upload date, view count, rating)

Advanced Options

  • Get Trending: Retrieve trending videos
  • Get Channel Info: Include detailed channel information
  • Proxy Configuration: Configure proxy settings

Output

Each scraped video includes:

{
"type": "video",
"id": "VMYmerFEvHE",
"title": "Video Title",
"url": "https://www.youtube.com/watch?v=VMYmerFEvHE",
"description": "Full video description...",
"duration": 170,
"views": 430284,
"likes": 0,
"channel.id": "UCFVEEjwyX0_wZkCcwHE8tig",
"channel.name": "Channel Name",
"channel.url": "https://www.youtube.com/channel/UCFVEEjwyX0_wZkCcwHE8tig",
"channelIcon": "https://yt3.ggpht.com/...",
"thumbnails": {
"id": "VMYmerFEvHE",
"width": 720,
"height": 404,
"url": "https://i.ytimg.com/vi/VMYmerFEvHE/hq720.jpg"
},
"isLive": false,
"isShorts": false,
"isPrivate": false,
"keywords": ["keyword1", "keyword2", "keyword3"],
"embedUrl": "https://www.youtube.com/embed/VMYmerFEvHE",
"isFamilySafe": true,
"publishDate": "2025-05-06T12:00:00.000Z",
"uploadDate": "2025-05-06T12:00:00.000Z"
}

Dates

publishDate and uploadDate are always an ISO-8601 UTC timestamp (2026-09-07T12:00:00.000Z) or null — never localised prose. Exact times come from the video's player response; where only YouTube's relative text is available ("3 days ago", "3 ngày trước", "3 か月前") it is resolved against the run's clock, and anything coarser than an hour is anchored at 12:00 UTC because that text pins down a date but not a time of day. Wording that cannot be resolved yields null rather than being passed through as text.

Relative text is recognised in the run's hl language plus the ~35 other locales YouTube serves, so setting hl: "vi" does not cost you dated results.

Usage Examples

Example 1: Search for Videos

{
"keywords": ["apify tutorial", "web scraping"],
"maxItems": 50,
"sortBy": "view_count"
}

Example 2: Scrape a Channel

{
"youtubeHandles": ["@MrBeast"],
"maxItemsPerQuery": 100,
"getChannelInfo": true
}

Example 3: Extract Playlist Videos

{
"startUrls": [
{ "url": "https://www.youtube.com/playlist?list=PLxxxxxx" }
],
"maxItems": 200
}

Example 4: Multiple Sources

{
"keywords": ["javascript tutorial"],
"youtubeHandles": ["@FireshipIO"],
"startUrls": [
{ "url": "https://www.youtube.com/@Fireship" }
],
"maxItems": 100,
"uploadDate": "month"
}

Limitations

  • Rate limiting applies based on YouTube's policies
  • Subscriber counts and like counts are not available due to YouTube API limitations
  • Some data may require authentication
  • Proxy usage recommended for high-volume scraping

Support

For issues or questions, please create an issue in the repository.