YouTube Channel Scraper | Subscribers & Videos, No API Key
Pricing
from $1.80 / 1,000 channels
YouTube Channel Scraper | Subscribers & Videos, No API Key
Scrape YouTube channel metadata and video list: subscriber count, view count, video titles, view counts and publish dates. No API key needed. Works as MCP tool in Claude.
Pricing
from $1.80 / 1,000 channels
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
From The Mine Works, makers of Threads Scraper and B2B Leads Finder, with over 140,000 runs across 170+ public actors.
Paste YouTube channel links, @handles or channel IDs and get one row per channel: name, handle, channel ID, subscriber count as text and as a number, description, avatar, banner and the channel's latest uploads from its Videos tab, each with title, link, views, publish age, duration and thumbnail. It reads the public channel pages any logged out visitor sees, so there is no YouTube Data API key, no OAuth screen and no daily quota.
Why choose this actor?
- Channel stats plus the latest uploads in one row. On 26 September our run of the live build returned 5 channels with 30 recent videos each (150 videos) in 16 seconds, subscriber counts parsed to numbers (
139K subscribersbecomes139000). - No API key, no quota. The official YouTube Data API needs a Google Cloud project, a key and a daily quota that a few hundred lookups can use up. This actor needs none of that.
- Pay per channel found, never for misses. $1.80 to $3.00 per 1,000 channels by plan, plus a $0.005 start fee per run. Channels that are not found or fail, and the summary row, cost nothing.
Part of The Mine Works Social media and video family: Threads Scraper, Reddit Scraper, Threads Search Scraper, Instagram Profile Scraper, Instagram Followers & Following, Reddit Search Scraper.
Try it in one minute
Paste this into the JSON tab of the input page and press Start:
{"channelUrls": ["https://www.youtube.com/@MrBeast", "@veritasium"],"maxVideos": 5}
You get two channel rows, each with subscriber count, description, images and the 5 latest uploads, in a few seconds.
Give the channels in channelUrls, one per line, in any of three forms: a full channel link (https://www.youtube.com/@MrBeast or https://www.youtube.com/channel/UC...), a handle (@veritasium), or a raw channel ID starting with UC. Set maxVideos for how many recent uploads to include, or includeVideos: false for channel stats only.
Apify's free plan includes $5 of credit every month, which covers about 1,600 channels at this actor's Free plan price ($0.003 per channel, plus the $0.005 start fee on each run).
Copy to your AI assistant
themineworks/youtube-channel on Apify. Returns one row per YouTube channel with channel ID, handle, name, subscriber count (text and number), description, channel URL, avatar and banner URLs, and the latest uploads from the Videos tab (video ID, title, URL, view count text, publish age text, duration, thumbnail). No YouTube API key. Call ApifyClient("TOKEN").actor("themineworks/youtube-channel").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: channelUrls (string[] of channel URLs, @handles or UC channel IDs). Optional: maxVideos (default 30; the actor currently returns at most about 30, the first page of the Videos tab), includeVideos (default true). Rows with status "ok" are channels; status "summary" and _type "info" rows are run reports and are never billed. The videoCount field is unreliable for channels with 1,000 or more videos. Full spec: GET https://api.apify.com/v2/acts/themineworks~youtube-channel/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral
Key features
- Three input forms. Channel URLs,
@handlesand rawUC...channel IDs, mixed in one list. - Subscriber counts as numbers.
subscriberCountTextkeeps YouTube's wording;subscriberCountturns it into a number you can sort (4.22K subscribersbecomes4220). - Latest uploads included. Up to about 30 of the newest videos from the Videos tab, each with
videoId,title,url,viewCountText,publishedTimeText,duration,thumbnailUrlandisShort. - Channel images.
avatarUrlandbannerUrlat full size, ready for a creator database or CRM. - Two requests per channel. The channel page and its Videos tab, through Apify's proxy, with a short pause between channels.
- Failures are free. A channel that is not found or fails gets a row saying so and is never charged.
How to use it
Basic: stats for a list of channels
{"channelUrls": ["@veritasium", "@mkbhd", "https://www.youtube.com/@MrBeast"],"includeVideos": false}
Channel rows only, without the video list: the fastest and smallest output for a creator database.
Influencer shortlist with recent activity
{"channelUrls": ["@roboverse987", "@ProductiveDude", "@JoshuaMayo", "@mrEndatah", "@oopsitsai"],"maxVideos": 30}
This is the input of our 26 September proof run. Compare subscriberCount, then read each channel's videos to see how often it posts (publishedTimeText) and how its recent uploads perform (viewCountText).
Weekly creator tracking
{"channelUrls": ["@HiggsfieldAI", "@Yourivanhofwegen", "@TechTutorZones"],"maxVideos": 10}
Save this as a task and schedule it weekly (for example 0 7 * * 1). Store each run's subscriberCount by channelId to chart growth, and compare videoId values with last week's to spot new uploads.
Competitor content audit
{"channelUrls": ["https://www.youtube.com/channel/UCZ3KGRwOA_uONNE_6VGG2bA"],"maxVideos": 30}
Pull a competitor's latest uploads with titles, durations and view counts, then look for the topics and lengths that get the most views.
Input parameters
| Parameter | Type | Default | What it does |
|---|---|---|---|
channelUrls | array of strings | none (form prefill: the MrBeast channel) | Channel URLs, @handles or UC... channel IDs. |
maxVideos | integer (0 to 200) | 30 (form prefill: 5) | Most recent uploads to include per channel. Today the actor reads the first page of the Videos tab, so values above 30 return about 30 (a run with 120 returned 30). |
includeVideos | boolean | true | Read the channel's Videos tab and include the video list. false gives channel stats only, one request per channel. |
"Form prefill" values fill the Console form for you but are not defaults. The run uses 512 MB of memory and a 300 second timeout by default; each channel took 2 to 20 seconds in our runs, so for lists of more than about 50 channels raise the timeout in the run options.
What data do you get?
One row per channel.
The channel: channelId, channelHandle, channelName, channelUrl, description, avatarUrl, bannerUrl.
Size: subscriberCountText (YouTube's own text, such as "139K subscribers"), subscriberCount (that text as a number), videoCount (see the note below).
Videos: videos (a list of the latest uploads), videoCount_fetched (how many are in that list). Each video has videoId, title, url, viewCountText (such as "20 thousand views"), publishedTimeText (such as "2 days ago"), duration (such as "17:02"), thumbnailUrl and isShort.
Run data: status (ok for a channel), charged, scrapedAt.
The run also ends with a row whose status is summary (channelsRequested, channelsScraped, notFound, errored, chargedFor, chargeFailures) and an _type: "info" row. Neither is a channel and neither is ever charged.
Things to know before you buy
videoCountis wrong for channels with 1,000 or more videos. YouTube shows big counts as "2.1K videos", and the actor currently keeps only the first number, so such a channel reads as2. In our 26 September runs, 2 of 13 channels were affected (@Jsfilmzcame back as2and@AliciaLyttleas1, each with 30 uploads in its video list). Counts under 1,000 come through correctly. Do not rely on this field for large channels.- About 30 latest videos per channel. The video list is the first page of the Videos tab. Setting
maxVideoshigher does not add more today. - Views and dates are YouTube's display text.
viewCountTextandpublishedTimeTextare kept as YouTube writes them ("1.1 thousand views", "26 minutes ago"); convert them yourself if you need numbers or dates. On one video in our sample,publishedTimeTextheld other metadata instead of an age. - Long form uploads only. The Videos tab lists regular uploads, so
isShortwasfalseon all 420 videos we sampled. Shorts and live streams are not in the list.
Stable fields for automations
These 14 fields were present in every channel row we sampled (14 channels from four runs of the current build on 26 September 2026):
| Field | What it holds |
|---|---|
channelId | YouTube channel ID (UC...), the key to join on |
channelHandle | The @handle |
channelName | Display name |
subscriberCountText | Subscriber count as YouTube shows it |
subscriberCount | Subscriber count as a number |
description | Channel description |
channelUrl | Canonical channel link |
avatarUrl | Profile picture URL |
bannerUrl | Banner image URL |
videos | List of latest uploads (empty when includeVideos is off) |
videoCount_fetched | Number of videos in the list |
status | ok for a channel row |
charged | true on a delivered channel |
scrapedAt | ISO timestamp when the row was captured |
Inside videos, every one of the 420 sampled videos had videoId, title, url, viewCountText, duration, thumbnailUrl and isShort. We will not rename these fields. New fields may be added over time; existing ones keep their names.
Output examples
Real rows from our runs on 26 September 2026, with the video lists cut to the first one or two.
A channel row (@JoshuaMayo, 30 videos in the full row):
{"channelId": "UCJZ7zr9a6AT6STkyOFztgiQ","channelHandle": "@JoshuaMayo","channelName": "Joshua Mayo","subscriberCountText": "886K subscribers","subscriberCount": 886000,"videoCount": 76,"description": "Last name is Mayo, but I hate mayonnaise. I do love helping people build and make money online; with AI tools, dropshipping, investing, personal finance and more. So I choose to talk about that on this channel.","channelUrl": "https://www.youtube.com/channel/UCJZ7zr9a6AT6STkyOFztgiQ","avatarUrl": "https://yt3.googleusercontent.com/xKDMsCpOCBE-trjD1xQzNaiR6_xAUKVzHv4OQ_XHrV6jbHR2G5_NHK5d3P_wkWWaSMsqiBgdfA=s160-c-k-c0x00ffffff-no-rj","bannerUrl": "https://yt3.googleusercontent.com/OYaesOO1L81LrIKOv6qr6C118E0OzlTtNbURb5_SlQ6jKO6t3pUBVsGsUW_EOTe1xKEBAsRZBg=w2560-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj","videos": [{"videoId": "Vr2qhQdCwMo","title": "Laziest Way to Make Money Selling AI Phone Cases (Tutorial)","url": "https://www.youtube.com/watch?v=Vr2qhQdCwMo","viewCountText": "19 thousand views","publishedTimeText": "10 days ago","duration": "21:29","thumbnailUrl": "https://i.ytimg.com/vi/Vr2qhQdCwMo/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDaETyWliivc1jlAMiXXYxS3eo01g","isShort": false},{"videoId": "onffbFBbetA","title": "10 Ways to Make Money With AI That Feel Like Cheating (Tutorial)","url": "https://www.youtube.com/watch?v=onffbFBbetA","viewCountText": "39 thousand views","publishedTimeText": "3 weeks ago","duration": "30:37","thumbnailUrl": "https://i.ytimg.com/vi/onffbFBbetA/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBPx0BxhS312RDqx1pf-WaJbWeAIA","isShort": false}],"videoCount_fetched": 30,"status": "ok","charged": true,"scrapedAt": "2026-09-26T13:14:29.507Z"}
A large channel showing the videoCount problem described above: 2, although its Videos tab alone returned 30 uploads (description, images and videos left out here):
{"channelId": "UCoJun_nF0I90wzXq5t4SdqA","channelHandle": "@Jsfilmz","channelName": "JSFILMZ","subscriberCountText": "123K subscribers","subscriberCount": 123000,"videoCount": 2,"channelUrl": "https://www.youtube.com/channel/UCoJun_nF0I90wzXq5t4SdqA","videoCount_fetched": 30,"status": "ok","charged": true,"scrapedAt": "2026-09-26T13:14:28.365Z"}
The summary row that ends a run (never charged):
{"status": "summary","channelsRequested": 5,"channelsScraped": 5,"notFound": 0,"errored": 0,"chargedFor": 5,"chargeFailures": 0,"scrapedAt": "2026-09-26T13:14:36.140Z"}
Pricing
Pay per event: you pay for each channel delivered to your dataset, plus a small start fee per run. The video list inside a channel row costs nothing extra.
| Event | Free | Bronze | Silver | Gold and above |
|---|---|---|---|---|
channel-scraped, per channel | $0.003 | $0.00253 | $0.00213 | $0.0018 |
channel-scraped, per 1,000 channels | $3.00 | $2.53 | $2.13 | $1.80 |
apify-actor-start, per run | $0.005 per GB of run memory, minimum one event | same | same | same |
The start fee, exactly. Apify's apify-actor-start event is charged once when a run starts, at $0.005 for each GB of memory the run uses, with a minimum of one event. This actor runs on 512 MB by default, so a default run pays the minimum, $0.005.
Worked examples on the Gold tier: 100 channels cost $0.18 plus $0.005. 1,000 channels cost $1.80 plus $0.005. Our 5 channel proof run cost $0.015 plus $0.005 on the Free plan.
Never charged: channels that are not found, channels that fail, and the summary and info rows. A run where every channel fails pays only the start fee.
There is no scheduled price change for this actor. The Pricing tab on this page always shows the rate for your own plan; if it and this table ever differ, the Pricing tab is right.
FAQ
Do I need a YouTube API key or a Google account? No. The actor reads the public channel pages that YouTube serves to any logged out visitor. You need only an Apify account.
Is there a quota? No YouTube quota applies. The only limits are your Apify budget and the run timeout.
How many videos per channel? About 30: the first page of the channel's Videos tab, newest first. Shorts and live streams are not included.
How fresh is the data?
Every run reads YouTube live. Subscriber counts are YouTube's rounded public figures (such as "886K"), as of scrapedAt.
Which proxy does it use? Apify's proxy, chosen automatically; there is nothing to configure, and it is included in the price.
What happens with a channel that does not exist?
It gets a row with a status other than ok, is counted in the summary's notFound or errored, and is not charged.
Can I run it on a schedule?
Yes. Save your input as a task, then in Apify Console open Schedules, choose Create new and pick a time or a cron expression such as 0 7 * * 1 (Mondays). The actor does not remember earlier runs; compare subscriberCount and videoId values between runs by channelId.
How do I export the data?
From the run's Storage tab as JSON, CSV, Excel, XML or HTML, or through the Apify API. In CSV and Excel, Apify spreads the videos list over numbered columns; JSON keeps it nested.
Can I use it from Claude, ChatGPT or another AI assistant?
- Connector URL:
https://mcp.apify.com/?tools=themineworks/youtube-channel. - Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code:
claude mcp add -t http youtube-channel "https://mcp.apify.com/?tools=themineworks/youtube-channel".
Is it legal to scrape YouTube channel data? The actor reads only public channel pages and video listings that anyone can see without logging in. Channel names and descriptions can identify individual creators, so you are responsible for how you use the data, including YouTube's terms and data protection laws such as GDPR and CCPA. This is general information, not legal advice.
Integrations
- Google Sheets: export a run to a sheet for a creator shortlist, or append weekly runs to track growth.
- Make, Zapier and n8n: use the Apify app or node to start a run and send channel stats to a CRM or Slack.
- Webhooks: have Apify call your URL when a run succeeds, then fetch the dataset.
- API and client libraries: start runs and read datasets from Python, JavaScript or any HTTP client. The "Copy to your AI assistant" block above has the exact call.
- MCP clients: Claude, ChatGPT, Cursor, VS Code and other MCP clients can call the actor through
https://mcp.apify.com.
More from The Mine Works
Social media and video
- Threads Scraper
- Reddit Scraper
- Threads Search Scraper
- Instagram Profile Scraper
- Instagram Followers & Following
- Reddit Search Scraper
- Twitter / X Scraper
- YouTube Transcript
- Xiaohongshu (RED) Scraper
- Telegram Channel Scraper
- Telegram Channel Finder
- Pinterest Profile Scraper
Leads and business directories
Marketing, SEO and reviews
Real estate
Science, health and government data
Jobs and hiring
Company and business data
E-commerce and marketplaces
Food and local services
Developer and AI tools
More tools
Support
Found a bug or need a field we do not return yet? Open an issue on the Issues tab of this page and we will reply there. To ask for a new platform or data source, email dmineworks@gmail.com.
YouTube Channel Scraper turns channel links, handles and IDs into rows with subscriber counts, channel details and the latest uploads, with no API key and no quota.

