YouTube Scraper: Search, Channels, Playlists, Videos & Shorts
Pricing
$2.50 / 1,000 video scrapeds
YouTube Scraper: Search, Channels, Playlists, Videos & Shorts
Scrape YouTube search results, channels, playlists, Shorts and videos: title, views, exact likes, comment count, publish date, duration, description, chapters, hashtags and channel subscribers. Search filters for upload date, duration and sort. No API key, no browser. Pay per video.
Pricing
$2.50 / 1,000 video scrapeds
Rating
0.0
(0)
Developer
Murch1k
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
YouTube Scraper — Search Results, Channels, Playlists, Videos & Shorts
Scrape YouTube search results, channel videos, Shorts, live streams, playlists and single videos into a clean table: title, views, exact likes, comment count, publish date, duration, full description, chapters, hashtags, thumbnail, channel name, handle, subscribers and verified badge.
Works like the YouTube website (search filters included), but returns structured data you can export to Excel, CSV, JSON or Google Sheets. No YouTube API key, no quota, no login, no browser.
Features
- Every source in one run: search terms,
@channels, playlists and video/Shorts links together. A video found by two sources is returned (and billed) only once. - Exact like counts (e.g.
2,344, not2.3K) and comment counts, plus channel subscriber counts on every row. - Search filters: upload date (hour → year), duration (under 4 min, 4–20 min, over 20 min) and sort (relevance, upload date, views, rating).
rankkeeps YouTube's result order for SEO tracking. - Channel tabs: latest Videos, Shorts or Live streams.
- Chapters & hashtags parsed from descriptions.
- HTTP only, no browser: uses YouTube's own web API; about 1 s per 10 videos with details. Switch off
scrapeDetailsfor list-only runs. - Pay per video: $2.50 per 1,000 videos — well below typical YouTube scrapers — with a hard cost cap.
Use cases
- YouTube SEO & keyword research: who ranks for a term, with what titles, durations and engagement.
- Competitor and channel monitoring: export a channel's latest uploads with views, likes and comments every day.
- Influencer discovery: search a niche, sort by views, and get channel subscribers + verified badge per result.
- Content research for AI: collect descriptions, chapters and hashtags at scale.
- Market research: track how products are reviewed on YouTube (pair with our YouTube Comments and YouTube Transcript scrapers).
Input
{"searchQueries": ["best budget phone 2026"],"startUrls": ["@mkbhd", "https://www.youtube.com/playlist?list=PLFgquLnL59alCl_2TQvOiD5Vgm1hCaGSI", "https://www.youtube.com/shorts/0e3GPea1Tyg"],"maxResultsPerSource": 50,"scrapeDetails": true,"sortBy": "relevance","uploadDate": "month","duration": "any","channelTab": "videos"}
| Option | Default | Notes |
|---|---|---|
searchQueries | — | Search terms. |
startUrls | — | Channels, playlists, video/Shorts URLs or IDs. |
maxResultsPerSource | 50 | Per search / channel / playlist. |
scrapeDetails | true | Exact likes, comment count, date, description, chapters, subscribers. |
sortBy | relevance | relevance, date, views, rating (search only). |
uploadDate | any | hour, today, week, month, year (search only). |
duration | any | short (<4 min), medium (4–20), long (>20) (search only). |
channelTab | videos | videos, shorts, streams. |
maxResults | 0 | Cost cap for the whole run. |
maxConcurrency | 20 | Video pages in parallel. |
Output
Real output (default input)
First 2 of 20 records from a run with the prefilled input (4.0 s on a test machine; long values shortened here):
[{"videoId": "QVv3mQzlrN0","url": "https://www.youtube.com/watch?v=QVv3mQzlrN0","title": "Apple Homeview Impressions: Not Convinced!","description": "New Smart home display from Apple. With plenty of quirks and features.\n\nThe deskpad! http://shop.MKBHD.com\n\nPlaylist of MKBHD Intro music: h…","viewCount": 6764780,"likes": 87163,"commentCount": 6600,"publishedDate": "2026-10-13","publishedTimeText": "1 day ago","durationSeconds": 707,"durationText": "11:47","isShort": false,"isLive": false,"wasLive": false,"hashtags": [],"chapters": [],"thumbnail": "https://i.ytimg.com/vi/QVv3mQzlrN0/hq720.jpg","channelName": "Marques Brownlee","channelId": "UCBJycsmduvYEL83R_U4JriQ","channelHandle": "@mkbhd","channelUrl": "https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ","channelSubscribers": 21400000,"channelVerified": true,"sourceType": "channel","source": "@mkbhd","rank": 1,"scrapedAt": "2026-10-15T12:03:33.325Z"},{"videoId": "_0G4OG39XjI","url": "https://www.youtube.com/watch?v=_0G4OG39XjI","title": "WTF is a Googlebook?","description": "New laptops are dropping left and right! Let's talk about Google's entry.\n\nMKBHD Merch: http://shop.MKBHD.com\n\nPlaylist of MKBHD Intro music…","viewCount": 7838345,"likes": 95477,"commentCount": 7700,"publishedDate": "2026-10-08","publishedTimeText": "6 days ago","durationSeconds": 853,"durationText": "14:13","isShort": false,"isLive": false,"wasLive": false,"hashtags": [],"chapters": [],"thumbnail": "https://i.ytimg.com/vi/_0G4OG39XjI/hq720.jpg","channelName": "Marques Brownlee","channelId": "UCBJycsmduvYEL83R_U4JriQ","channelHandle": "@mkbhd","channelUrl": "https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ","channelSubscribers": 21400000,"channelVerified": true,"sourceType": "channel","source": "@mkbhd","rank": 2,"scrapedAt": "2026-10-15T12:03:33.393Z"}]
{"videoId": "Oi3uzDEFflo","url": "https://www.youtube.com/watch?v=Oi3uzDEFflo","title": "Best Budget Phones (Summer 2026) | Top 10 Tested & Reviewed","description": "Reviewing the best budget smartphones for Summer time 2026 in the UK…","viewCount": 161899,"likes": 2344,"commentCount": 216,"publishedDate": "2026-07-26","publishedTimeText": "2 months ago","durationSeconds": 669,"durationText": "11:09","isShort": false,"isLive": false,"wasLive": false,"hashtags": [],"chapters": [{ "start": 0, "startText": "0:00", "title": "Budget blowers ahoy" },{ "start": 45, "startText": "0:45", "title": "Xiaomi Redmi Note 15" }],"thumbnail": "https://i.ytimg.com/vi/Oi3uzDEFflo/hq720.jpg","channelName": "Tech Spurt","channelId": "UCVLN0tY51ewH44wUtx3YZTA","channelHandle": "@TechSpurt","channelUrl": "https://www.youtube.com/channel/UCVLN0tY51ewH44wUtx3YZTA","channelSubscribers": 1400000,"channelVerified": true,"sourceType": "search","source": "best budget phone 2026","rank": 1,"scrapedAt": "2026-10-13T19:40:00.000Z"}
Use with AI agents (MCP), LangChain, RAG & the API
This actor is a ready-made tool for AI agents: an LLM can call it, wait for the run and read clean JSON back.
MCP server (Claude Desktop, Claude Code, Cursor, VS Code, any MCP client) — add Apify's hosted MCP server with this actor enabled as a tool:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=murch1k/youtube-scraper","headers": { "Authorization": "Bearer <APIFY_TOKEN>" }}}}
LangChain / LangGraph (pip install langchain-apify, set APIFY_API_TOKEN):
import jsonfrom langchain_apify import ApifyActorsTool, ApifyWrapperfrom langchain_core.documents import Document# 1) give the actor to an agent as a tooltool = ApifyActorsTool("murch1k/youtube-scraper")# 2) or load results as Documents for a RAG indexloader = ApifyWrapper().call_actor(actor_id="murch1k/youtube-scraper",run_input={"searchQueries": ["best budget phone 2026"], "startUrls": ["@mkbhd", "https://www.youtube.com/playlist?list=PLFgquLnL59alCl_2TQvOiD5Vgm1hCaGSI", "https://www.youtube.com/shorts/0e3GPea1Tyg"], "maxResultsPerSource": 50, "scrapeDetails": True, "sortBy": "relevance", "uploadDate": "month", "duration": "any", "channelTab": "videos"},dataset_mapping_function=lambda item: Document(page_content=json.dumps(item, ensure_ascii=False), metadata={"url": item.get("url")}),)docs = loader.load()
REST API — one synchronous call, dataset items in the response:
curl -X POST "https://api.apify.com/v2/acts/murch1k~youtube-scraper/run-sync-get-dataset-items?token=<APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"searchQueries": ["best budget phone 2026"], "startUrls": ["@mkbhd", "https://www.youtube.com/playlist?list=PLFgquLnL59alCl_2TQvOiD5Vgm1hCaGSI", "https://www.youtube.com/shorts/0e3GPea1Tyg"], "maxResultsPerSource": 50, "scrapeDetails": true, "sortBy": "relevance", "uploadDate": "month", "duration": "any", "channelTab": "videos"}'
Also works with the Apify Python/JS clients, Make, Zapier, n8n, Google Sheets, webhooks and schedules. Export as JSON, CSV, Excel, XML or RSS.
RAG tip: An agent can research a niche in one call: search a topic, then rank rows by viewCount/likes and summarise title + description of the top videos.
Pricing
- $2.50 per 1,000 videos ($0.0025 per video).
- The prefilled input returns 20 videos → $0.05.
- Example: 1,000 videos → $2.50; 10,000 → $25.00. Set Max results (cost cap) to limit any run.
Limitations
durationSecondscomes from search/channel/playlist listings; for videos given directly by URL it may be empty.- Subscriber counts are shown by YouTube rounded (
1.4M) and returned as numbers. - Only public data is collected.
FAQ
Is this a YouTube Data API alternative? Yes. No API key and no quota; it returns views, exact likes, comment counts and channel subscribers for every video.
Can I track YouTube search rankings?
Yes. rank keeps YouTube's result order, so scheduled runs show how a video moves for a keyword.
Does it scrape Shorts and live streams?
Yes. Paste Shorts links, or choose the channel tab shorts or streams.