Youtube Channel Scraper avatar

Youtube Channel Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Youtube Channel Scraper

Youtube Channel Scraper

📺 YouTube Channel Scraper extracts channel metadata, About info, subscribers, views, contact links, videos, playlists & engagement stats. 🔎 Perfect for competitor analysis, influencer discovery, market research & SEO audits. 🚀 Fast, reliable, and ready for scale.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

ScrapeLabs

ScrapeLabs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Share

Youtube Channel Scraper

The Youtube Channel Scraper is a production-ready Apify actor that extracts complete, structured data from public YouTube channels — including channel metadata, videos, Shorts, live streams, and community posts. It solves the pain of manual research by delivering an automated YouTube channel data scraper with flexible sorting, robust proxy fallback, and asynchronous pagination. Built for marketers, developers, data analysts, and researchers, this YouTube channel metadata extractor enables scalable competitor benchmarking, influencer discovery, and analytics-ready exports.

What data / output can you get?

Data typeDescriptionExample value
channelNameChannel display name from About data"MrBeast"
channelUsernameHandle extracted from vanity URL"MrBeast"
channelIdYouTube channel external ID"UCX6OQ3DkcsbYNE6H8uQQuVA"
channelUrlCanonical channel URL"https://www.youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA"
numberOfSubscribersSubscriber count text from About"453M"
channelTotalViewsTotal view count (parsed integer)102823749612
channelJoinedDateDate the channel joined YouTube"Jan 1, 2012"
isChannelVerifiedVerification badge statustrue
videos[].idVideo ID for each channel video"8bMh8azh3CY"
videos[].viewCountParsed view count for each video50075792
shorts[].videoIdShort video ID"a1B2c3D4e5F"
shorts[].commentsCountTotal comments on a Short (if available)124
live[].concurrentViewersLive viewers text/count (if available)"45,321 watching"
posts[].postIdCommunity post ID"UgkxF1..."
posts[].typePost type (text, image, video, poll)"image"
stats.totalVideosCount of scraped videos per channel50

Bonus metadata includes: channel avatar and banner URLs, external “About” links, thumbnails for videos and images, live chat continuation IDs, Shorts captions availability, and post poll options. You can export results from the Apify dataset to JSON, CSV, or Excel.

Key features

  • 🚦 Independent sort orders per content type
    Set different sorting for videos, Shorts, posts, and live streams. The actor maps your preferences to the appropriate YouTube browse parameters for each type.

  • ⚡ Async pagination with enrichment
    Uses concurrent requests and continuation tokens to fetch more results faster. Shorts, live streams, and posts are optionally enriched with additional details from their individual pages.

  • 🔄 Intelligent proxy fallback
    Starts without a proxy, automatically falls back to Apify datacenter proxy on blocks, then to RESIDENTIAL if needed — with retry and backoff built in.

  • 📦 Structured, analytics‑ready output
    Clean JSON grouped by channel username: about details, arrays for videos/shorts/live/posts, and per‑channel stats plus a global summary for easy aggregation.

  • 🧰 Developer‑friendly (Python + Apify SDK)
    Implemented in Python with aiohttp and the Apify SDK. Integrate via the Apify API, build pipelines, and automate exports to your BI, data lake, or CRM.

  • 🧪 Reliable error handling & logging
    Comprehensive logs for configuration, proxy state, and progress; graceful handling when content types are missing (e.g., no posts/live).

