YouTube Channel $0.5/1k: Videos, Shorts, Streams avatar

YouTube Channel $0.5/1k: Videos, Shorts, Streams

Pricing

from $0.30 / 1,000 videos

Go to Apify Store
YouTube Channel $0.5/1k: Videos, Shorts, Streams

YouTube Channel $0.5/1k: Videos, Shorts, Streams

$0.50 per 1,000 videos, failed channels are free. Videos, Shorts and streams of any YouTube channel with views and subscribers.

Pricing

from $0.30 / 1,000 videos

Rating

0.0

(0)

Developer

Wiseus Labs

Wiseus Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

6 hours ago

Last modified

Categories

Features

Limited permissions

Share

🎬 What is YouTube Channel Scraper?

This YouTube channel scraper gives you all videos, Shorts and live streams of any YouTube channel, with views, duration, dates and channel stats, one row per video, ready to export to JSON, CSV or Excel.

🎬 Video📊 Stats📺 Channel
Title, URL, video IDViews (number and as shown)Name, handle, channel ID, URL
Type: video, Short or live streamDuration (text and seconds)Subscribers
ThumbnailPublish time ("2 days ago")Total videos and total views
Position in the tabExact likes and comments (video details)Country and join date
Description and hashtags (video details)Exact publish date (video details)Verified badge and avatar

💰 Pricing

$0.50 per 1,000 videos. With video details (exact likes, comment count, exact publish date, description, hashtags): $1.00 per 1,000.

The free Apify plan includes $5 of credit every month: that is about 10,000 videos.

Example: a channel with 500 videos costs $0.25, or $0.50 with video details.

What you don't pay for: channels that are not found, empty channels, tabs a channel does not have, invalid input lines, error rows, the run summary, and channel info (subscribers, country and the rest come at no extra cost). Each video is charged once per run, and the detailed price applies only to rows where details were added.

Paid Apify plans get lower prices per video, see the Pricing tab.

📄 Example output

A real row for @mkbhd (a few long fields left out here):

{
"videoId": "hdMszZ2ah5Q",
"url": "https://www.youtube.com/watch?v=hdMszZ2ah5Q",
"title": "Macbook PROLED Review: It's Not About That",
"type": "video",
"isLiveNow": false,
"tab": "videos",
"channelId": "UCBJycsmduvYEL83R_U4JriQ",
"channelName": "Marques Brownlee",
"channelHandle": "@mkbhd",
"viewCount": 3400000,
"viewCountText": "3.4M views",
"duration": "15:14",
"durationSeconds": 914,
"publishedTimeText": "19 hours ago",
"thumbnail": "https://i.ytimg.com/vi/hdMszZ2ah5Q/hqdefault.jpg",
"order": 1,
"status": "ok",
"channelSubscriberCount": 21400000,
"channelSubscriberCountText": "21.4M subscribers",
"channelVideoCount": 1866,
"channelViewCount": 5890987011,
"channelCountry": "United States",
"channelJoinedDate": "2008-03-21",
"channelIsVerified": true
}

With video details on, the same video also gets these fields (real values, description shortened):

{
"viewCount": 3428061,
"likeCount": 53761,
"commentCount": 3209,
"publishedAt": "2026-11-11",
"description": "Incredible laptop. But don't get distracted. ...",
"hashtags": [],
"detailsStatus": "ok"
}

🚀 How to use YouTube Channel Scraper

  1. Add channels. Paste one channel per line. Every common link works: @mkbhd, https://www.youtube.com/@mkbhd, https://www.youtube.com/channel/UC..., a channel ID UC..., and /c/... or /user/... URLs.
  2. Pick what to take. Set how many videos, Shorts and live streams you want per channel. Each has its own limit, so one run can collect all three. Use 999999 to take a whole tab.
  3. Choose the order. Latest, Most popular or Oldest, the same as the sort buttons on the channel page. Add "Only videos newer than" (for example 30 days) to get just the recent uploads.
  4. Press Start and download the results as JSON, CSV, Excel, XML or HTML, or read them through the API.

⚙️ Input

Latest 50 videos of a channel:

{
"channels": ["@mkbhd"],
"maxVideos": 50
}

Most popular videos and Shorts of two channels, with exact likes, comments and publish dates:

{
"channels": ["@mkbhd", "https://www.youtube.com/@NASA"],
"maxVideos": 100,
"maxShorts": 50,
"sortBy": "popular",
"includeVideoDetails": true
}
FieldWhat it does
channelsChannels to scrape, one per line
maxVideos, maxShorts, maxStreamsHow many items to take from each tab per channel (0 skips the tab)
sortBylatest, popular or oldest
oldestPostDateOnly videos newer than a date (2026-01-31) or a period (30 days, 2 weeks, 3 months), with sortBy = latest
includeVideoDetailsAdds exact likes, comment count, exact views, exact publish date, description and hashtags
includeChannelInfoAdds subscribers, total videos and views, country, join date, verified badge and avatar (on by default, free)
maxConcurrencyChannels processed at the same time

