YouTube Channel Scraper
Pricing
$0.50 / 1,000 items
YouTube Channel Scraper
Scrape videos, Shorts, and live streams from any YouTube channel: titles, views, durations, publish dates, likes, and channel stats. No API key needed.
Pricing
$0.50 / 1,000 items
Rating
0.0
(0)
Developer
Donjuan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
YouTube Channel Scraper: videos, Shorts, and live streams from any channel
YouTube Channel Scraper lists everything a YouTube channel has published: long videos, Shorts, and live streams. For every item you get the title, link, thumbnail, view count, duration, and publish time, plus the channel's name, handle, subscriber count, and verified badge. Turn on video details to add the exact view count, exact publish date, likes, comment count, description, category, and tags.
You don't need a YouTube API key, a Google account, or any code. Add one or more channels, press Start, and download the results as JSON, CSV, Excel, XML, or HTML, or pull them into your app through the Apify API.
What can you do with YouTube channel data?
- Track competitors. See what other channels in your niche publish, how often, and which uploads pull the most views.
- Find top content. Sort a channel by Popular to get its most viewed videos in one run.
- Vet creators. Check subscriber counts, upload frequency, and typical views before you sponsor a channel.
- Monitor your own channel. Schedule a daily run and keep a history of views and likes for every upload.
- Build datasets. Export titles, descriptions, and tags for content research, SEO analysis, or training data.
- Watch live schedules. The Live tab shows streams that are live now and streams scheduled for later.
What data does YouTube Channel Scraper extract?
| Group | Fields |
|---|---|
| Item | ID, URL, type (video, short, or stream), title, thumbnail, channel tab it came from |
| Stats | views (rounded on the channel page, exact with details), likes and comment count (with details) |
| Time | duration in seconds and as shown, relative publish time ("4d ago"), exact publish time in UTC (with details) |
| Live | live now flag, upcoming flag, scheduled start, "watching" and "waiting" counts as shown |
| Content (with details) | full description, category, tags |
| Channel | channel ID, handle, name, URL, subscribers, verified badge |
How to scrape a YouTube channel
- Open the actor and go to the Input tab.
- Add channels. You can write
NASA,@NASA, a channel ID such asUCLA_DiR1FfKNvjuUpBHmylQ, or paste a channel link. - Pick the sections (Videos, Shorts, Live streams), the sort order, and how many items you want from each.
- Press Start. When the run finishes, open the Output tab or press Export.
Input
| Field | Type | Description |
|---|---|---|
channels | array of strings | Channels to scrape: NASA, @NASA, UCLA_DiR1FfKNvjuUpBHmylQ, https://www.youtube.com/@NASA, https://www.youtube.com/channel/UC..., /c/..., or /user/... links. Required. |
sections | array | videos, shorts, streams, or any mix. Defaults to videos. |
sortBy | string | latest, popular, or oldest. Applies to every section. |
maxItemsPerChannel | integer | The maximum number of items from each section of each channel. |
includeVideoDetails | boolean | Open every video's page for the exact numbers, description, category, and tags. Runs about 20 times slower. |
proxyCountryCode | string | A two-letter country code such as US to use Apify residential proxy in that country. None uses Apify datacenter proxy. |
Input example
{"channels": ["@NASA", "veritasium", "https://www.youtube.com/channel/UCsXVk37bltHxD1rDPwtNM8Q"],"sections": ["videos", "shorts"],"sortBy": "popular","maxItemsPerChannel": 50,"includeVideoDetails": false,"proxyCountryCode": "None"}
Output
Every video, Short, or stream becomes one item in the dataset.
Output example
A real video from Veritasium with Include video details turned on. Long values are shortened.
{"id": "NiCgcUTL9_Q","url": "https://www.youtube.com/watch?v=NiCgcUTL9_Q","type": "video","title": "The Absurd Engineering Behind the Internet","description": "Why making glass fibers to send signals was almost impossible. ...","thumbnail": "https://i.ytimg.com/vi/NiCgcUTL9_Q/hq720_custom_3.jpg?...","durationSeconds": 2072,"durationText": "34:32","viewCount": 9450655,"viewCountText": "9.4M","publishedText": "5d ago","publishedAtISO": "2026-10-12T17:11:45Z","likeCount": 115431,"commentCount": 5000,"category": "Education","tags": ["veritasium", "science", "physics", "Veritasium"],"isLive": false,"isUpcoming": false,"channel": {"id": "UCHnyfMqiRRG1u-2MsSQLbXA","handle": "@veritasium","title": "Veritasium","url": "https://www.youtube.com/@veritasium","subscribers": 21400000,"subscribersText": "21.4M subscribers","verified": true},"section": "videos","input": "@veritasium"}
Without details, the same item has viewCount: 9400000 (the rounded "9.4M" from the channel page) and no description, publishedAtISO, likeCount, commentCount, category, or tags.
Output fields
| Field | Description |
|---|---|
id | YouTube video ID. |
url | Link to the video. Shorts link to /shorts/. |
type | video, short, or stream. |
title | The video title. |
description | The full description. Details only. |
thumbnail | The largest thumbnail the channel page offers. |
durationSeconds, durationText | Length in seconds and as shown. Shorts get them only with details. Live and upcoming streams have none. |
viewCount | Views. Rounded as the channel page shows them, exact with details. |
viewCountText | Views as shown, or "103 watching" and "4 waiting" on live and upcoming streams. |
publishedText | Relative time such as "4d ago", or "Scheduled for ..." on upcoming streams. Shorts don't show it. |
publishedAtISO | Exact publish time in UTC. Details only. For upcoming streams it holds the scheduled start. |
likeCount | Exact likes. Details only. |
commentCount | Comments, rounded as YouTube shows them (5K becomes 5000). Details only. Missing when comments are off. |
category, tags | The uploader's category and tags. Details only. |
isLive, isUpcoming | Live now, or scheduled for later. |
channel | Channel ID, handle, name, URL, subscribers (rounded), and verified badge. |
section | The channel tab the item came from. |
input | The channel from your input. |
Video details
The channel page lists every upload with rounded views and a relative date. With Include video details on, the actor also opens each video's page, which adds the exact view count, the exact publish time, likes, the comment count, the description, the category, and the tags.
That's one extra page per video, so a run takes about 20 times longer. In our tests the actor listed about 75 items per second without details and about 4 per second with them.
YouTube limits how many video pages one IP can open in a short time. When a page comes back blocked, the actor retries it from a new IP. If video pages keep coming back blocked, the actor stops asking for details and saves the rest of the items with the data from the channel page, so the run still finishes.
How many items can I get?
The actor follows a channel's tabs to the end, the same way the site loads more items as you scroll. In our tests it read 100 videos, 90 Shorts, and 100 streams per channel without trouble, and a full run of two channels across all three tabs (731 items) took under 10 seconds.
Proxy
By default the actor goes through Apify datacenter proxy and switches to a new IP whenever YouTube refuses a request. Set proxyCountryCode to a code such as US or DE to use Apify residential proxy in that country, for example to see the channel as viewers in that country do. Residential proxy needs an Apify plan that includes it.
How much does it cost?
You pay per item saved to the dataset: $0.50 per 1,000 items. Video details don't cost extra per item, they only make the run take longer.
Export and integrations
- Download results as JSON, CSV, Excel, XML, HTML, or RSS from the Output tab.
- Send them to Google Sheets, Slack, Zapier, Make, and other tools through Apify integrations.
- Schedule runs to track a channel over time.
- Start runs and read results from your code through the Apify API:
curl -X POST "https://api.apify.com/v2/acts/<username>~youtube-channel-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"channels": ["@NASA"], "sections": ["videos"], "maxItemsPerChannel": 30}'
FAQ
Do I need a YouTube API key?
No. The actor reads the public channel pages that anyone can open in a browser, so there is no API quota to worry about.
Why are the view counts round numbers?
The channel page shows views rounded, such as "561K". Turn on video details to get the exact count from each video's page.
Why don't Shorts have a date or duration?
The Shorts tab doesn't show them. Turn on video details to get both.
Can I scrape comments or a whole playlist?
Not with this actor. It lists what a channel published on its Videos, Shorts, and Live tabs.
What happens with a channel that has no Shorts or Live tab?
The actor writes a line in the log and moves on to the next section.
Is it legal to scrape YouTube?
The actor collects only public data that anyone can see without logging in. Public pages can still contain personal data, so make sure you have a legitimate reason to collect it and follow the GDPR and other laws that apply to you. If you're not sure, ask a lawyer.
Disclaimer
This actor is provided as is, without warranty. You're responsible for how you use it and for following YouTube's terms of service and the laws that apply to you. YouTube isn't affiliated with this actor.