YouTube Channel Videos Scraper - list all videos
Pricing
$0.50 / 1,000 video records
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
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
2 days ago
Last modified
Categories
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,thumbnailviewCount(parsed number) +viewsTextdurationSeconds+durationTextpublishedText(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 listed | Cost |
|---|---|
| 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:
- List every video in a channel with this actor
- Feed the
videoIds to the YouTube Transcript Scraper for transcripts / RAG chunks — or run YouTube Channel Transcripts, which does both steps in one run - 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
| Field | Type | Description |
|---|---|---|
channels | array | Required. @handles, channel URLs, or UC… ids. |
maxVideos | integer | Max videos per channel (newest first). Default 200. |
concurrency | integer | Channels in parallel (1–6). Default 3. |
proxyCountryCode | string | Optional 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
positiongiving the rank. - What happens to failed channels? They're skipped for free and listed (with an error type) in the run's
SKIPPEDkey-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.