YouTube Channel Scraper avatar

YouTube Channel Scraper

Pricing

from $0.80 / 1,000 results

Go to Apify Store
YouTube Channel Scraper

YouTube Channel Scraper

Scrape videos from any public YouTube channel: title, view count, duration, thumbnail, published date, plus channel name, handle, and subscriber count. Accepts @handle, full URL, or /channel/UCxxx. Detects Shorts. RSS fallback. Pay-per-result.

Pricing

from $0.80 / 1,000 results

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

4 days ago

Last modified

Share

Extract videos from any public YouTube channel: titles, view counts, durations, thumbnails, published dates, plus channel metadata (name, handle, subscriber count). No API key required.

What It Does

  • Accepts @handle, full channel URLs, or /channel/UCxxx URLs (legacy /c/name and /user/name also work)
  • Extracts channel identity: name, handle, canonical URL, subscriber count, channel ID
  • Extracts per-video data: title, views, duration, thumbnail, publication date, Shorts flag
  • Detects YouTube Shorts automatically (flagged with is_short: true)
  • RSS feed fallback if the channel page is temporarily unavailable
  • HTTP-only Go actor, runs on 128 MB RAM

Input

ParameterTypeDefaultDescription
channelUrlsarrayrequiredYouTube channel URLs or @handles to scrape
maxVideosinteger200Maximum videos per channel (0 = unlimited)
proxyConfigurationobjectApify proxyProxy settings (datacenter works fine)

Example Input

{
"channelUrls": [
"https://www.youtube.com/@example_channel",
"@another_example"
],
"maxVideos": 100
}

Output

Each row is one video with channel context embedded:

FieldTypeDescription
channel_idstringYouTube channel ID (UCxxx format)
channel_namestringChannel display name
channel_handlestringChannel @handle
channel_urlstringCanonical channel URL
channel_subscribersstringSubscriber count as YouTube displays it
video_idstringYouTube video ID
titlestringVideo title
published_atstringPublication time (relative, e.g. "2 years ago")
durationstringMM:SS or H:MM:SS
view_countintegerView count (null if unavailable)
thumbnail_urlstringThumbnail URL (highest resolution)
video_urlstringFull video URL (uses /shorts/ for Shorts)
is_shortbooleanWhether this is a YouTube Short
scraped_atstringISO 8601 scrape timestamp

Example Output

{
"channel_id": "UCxxxxxxxxxxxxxxxxxxxxxx",
"channel_name": "Example Channel",
"channel_handle": "@example_channel",
"channel_url": "https://www.youtube.com/@example_channel",
"channel_subscribers": "1.2M subscribers",
"video_id": "abcDEF12345",
"title": "Example Video Title",
"published_at": "3 months ago",
"duration": "12:34",
"view_count": 154000,
"thumbnail_url": "https://i.ytimg.com/vi/abcDEF12345/hqdefault.jpg",
"video_url": "https://www.youtube.com/watch?v=abcDEF12345",
"is_short": false,
"scraped_at": "2026-07-18T09:00:00Z"
}

Pricing

Pay-per-result: you only pay for videos actually returned.

EventSuggested price
Actor start$0.001 (one-time per run)
Per video result$0.0008

Final prices are set in the Apify Console before publish.

Notes

  • The scraper reads the /videos tab of each channel. Shorts appearing in that tab are flagged with is_short: true; the /shorts/ and /live/ tabs are not scraped separately.
  • Pagination is handled automatically via YouTube's internal InnerTube API for channels with hundreds of videos.
  • published_at is the relative time string YouTube displays (e.g. "2 years ago"), not an absolute timestamp.
  • view_count is parsed to an integer where possible; live streams and some Shorts may return null.
  • Age-restricted or region-blocked channels may return partial results.

For bug reports or feature requests, open an issue on the actor's Issues tab.