How to use Youtube Channel Scraper - step by step

  1. Sign in to your Apify account at console.apify.com.
  2. Open the Youtube Channel Scraper actor (or add it to your account).
  3. In the INPUT tab, paste your channel identifiers into startUrls. Accepted formats: full URLs (e.g., https://www.youtube.com/@MrBeast), handles (e.g., @MrBeast), or usernames (e.g., MrBeast).
  4. Set maxResults to control how many items per category (videos, Shorts, posts, live) you want to collect.
  5. Choose sort orders for each content type via sortOrderVideos, sortOrderShorts, sortOrderPosts, and sortOrderLiveStreams.
  6. Toggle scrapeChannelInfo, scrapeVideos, scrapeShorts, scrapePosts, and scrapeLiveStreams to target exactly what you need.
  7. (Optional) Configure proxyConfiguration. The run starts without a proxy and will auto‑fallback if blocked.
  8. Click Start and monitor logs in real time. The actor organizes results by username and pushes a single structured record to the dataset.
  9. Go to the dataset OUTPUT tab to preview, then export as JSON, CSV, or Excel.

Pro tip: Chain this run with webhooks or integrate the Apify API in your data pipelines for scheduled refreshes and automated enrichment.

Use cases

Use case nameDescription
Competitor analysis & benchmarkingTrack total views, recent uploads, and engagement across channels to benchmark performance and content strategy.
Influencer discovery & vettingIdentify creators by niche and audience size using subscriber counts, Shorts activity, and live stream presence.
Editorial research & curationExtract titles, durations, and publish times to plan roundups, recommendations, and programming calendars.
Social analytics & dashboardsFeed structured outputs to your BI stack to monitor volume, cadence, and engagement trends over time.
Academic & market researchBuild datasets of public channel metadata, posts, and live streams for quantitative analysis.
API pipelines & data enrichmentUse the Apify API with this YouTube channel scraper tool as a backend to populate CRMs, catalogs, or analytics layers.

Why choose Youtube Channel Scraper?

  • 🎯 Precision on public channel data: Extract clean About info, content metadata, and engagement signals in one pass.
  • 🌍 Flexible content coverage: Toggle channel info, videos, Shorts, posts, and live streams independently.
  • 📈 Scales with your workload: Async pagination and structured batching handle multiple channels in a single run.
  • 💻 Built for developers: Python-based with Apify SDK support — ideal for “YouTube channel scraper API” and “YouTube channel scraper Python” workflows.
  • 🛡️ Resilient by design: Automatic proxy fallback (none → datacenter → residential) with retries and backoff.
  • 💾 Easy exports & integration: Pull data programmatically or download CSV/JSON/Excel for quick analysis.
  • 🔁 Better than unstable scrapers: No brittle browser extensions — a production-grade YouTube channel crawler built for reliability.

Yes, when used responsibly. This actor accesses only publicly available YouTube data and does not require login. Users should:

  • Scrape only public pages and avoid private or authenticated content.
  • Respect YouTube’s Terms of Service and platform policies.
  • Ensure compliance with data protection laws (e.g., GDPR, CCPA).
  • Use the data for lawful purposes and verify compliance with your legal team for edge cases.

Input parameters & output format

Example JSON input

{
"startUrls": [
"https://www.youtube.com/@MrBeast",
"@PewDiePie",
"Veritasium"
],
"maxResults": 50,
"sortOrderVideos": "viewCount",
"sortOrderShorts": "date",
"sortOrderPosts": "date",
"sortOrderLiveStreams": "date",
"scrapeChannelInfo": true,
"scrapeVideos": true,
"scrapeShorts": true,
"scrapePosts": true,
"scrapeLiveStreams": true,
"proxyConfiguration": {
"useApifyProxy": false
}
}

Input fields

  • startUrls (array, required)
    Description: List of YouTube channel URLs (e.g., https://www.youtube.com/@MrBeast), usernames (e.g., @MrBeast), or keywords to search for channels.
    Default: none

  • maxResults (integer)
    Description: Maximum number of results to scrape per category (videos, shorts, live streams, posts).
    Default: 10 (min: 1, max: 1000)

  • sortOrderVideos (string)
    Description: Sort order for videos (date, rating, relevance, title, viewCount).
    Default: "date"

  • sortOrderShorts (string)
    Description: Sort order for shorts (date, rating, relevance, viewCount).
    Default: "date"

  • sortOrderPosts (string)
    Description: Sort order for community posts (date, relevance).
    Default: "date"

  • sortOrderLiveStreams (string)
    Description: Sort order for live streams (date, relevance, viewCount).
    Default: "date"

  • scrapeChannelInfo (boolean)
    Description: Enable to scrape channel about information (description, subscribers, join date, etc.).
    Default: true

  • scrapeVideos (boolean)
    Description: Enable to scrape channel videos.
    Default: true

  • scrapeShorts (boolean)
    Description: Enable to scrape YouTube Shorts.
    Default: true

  • scrapePosts (boolean)
    Description: Enable to scrape community posts.
    Default: true

  • scrapeLiveStreams (boolean)
    Description: Enable to scrape live streams.
    Default: true

  • proxyConfiguration (object)
    Description: Choose which proxies to use. The actor will start with no proxy, fallback to datacenter proxy if blocked, then to residential proxy if datacenter fails.
    Default: {"useApifyProxy": false}

Example JSON output

{
"scrapedAt": "2026-04-03T03:15:27.123Z",
"totalChannels": 2,
"maxResultsPerCategory": 50,
"MrBeast": {
"about": {
"channelDescription": "Subscribe for more awesome videos!",
"channelJoinedDate": "Feb 20, 2012",
"channelDescriptionLinks": [
{ "text": "Website", "url": "https://mrbeast.com" }
],
"channelLocation": "United States",
"channelUsername": "MrBeast",
"channelAvatarUrl": "https://yt3.ggpht.com/...",
"channelBannerUrl": "https://yt3.ggpht.com/...",
"channelTotalVideos": 929,
"channelTotalViews": 102823749612,
"numberOfSubscribers": "453M",
"isChannelVerified": true,
"channelName": "MrBeast",
"channelUrl": "https://www.youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA",
"channelId": "UCX6OQ3DkcsbYNE6H8uQQuVA",
"inputChannelUrl": "https://www.youtube.com/@MrBeast",
"isAgeRestricted": false
},
"videos": [
{
"id": "8bMh8azh3CY",
"title": "100 Pilots Fight For A Private Jet",
"duration": "28:46",
"channelName": "MrBeast",
"channelUsername": "MrBeast",
"channelUrl": "https://www.youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA",
"date": "1 day ago",
"url": "https://www.youtube.com/watch?v=8bMh8azh3CY",
"viewCount": 50075792,
"fromYTUrl": "https://www.youtube.com/@MrBeast/videos",
"type": "video",
"thumbnailUrl": "https://i.ytimg.com/vi/8bMh8azh3CY/hqdefault.jpg",
"input": "https://www.youtube.com/@MrBeast",
"order": 0
}
],
"shorts": [
{
"videoType": "shorts",
"videoId": "a1B2c3D4e5F",
"title": "I tried this challenge!",
"videoUrl": "https://www.youtube.com/shorts/a1B2c3D4e5F",
"viewsText": "2.3M views",
"thumbnailUrl": "https://i.ytimg.com/vi/a1B2c3D4e5F/hqdefault.jpg",
"accessibilityText": "I tried this challenge!, 2.3M views - Short play",
"channelUsername": "MrBeast",
"fromYTUrl": "https://www.youtube.com/@MrBeast/shorts",
"input": "https://www.youtube.com/@MrBeast",
"order": 0,
"commentsCount": 124,
"commentsCountText": "124",
"commentsTurnedOff": false,
"likesCount": 56000,
"likesCountText": "56K",
"viewCount": 2300000,
"channelName": "MrBeast",
"channelId": "UCX6OQ3DkcsbYNE6H8uQQuVA",
"channelHandle": "@MrBeast",
"publishDate": "Mar 5, 2026",
"description": "Short description here",
"captionsAvailable": true,
"timestampText": "2 days ago"
}
],
"live": [
{
"videoId": "LIVE12345",
"title": "Live Giveaway Stream",
"description": "Join the live stream!",
"thumbnailUrl": "https://i.ytimg.com/vi/LIVE12345/hqdefault.jpg",
"videoUrl": "https://www.youtube.com/watch?v=LIVE12345",
"channelName": "MrBeast",
"channelUrl": "https://www.youtube.com/@MrBeast",
"publishedAt": "Streamed 3 hours ago",
"duration": "LIVE",
"viewsCount": 45000,
"viewsCountText": "45,000 watching",
"isLive": true,
"isUpcoming": false,
"scheduledStartTime": "",
"order": 0,
"actualStartTime": "Apr 3, 2026",
"liveChatId": "CiABAKAB",
"concurrentViewers": "45,000 watching",
"isLiveNow": true
}
],
"posts": [
{
"postId": "UgkxF1ABCDEFG",
"type": "image",
"textContent": "Which one should we build next?",
"imageUrls": ["https://yt3.ggpht.com/abc123..."],
"pollOptions": [],
"likesCount": 440600,
"likesCountText": "440K",
"commentsCount": 9200,
"commentsCountText": "9.2K",
"publishedAt": "2 days ago",
"postUrl": "https://www.youtube.com/post/UgkxF1ABCDEFG",
"channelName": "MrBeast",
"channelUrl": "https://www.youtube.com/@MrBeast",
"order": 0
}
],
"stats": {
"totalVideos": 50,
"totalShorts": 50,
"totalLiveStreams": 5,
"totalPosts": 50,
"scrapingTimeSeconds": 42.13
}
},
"summary": {
"totalVideos": 100,
"totalShorts": 100,
"totalLiveStreams": 10,
"totalPosts": 100,
"totalScrapingTimeSeconds": 84.26
}
}

Notes:

  • Results are grouped by channel username at the top level (e.g., "MrBeast").
  • Some optional fields may be missing if not present on the channel (e.g., no live streams or posts).
  • Engagement counts may appear as text or parsed integers depending on availability.

FAQ

Do I need to log in or provide cookies to scrape channels?

No. The actor collects only publicly available YouTube data and does not require login or cookies. It uses HTTP requests and parses public responses.

Can I choose how videos, Shorts, posts, and live streams are sorted?

Yes. You can set sortOrderVideos, sortOrderShorts, sortOrderPosts, and sortOrderLiveStreams independently. The scraper maps your preferences to the correct browse parameters and paginates accordingly.

How many items can I scrape per channel?

You control volume with maxResults, which applies per category (videos, Shorts, posts, live). The allowed range is 1–1000.

Does it capture comments or likes?

For Shorts and community posts, the actor enriches each item to extract likes and comments where available. For videos, it captures viewCount, title, duration, and publish date from the channel listing.

How is blocking handled?

The run starts without a proxy and automatically falls back to Apify datacenter proxies when blocked (e.g., HTTP 403/429/503), then to residential proxies if necessary. Exponential backoff retries are included.

Is there an API or Python integration?

Yes. This is a Python-based Apify actor and can be run via the Apify API in pipelines. You can programmatically trigger runs and fetch dataset exports in JSON, CSV, or Excel.

What does the output look like?

The actor pushes a single structured JSON record to the dataset containing top-level stats and one key per channel username. Each channel key contains about, videos, shorts, live, posts, and stats objects.

Is there a free trial or pricing?

You can use Apify trial minutes to test the actor. A flat monthly plan is available in the Apify Store, and the listing may include trial minutes for evaluation.

Closing CTA / Final thoughts

The Youtube Channel Scraper is built to extract structured, analytics-ready YouTube channel data at scale. With independent sorting, resilient proxy fallback, and rich outputs across videos, Shorts, live streams, and posts, it’s ideal for marketers, developers, analysts, and researchers. Integrate via the Apify API, plug into your Python pipelines, and export to CSV/JSON/Excel in seconds. Start extracting smarter YouTube channel insights today.