YouTube Scraper Pro
Pricing
from $5.00 / 1,000 results
YouTube Scraper Pro
Under maintenanceExtract YouTube data at scale — search results, channel videos & shorts, full transcripts, comments with nested replies, playlists, and trending feeds. No API key or quota limits. Bulk-parallel input accepts any mix of queries, channels, videos, and playlists in one run.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Logical Vivacity
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
YouTube Scraper — Search, Channels, Videos, Transcripts, Comments & Playlists
Extract structured data from YouTube at scale, without an API key, without quota limits, and without the slow browser-based pricing of most competing scrapers. Pull search results, channel videos, single-video metadata, full transcripts, comments and replies, and playlists — all from one input.
Built for content researchers, SEO teams, marketing agencies, AI/ML pipelines, journalists, and competitive-intelligence workflows that need clean, structured YouTube data delivered fast.
Why this YouTube scraper
- No YouTube Data API key, no quota. Skip the 10,000-units-per-day cap. Scrape as much as you need.
- 5–10× cheaper than browser-based competitors. A lightweight fast path replaces full browser rendering for almost every job, so you pay for the data, not for ads, video players, or fonts.
- One actor, every job. Search, channel, video, comments, playlist, transcripts — same input, different mode. No need to pay for and chain three different scrapers.
- Bulk-first. Pass a list of any mix of targets and the actor figures out what each one is, runs them in parallel, and isolates errors per-target.
- AI-pipeline-ready. Full transcripts in plain text plus timed segments, rich field metadata, and a clean schema make this a drop-in source for LLM-based summarization, RAG, content-tagging, and trend-detection systems.
What you can scrape
| Mode | Input | What you get |
|---|---|---|
| YouTube search | A query | Top videos for the query, with date / duration / sort / type filters |
| YouTube channel | A handle (@name) or channel URL | A tab of your choice: Videos, Shorts, Live streams, Playlists, or About (channel info) |
| YouTube video | A video URL or ID | Full video metadata, plus optional subtitles & full transcript in any available language |
| YouTube comments | A video URL or ID | Top-level comments, plus optional nested replies |
| YouTube playlist | A playlist URL or ID | Every video in the playlist, in order, with index, duration, and link |
If you don't pick a mode, it's inferred automatically from your input.
Use cases
- SEO and content research — find the highest-ranking videos for a query under any time window (last hour / today / this week / this month / this year), sorted by views, date, or rating.
- YouTube transcript extraction — pull a clean, plain-text transcript out of any video that has captions (manual or auto-generated), in dozens of languages. Feed straight into LLM summarization, semantic search, or RAG.
- Competitive intelligence — track a competitor's channel: every new upload, every Short, every live replay, all subscriber/view stats from the About tab.
- Comment sentiment & community research — pull thousands of comments and replies on a viral video, with author, like count, and pinned/hearted-by-creator flags.
- Playlist mining — turn a curated playlist of 500 videos into a clean dataset for a course catalog, music library, or content recommender.
- Influencer discovery — search by view count + recency to surface fast-rising creators in any niche.
- Dataset building for ML — bulk-scrape thousands of videos and their transcripts to fine-tune or evaluate models.
Bulk inputs (any mix of types)
Pass an array of targets and the actor processes them in parallel. The list can mix queries, channel handles, video URLs, and playlist links — each target is dispatched to the right mode automatically.
{"targets": ["playwright tutorial","@MrBeast","https://www.youtube.com/watch?v=wGr5rz8WGCE","PLBuVTgrx7DqQK9X4i7t6Itw9MJyfKRFi8"],"concurrency": 5,"maxItems": 100}
Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
target | string | — | A single query, handle/URL, video, or playlist. |
targets | string[] | — | Multiple targets in one run. Overrides target if set. |
mode | string | inferred | search, channel, video, comments, or playlist. |
maxItems | integer | 50 | Max records per target. Ignored for video. |
concurrency | integer | 3 | Targets to process in parallel. |
language | string | en | Two-letter language code. |
region | string | US | Two-letter country code used to localize results. |
channelTab | string | videos | When mode is channel: videos, shorts, streams, playlists, or about. |
uploadDate | string | any | Search filter: hour, today, week, month, year. |
durationFilter | string | any | Search filter: short (<4 min), medium (4–20 min), long (>20 min). |
sortBy | string | relevance | Sort search results: relevance, date, views, rating. |
resultType | string | video | Restrict search to: video, channel, playlist, movie. |
includeSubtitles | boolean | false | For video mode, also fetch the subtitle track and a plain-text transcript. |
subtitleLanguage | string | — | Preferred subtitle language code (e.g. en, es). |
includeReplies | boolean | false | For comments mode, also pull replies under each top-level comment. |
maxRepliesPerComment | integer | 10 | Cap on replies per comment. |
proxyConfiguration | object | Apify Proxy on | Optional proxy settings. |
Examples
Find the most-viewed videos on a topic this week
{"target": "open source ai","uploadDate": "week","sortBy": "views","maxItems": 100}
Download a YouTube transcript
{"target": "https://www.youtube.com/watch?v=wGr5rz8WGCE","includeSubtitles": true,"subtitleLanguage": "en"}
Scrape a creator's Shorts
{ "target": "@MrBeast", "mode": "channel", "channelTab": "shorts", "maxItems": 200 }
Pull comments and replies on a video
{"target": "wGr5rz8WGCE","mode": "comments","includeReplies": true,"maxRepliesPerComment": 25,"maxItems": 500}
Bulk-scrape a list of channels
{"targets": ["@MrBeast", "@MKBHD", "@LinusTechTips", "@veritasium"],"mode": "channel","channelTab": "videos","maxItems": 30,"concurrency": 4}
Output
Every record lands in the run's dataset, one row per item. Each record carries a mode field so mixed-mode runs stay easy to filter and route.
Common fields on every video-like record: videoId, url, title, channel, channelId, channelUrl, viewCount, viewCountText, duration, lengthSeconds, publishedTimeText, thumbnail.
Computed fields added automatically wherever the data exists — useful for ranking, dashboards, and analytics:
viewsPerDay— average daily views since publishdaysSincePublished— fractional days since publishlikeCountApprox— like count parsed from short-form (4.6k→4600)likeViewRatio— engagement ratiolengthSeconds— duration normalized to whole seconds
Mode-specific extras:
video—description,keywords,publishDate,category,likesText,availableSubtitles, plussubtitleSegmentsandtranscriptwhen subtitles are requestedcomments/replies—commentId,author,authorChannelId,authorUrl,text,likeCount,isPinned,isHearted,replyCount. Replies also carryparentCommentIdplaylist—playlistId,playlistTitle,indexInPlaylistchannelAbout—subscriberCountText,videoCountText,joinedDate,country,links,avatar,banner, channel description and keywordsshorts/live— same shape as videos, plusisShort/isLiveflags
Three pre-built table views on the dataset: Overview (covers most modes), Comments, and Transcripts.
Records are written incrementally as each target finishes, so a long bulk run is observable from the first second — no waiting for a single dump at the end.
Speed and cost
This scraper is built around a lightweight fast path: one HTTP request returns YouTube's own embedded data, and pagination uses the same continuation API the YouTube site uses internally. No browser, no rendered page, no ad downloads, no video player.
In practice that's roughly 5–10× faster and cheaper than browser-based YouTube scrapers for the same data. Heavy continuation jobs — pulling 5,000 search results or 10,000 comments — feel light because every additional page is a single API call rather than a full page render.
Compared to YouTube Data API
| This actor | YouTube Data API v3 | |
|---|---|---|
| API key required | No | Yes |
| Daily quota | None | 10,000 units (≈100 search calls) |
| Search filters | All standard filters | Yes |
| Full transcripts | Yes | No (third-party only) |
| Comment replies (nested) | Yes | Yes |
| Channel "About" details | Yes | Limited |
| Bulk parallel processing | Yes | DIY |
| Cost model | Pay per run | Free up to quota, then approval needed |
FAQ
Does this scraper work without a YouTube Data API key?
Yes. There's no quota and no key to manage. You're scraping public pages directly.
Can I download YouTube subtitles or transcripts?
Yes — for any video that has captions (manually uploaded or auto-generated). Set includeSubtitles: true and optionally subtitleLanguage (e.g. "en", "es", "hi"). You get both timed segments and a single plain-text transcript field.
Can I scrape YouTube comments at scale?
Yes. Set mode: "comments" and a maxItems cap. Add includeReplies: true to also pull nested replies. Each comment includes the author handle, channel ID, like count, pinned status, and creator-hearted status.
Can I scrape an entire YouTube channel?
Yes. Pass the channel handle (@name) or URL and pick a tab via channelTab: videos, shorts, streams (live replays), playlists, or about for subscriber count, country, joined date, and external links.
Can I scrape YouTube Shorts?
Yes. Set mode: "channel" and channelTab: "shorts". Search results that are Shorts are also returned with isShort: true.
How do I scrape multiple channels or videos in one run?
Use the targets array. You can mix queries, handles, video URLs, and playlist links in the same list. The concurrency field controls how many run in parallel.
Does it handle YouTube playlists?
Yes. Pass a playlist URL or ID with mode: "playlist". Records are returned in playlist order with an indexInPlaylist field.
Will it bypass age-gated or private videos?
No. Private, members-only, and login-required content is not accessible. Age-gated content depends on the run's region and proxy setup.
What happens if a target fails?
A single record with an error field is pushed to the dataset for that target, and the rest of the run continues. Failures don't kill the job.
Is there a single-video / single-target pricing tier?
Yes — small inputs run on the fast path and are very cheap. Bulk runs scale linearly with len(targets) × maxItems. Use a small smoke-test input first to estimate cost.
Can I pass an Apify Proxy or my own proxy?
Yes. Configure it via proxyConfiguration. Apify Proxy is on by default.
Notes
- View counts and like counts are returned both as the raw display string (e.g.
"199,700 views","4.6k") and as numbers wherever they parse cleanly. - If a video has comments disabled,
commentsmode returns no records and logs a warning. - Channel handles work with or without the leading
@. - A target that fails for any reason produces a single record with an
errorfield rather than killing the rest of the run.
Keywords: YouTube scraper, YouTube data extractor, YouTube transcript downloader, YouTube comments scraper, YouTube channel scraper, YouTube search scraper, YouTube playlist scraper, YouTube data without API, YouTube subtitles extractor, YouTube Shorts scraper, scrape YouTube without API key, YouTube bulk scraper, YouTube API alternative, YouTube data for AI, YouTube transcript for LLM, YouTube content research tool.