📋 Output fields

FieldDescription
videoIdYouTube video ID
urlVideo URL (Shorts use the /shorts/ URL)
titleVideo title
typevideo, short or live
isLiveNowtrue while a stream is live
tabChannel tab the row comes from: videos, shorts or streams
channelId, channelName, channelHandle, channelUrlChannel identity
viewCountViews as a number (exact with video details)
viewCountTextViews as YouTube shows them, like "3.4M views" or "86 watching"
duration, durationSecondsDuration as H:MM:SS or M:SS, and in seconds
publishedTimeTextPublish time as YouTube shows it, like "2 days ago"
thumbnailThumbnail URL
orderPosition in the tab (1 = first)
inputThe channel as you entered it
statusok for video rows
channelSubscriberCount, channelSubscriberCountTextSubscribers as a number and as YouTube shows them
channelVideoCount, channelViewCountTotal videos and total views of the channel
channelCountry, channelJoinedDateCountry and channel creation date (YYYY-MM-DD)
channelIsVerified, channelAvatarVerified badge and avatar URL
likeCount, commentCountExact likes and comment count (video details)
publishedAtExact publish date, YYYY-MM-DD (video details)
description, hashtagsFull description and hashtags (video details)
detailsStatusok when details were added to the row (video details)

Every row has a status. Rows other than ok tell you what happened to an input and are free:

statusMeaningPrice
okA video, Short or live streamCharged
channel_not_foundNo channel at this linkFree
no_videosThe channel or tab has no public videos in the requested rangeFree
tab_unavailableThe channel has no such tab, for example no ShortsFree
invalid_inputThe line is not a YouTube channel, or the date is not validFree
errorSomething went wrong for this channel or tab in this run; the other channels continueFree
run_summaryWritten when a run returns no videos, with the reasonFree

To keep only videos, filter by status = ok. The Output tab has ready views: 🎬 Videos, 📊 Engagement, 📺 Channel, 🧾 Details and 🧭 Statuses.

Every run also saves a free 📊 Run summary (record OUTPUT in the key-value store): channels ok and failed with the reason, videos, Shorts and streams saved, rows with details, settings used and run duration.

🔌 API and integrations

Run the Actor and get the videos in one call:

curl -X POST "https://api.apify.com/v2/acts/wiseus-labs~youtube-channel-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channels": ["@mkbhd"], "maxVideos": 50}'

From Python, use the apify-client package:

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("wiseus-labs/youtube-channel-scraper").call(run_input={"channels": ["@mkbhd"], "maxVideos": 50})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"], item["viewCount"])
  • Schedules: run it daily or weekly in Apify Console to track new uploads.
  • Webhooks: get a call to your server when a run finishes.
  • Make, Zapier, n8n: use the Apify app to send new videos to Google Sheets, Airtable, Slack or your database.
  • AI agents: connect the Apify MCP server and let Claude, Cursor or any MCP client call this Actor as a tool.

🧰 More YouTube scrapers from Wiseus Labs

❓ FAQ

How much does it cost to scrape a YouTube channel? $0.50 per 1,000 videos, or $1.00 per 1,000 with video details. A channel with 500 videos costs $0.25. The $5 monthly credit of the free Apify plan covers about 10,000 videos.

Can I scrape YouTube channel videos without an API key or login? Yes. This YouTube channel scraper needs no YouTube API key, no Google account and no quota. Paste channel links and press Start.

Does it get Shorts and live streams? Yes. Set maxShorts and maxStreams to take the Shorts and Live tabs, each with its own limit. Live streams include past streams and streams that are live right now.

How do I get exact likes, comment counts and dates? Turn on includeVideoDetails. Every row then gets exact likes, comment count, exact views, the exact publish date, the full description and hashtags.

How do I scrape only videos after a date? Keep Sort by on Latest and set oldestPostDate to a date like 2026-01-31 or a period like 7 days. Videos and live streams stop at that date. Schedule the run to collect new uploads every week.

Is it legal to scrape YouTube? This Actor collects public data only. Follow the laws that apply to you and YouTube's terms, and consult a lawyer about your specific use case.

How do I use the YouTube channel scraper from Python or the API? Call the run-sync-get-dataset-items endpoint shown above, or use the apify-client package for Python or JavaScript. Every Apify API feature works, including datasets, schedules and webhooks.

Can an AI agent use it? Yes. Through the Apify MCP server any MCP client, like Claude or Cursor, can run this Actor and read the videos it returns.

How do I export to CSV or Excel? Open the run's Output tab and pick CSV, Excel, JSON, XML or HTML. The same formats are available through the API.

▶️ Start now

Paste a channel, set how many videos you want and press Start. The free Apify plan's $5 monthly credit covers about 10,000 videos.

⌂ 换网址