YouTube Channel Videos Scraper - list all videos avatar

YouTube Channel Videos Scraper - list all videos

Pricing

$0.50 / 1,000 video records

Go to Apify Store
YouTube Channel Videos Scraper - list all videos

YouTube Channel Videos Scraper - list all videos

List all videos of a YouTube channel (@handle, URL, or UC id). Returns one JSON row per video: videoId, title, viewCount, durationSeconds, publishedText, thumbnail. No API key or quota. $0.0005 per video record; failed channels are free.

Pricing

$0.50 / 1,000 video records

Rating

0.0

(0)

Developer

Jaime Martinez

Jaime Martinez

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

YouTube Channel Videos Scraper — list all videos of a channel

YouTube channel videos scraper for developers and AI pipelines — list all videos of a channel as clean JSON: video IDs, titles, view counts, durations, upload dates, and thumbnails. Bulk, no API key, newest first.

The official YouTube Data API caps you at strict quotas and requires keys and OAuth. This actor reads the public channel pages directly through a hosted residential-proxy + uptime layer with automatic retries — and you only pay for video records actually delivered.

Run in 30 seconds

The Console form is prefilled — hit Start, or paste the minimal input:

{
"channels": ["@mkbhd"]
}

You get back one dataset row per video, newest first:

{
"channelId": "UCBJycsmduvYEL83R_U4JriQ",
"channelTitle": "Marques Brownlee",
"channelUrl": "https://www.youtube.com/@mkbhd",
"position": 1,
"videoId": "…",
"title": "…",
"url": "https://www.youtube.com/watch?v=…",
"viewsText": "1.2M views",
"viewCount": 1200000,
"publishedText": "3 days ago",
"durationText": "16:28",
"durationSeconds": 988,
"thumbnail": "https://i.ytimg.com/vi/…"
}

What it does

Give it channels as @handles (@mkbhd), full URLs, or UC… channel IDs and it returns one row per video:

  • videoId, title, url, thumbnail
  • viewCount (parsed number) + viewsText
  • durationSeconds + durationText
  • publishedText (e.g. "3 days ago")
  • channelId, channelTitle, channelUrl, position

Thousands of videos per channel, paginated automatically, newest first.

What you'll pay

$0.0005 per video record delivered. Plain arithmetic:

Videos listedCost
1$0.0005
100$0.05
1,000$0.50

A full 2,000-video channel costs $1.00 to enumerate. Channels that don't exist, are terminated, or have no public videos cost nothing — they go to the run's SKIPPED record, never the paid dataset.

The RAG pipeline combo

This actor is step one of a full channel-ingestion pipeline:

  1. List every video in a channel with this actor
  2. Feed the videoIds to the YouTube Transcript Scraper for transcripts / RAG chunks — or run YouTube Channel Transcripts, which does both steps in one run
  3. Optionally add audience data with the YouTube Comments Scraper

Point it at a channel, get a complete, timestamped knowledge base out.

Use as an MCP tool / with AI agents

This actor is exposed as an MCP tool via Apify's MCP server (streamable HTTP):

https://mcp.apify.com/?tools=jamhimself/youtube-channel-videos

Example MCP client config:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=jamhimself/youtube-channel-videos",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
}

Any MCP client — Claude, Cursor, or agent frameworks — can call this actor directly as a tool: pass channels, get the video list back.

Use cases

  • RAG / LLM ingestion — enumerate a channel before pulling transcripts
  • Channel analytics — views/durations across a creator's catalog
  • Competitor research — what they publish, how often, what performs
  • Archival & monitoring — track new uploads programmatically

Input

FieldTypeDescription
channelsarrayRequired. @handles, channel URLs, or UC… ids.
maxVideosintegerMax videos per channel (newest first). Default 200.
concurrencyintegerChannels in parallel (1–6). Default 3.
proxyCountryCodestringOptional two-letter proxy country code (e.g. US).

Why channel scrapers return empty results (and why this one doesn't)

YouTube serves consent walls and bot-check interstitials to datacenter IPs. A scraper that takes that page at face value returns zero videos or a parse error. This actor detects the blocked page, rotates to fresh residential IPs with new sessions, and retries automatically before giving up — and it parses both YouTube's current grid layout and the legacy one, so layout rollouts don't silently empty your results. Genuinely missing channels are reported as NOT_FOUND in the SKIPPED record instead of being billed. Actively maintained. (Transcript endpoints face an even stricter PoToken bot-check — that's handled by the transcript actors linked above.)

FAQ

  • Do I need a YouTube API key? No — no key, no OAuth, no quota.
  • Shorts and live streams? This lists the channel's Videos tab (regular uploads). Shorts/Live tabs are coming in a later version.
  • Order? Newest first, with position giving the rank.
  • What happens to failed channels? They're skipped for free and listed (with an error type) in the run's SKIPPED key-value record.
  • Is this legal? It accesses publicly available data. You are responsible for complying with YouTube's Terms of Service and applicable law in your use of the output.

If this actor saved you time, an honest review helps others find it.


YouTube is a trademark of Google LLC. This actor is not affiliated with or endorsed by YouTube or Google. Built and maintained by Jamhimself LLC.