YouTube Channel Videos Scraper (Fast & Cheap) avatar

YouTube Channel Videos Scraper (Fast & Cheap)

Pricing

from $0.70 / 1,000 video scrapeds

Go to Apify Store
YouTube Channel Videos Scraper (Fast & Cheap)

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

Julio Barcellos Rangel

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

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 formExample
@handle@mkbhd
Handle without @mkbhd
Channel URL with handlehttps://www.youtube.com/@mkbhd
Channel URL with IDhttps://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ
Channel IDUCBJycsmduvYEL83R_U4JriQ

And these tabs:

tab valueWhat you get
videosRegular uploads (default)
shortsShorts, with youtube.com/shorts/ links
streamsLive streams and past broadcasts

No YouTube account, API key or API quota is needed.

What data can you extract?

FieldWhat it meansExample
channelIdYouTube channel IDUCBJycsmduvYEL83R_U4JriQ
channelNameChannel nameMarques Brownlee
channelUrlChannel link as YouTube gives it (can start with http://)http://www.youtube.com/@mkbhd
subscribersSubscriber count, from YouTube's rounded text21400000
channelVideoCountVideo count from the channel header, rounded1800
videoIdYouTube video ID3iRUwVzRDZQ
titleVideo titleXiaomi 18 Fold: How Does This Happen?
urlVideo link (/watch?v= or /shorts/)https://www.youtube.com/watch?v=3iRUwVzRDZQ
viewsView count as a number, from the rounded text10000000
viewsTextView text exactly as YouTube shows it10M views
publishedRelative publish time as YouTube shows it5 days ago
durationVideo length as shown on the thumbnail10:47
thumbnailThumbnail image URLhttps://i.ytimg.com/vi/3iRUwVzRDZQ/hqdefault.jpg
scrapedAtWhen the row was collected2026-10-08T20:09:09.433Z
inputOnly on error rows: the line from your list@mkbhd
errorOnly on error rows: what went wrongChannel 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

  1. Open YouTube Channel Videos Scraper in Apify Console (sign in or create an Apify account).
  2. In Channels, add @handles, channel URLs or channel IDs, one per line.
  3. Pick the Content type: Videos, Shorts or Live streams.
  4. Set Max videos per channel. Use a high number to get a channel's full catalog.
  5. Click Start. The log shows how many videos were found for each channel.
  6. Open the Output tab and click Export to download JSON, CSV, Excel or HTML.

Input

FieldTypeDefaultDescription
channelsarray of strings["@mkbhd"]@handles, channel URLs (youtube.com/@name, /channel/UC...) or channel IDs.
tabstring: videos, shorts or streamsvideosWhich channel tab to list.
maxVideosinteger, minimum 150Stop after this many videos for each channel.
proxyobject{"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 planPrice 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 views to 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 url list into the transcript, comments or video details scrapers for AI analysis.
  • Channel monitoring. Schedule a daily run with a small maxVideos to catch new uploads.

Tips and limits

  • Rounded numbers. views, subscribers and channelVideoCount are parsed from YouTube's short text, so "10M views" becomes 10000000 and "1.8K videos" becomes 1800. viewsText keeps the original text. For exact view counts per video, use YouTube Video Details Scraper.
  • Relative dates. published is the text YouTube shows, such as "5 days ago", "Streamed 2 weeks ago" or "Premiered …", not an exact date. Combine it with scrapedAt if you need an approximate date.
  • Shorts. On the Shorts tab, links use youtube.com/shorts/… and published and duration are null.
  • Live now. When YouTube shows a "watching" count instead of views (a stream that is live at run time), that number goes into views and viewsText.
  • 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 ApifyClient
client = 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().items
for 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.

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.


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.