YouTube Channel Videos Scraper (Fast & Cheap)
Pricing
from $0.70 / 1,000 video scrapeds
YouTube Channel Videos Scraper (Fast & Cheap)
List every video from any YouTube channel: title, views, publish date, duration and thumbnail, plus channel subscribers. Videos, Shorts or live streams. Accepts @handles, channel URLs or IDs.
Pricing
from $0.70 / 1,000 video scrapeds
Rating
0.0
(0)
Developer
Julio Barcellos Rangel
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
YouTube Channel Videos Scraper lists every video from any YouTube channel with title, views, publish date, duration and thumbnail, plus the channel's subscriber count. It works on the Videos, Shorts and Live tabs and accepts @handles, channel URLs or channel IDs. It is a YouTube channel scraper for creators, agencies and analysts who research competitors or vet creators, and a simple way to export all videos of a YouTube channel to Excel, CSV or JSON without an API key.
What does YouTube Channel Videos Scraper do?
You give it one or more YouTube channels and pick a tab. For each channel, the scraper finds the channel ID, opens the chosen tab and keeps loading the next page of the video grid until it reaches your limit or the end of the tab. Every video becomes one row, with the channel's name, URL and subscriber count repeated on each row so the table is easy to filter.
It accepts these forms, mixed in the same list:
| Input form | Example |
|---|---|
| @handle | @mkbhd |
| Handle without @ | mkbhd |
| Channel URL with handle | https://www.youtube.com/@mkbhd |
| Channel URL with ID | https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ |
| Channel ID | UCBJycsmduvYEL83R_U4JriQ |
And these tabs:
tab value | What you get |
|---|---|
videos | Regular uploads (default) |
shorts | Shorts, with youtube.com/shorts/ links |
streams | Live streams and past broadcasts |
No YouTube account, API key or API quota is needed.
What data can you extract?
| Field | What it means | Example |
|---|---|---|
channelId | YouTube channel ID | UCBJycsmduvYEL83R_U4JriQ |
channelName | Channel name | Marques Brownlee |
channelUrl | Channel link as YouTube gives it (can start with http://) | http://www.youtube.com/@mkbhd |
subscribers | Subscriber count, from YouTube's rounded text | 21400000 |
channelVideoCount | Video count from the channel header, rounded | 1800 |
videoId | YouTube video ID | 3iRUwVzRDZQ |
title | Video title | Xiaomi 18 Fold: How Does This Happen? |
url | Video link (/watch?v= or /shorts/) | https://www.youtube.com/watch?v=3iRUwVzRDZQ |
views | View count as a number, from the rounded text | 10000000 |
viewsText | View text exactly as YouTube shows it | 10M views |
published | Relative publish time as YouTube shows it | 5 days ago |
duration | Video length as shown on the thumbnail | 10:47 |
thumbnail | Thumbnail image URL | https://i.ytimg.com/vi/3iRUwVzRDZQ/hqdefault.jpg |
scrapedAt | When the row was collected | 2026-10-08T20:09:09.433Z |
input | Only on error rows: the line from your list | @mkbhd |
error | Only on error rows: what went wrong | Channel not found |
On the Shorts tab, published and duration are null because YouTube does not show them in the Shorts grid.
How to use YouTube Channel Videos Scraper
- Open YouTube Channel Videos Scraper in Apify Console (sign in or create an Apify account).
- In Channels, add @handles, channel URLs or channel IDs, one per line.
- Pick the Content type: Videos, Shorts or Live streams.
- Set Max videos per channel. Use a high number to get a channel's full catalog.
- Click Start. The log shows how many videos were found for each channel.
- Open the Output tab and click Export to download JSON, CSV, Excel or HTML.
Input
| Field | Type | Default | Description |
|---|---|---|---|
channels | array of strings | ["@mkbhd"] | @handles, channel URLs (youtube.com/@name, /channel/UC...) or channel IDs. |
tab | string: videos, shorts or streams | videos | Which channel tab to list. |
maxVideos | integer, minimum 1 | 50 | Stop after this many videos for each channel. |
proxy | object | {"useApifyProxy": true} | Apify Proxy settings. |
maxVideos counts per channel, so 10 channels with maxVideos 100 can return up to 1,000 rows. There is no upper limit; the scraper stops early when the tab has no more videos.
Example input:
{"channels": ["@mkbhd","https://www.youtube.com/@veritasium"],"tab": "videos","maxVideos": 200,"proxy": {"useApifyProxy": true}}
Output example
A real row from the latest run:
{"channelId": "UCBJycsmduvYEL83R_U4JriQ","channelName": "Marques Brownlee","channelUrl": "http://www.youtube.com/@mkbhd","subscribers": 21400000,"channelVideoCount": 1800,"videoId": "3iRUwVzRDZQ","title": "Xiaomi 18 Fold: How Does This Happen?","url": "https://www.youtube.com/watch?v=3iRUwVzRDZQ","views": 10000000,"viewsText": "10M views","published": "5 days ago","duration": "10:47","thumbnail": "https://i.ytimg.com/vi/3iRUwVzRDZQ/hqdefault.jpg","scrapedAt": "2026-10-08T20:09:09.433Z"}
How much does it cost?
YouTube Channel Videos Scraper uses pay per event pricing. You pay $1.00 per 1,000 videos returned ($0.001 per video) on the Free plan. Platform usage (compute and proxy) is included in that price.
| Apify plan | Price per 1,000 videos |
|---|---|
| Free | $1.00 |
| Bronze (10% off) | $0.90 |
| Silver (20% off) | $0.80 |
| Gold and higher (30% off) | $0.70 |
Worked examples on the Free plan:
- The default run (50 latest videos of one channel) = $0.05
- 20 competitor channels × 200 videos = 4,000 videos = $4.00
- 10,000 videos across a creator list = $10.00 ($7.00 on Gold)
What you are not charged for:
- Error rows: "Channel not found" and "No videos found on this tab".
- Retries and page loads. You pay per video row, not per request.
- Videos repeated across pages of the same channel; they are removed before saving.
Use cases
- Competitor research. See which topics, titles and lengths get the most views on a competitor's channel.
- Creator vetting. Check how a creator's recent videos perform before a sponsorship, not just the subscriber count.
- Content planning. Export a niche's top channels and sort by
viewsto find formats that work. - Shorts strategy. List a channel's Shorts with their view counts and compare them with its long videos.
- Live stream history. Pull past broadcasts from the Live tab with their views and length.
- Pipeline input. Feed the
urllist into the transcript, comments or video details scrapers for AI analysis. - Channel monitoring. Schedule a daily run with a small
maxVideosto catch new uploads.
Tips and limits
- Rounded numbers.
views,subscribersandchannelVideoCountare parsed from YouTube's short text, so "10M views" becomes10000000and "1.8K videos" becomes1800.viewsTextkeeps the original text. For exact view counts per video, use YouTube Video Details Scraper. - Relative dates.
publishedis the text YouTube shows, such as "5 days ago", "Streamed 2 weeks ago" or "Premiered …", not an exact date. Combine it withscrapedAtif you need an approximate date. - Shorts. On the Shorts tab, links use
youtube.com/shorts/…andpublishedanddurationarenull. - Live now. When YouTube shows a "watching" count instead of views (a stream that is live at run time), that number goes into
viewsandviewsText. - Order. Videos come in the order the tab shows them (newest first in the default Videos tab).
- What is not included. Likes, comment counts, descriptions, tags, exact upload dates and transcripts are not part of this output. See the related scrapers below.
- Duplicates. Each channel line is processed separately and duplicate lines are not merged, so a channel listed twice is scraped and charged twice. Keep one line per channel.
- Retries. Each request is tried up to 3 times through your proxy settings and then once more through Apify residential proxy when it is available.
- Error rows. "Channel not found" means the handle, URL or ID could not be resolved. "No videos found on this tab" means the channel exists but the chosen tab is empty (for example a channel with no Shorts); that row still includes the channel's name and subscribers.
Use it from the API, Python or JavaScript
JavaScript (Node.js) with the official apify-client package:
const { ApifyClient } = require('apify-client');const client = new ApifyClient({ token: 'YOUR_TOKEN' });const input = { channels: ['@mkbhd'], tab: 'videos', maxVideos: 100 };(async () => {const run = await client.actor('juliob.rangel/youtube-channel-videos').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);})();
Python with the official apify-client package:
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run_input = {'channels': ['@mkbhd'], 'tab': 'shorts', 'maxVideos': 100}run = client.actor('juliob.rangel/youtube-channel-videos').call(run_input=run_input)items = client.dataset(run['defaultDatasetId']).list_items().itemsfor item in items:print(item.get('title'), item.get('views'))
Plain HTTP, running the scraper and getting the rows in one call:
curl -X POST "https://api.apify.com/v2/acts/juliob.rangel~youtube-channel-videos/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"channels": ["@mkbhd"], "maxVideos": 20}'
The scraper also works with Make, Zapier and n8n, can export results to Google Sheets, can call your webhook when a run finishes, and can be used by AI agents through the Apify MCP server.
FAQ
Do I need a YouTube API key or login?
No. The scraper reads public channel pages without logging in, and there is no YouTube API quota to manage. You only need an Apify account.
Can I export all videos of a YouTube channel to Excel or CSV?
Yes. Set maxVideos higher than the channel's video count, run it, then export the dataset from the Output tab as Excel, CSV, JSON or HTML.
How many videos can I get per channel?
As many as the tab lists. The scraper keeps loading the next page until it reaches maxVideos or the end of the tab.
Can I scrape Shorts or live streams?
Yes. Set tab to shorts or streams. Run the scraper once per tab if you need all three.
Why is published "5 days ago" instead of a date?
That is the text YouTube shows in the channel grid. The scraper keeps it as is. For exact dates, pass the video URLs to YouTube Video Details Scraper.
Is it legal to scrape YouTube?
The scraper only collects publicly available data. You are responsible for complying with YouTube's terms and with privacy laws such as GDPR and LGPD. Personal data needs a legitimate reason to be collected and processed.
Why did I get a row with an error field?
The channel could not be found, or the chosen tab has no videos. Error rows are not charged.
Related scrapers
- YouTube Channel Info Scraper (Subscribers, Views, Links)
- YouTube Video Details Scraper (Views, Likes, Comments)
- YouTube Comments Scraper (Fast & Cheap)
- YouTube Transcript Scraper (Fast & Cheap)
- YouTube Playlist Scraper (All Videos, Views, Duration)
- YouTube Shorts Scraper (Channels & Hashtags)
Vídeos de Canais do YouTube
Lista todos os vídeos de um canal (vídeos, Shorts ou lives) com título, visualizações, data, duração e inscritos do canal. Para pesquisa de concorrentes e avaliação de criadores. Sem chave de API; você paga só por vídeo retornado.