YouTube Scraper Pro: Videos & Channels
Pricing
from $0.40 / 1,000 primary youtube results
YouTube Scraper Pro: Videos & Channels
Fast YouTube scraper for videos, channels, search, playlists, comments, and transcripts. Exact limits, restart recovery, no API key.
Pricing
from $0.40 / 1,000 primary youtube results
Rating
0.0
(0)
Developer
Dev
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Share
YouTube Scraper Pro
Extract public YouTube videos, Shorts, live streams, channels, playlists, search results, comments, and timestamped transcripts—without a YouTube Data API key or a browser.
Use it for creator research, content monitoring, lead discovery, trend analysis, dataset building, and YouTube workflow automation. Start with URLs, search queries, or both in the same run.
Why choose this YouTube scraper?
| What you need | What this Actor does |
|---|---|
| Predictable pricing | Charges only for successful primary records. No start fee. Comments, transcripts, notices, and errors have no additional event charge. Platform usage is included. |
| Broad coverage | One Actor handles videos, Shorts, streams, channels, playlists, hashtags, search, comments, and transcripts. |
| Reliable bulk runs | Exact concurrent limits, global deduplication, isolated source failures, retry handling, automatic checkpoints, and restart-safe dataset recovery. |
| Fast, efficient collection | HTTP-first extraction runs without a browser and uses 256 MB by default. |
| Integration-ready data | Stable recordType values, normalized fields, native dataset views, machine-readable errors, and a compact run summary. |
| Safe cost controls | Per-source and run-wide record caps work together with Apify's maximum charge per run. |
In a paid cloud benchmark, the Actor produced exactly 1,000 unique results and 1,000 matching billed events in 136.5 seconds at 256 MB, with zero retries, 429s, 5xx responses, or network errors. Batched paid writes made this identical workload about 30% faster than the previous paid build. A separate forced-reboot test resumed a run, recovered the dataset tail, and finished with no duplicate records. Actual speed varies with source type, enrichment, network conditions, and YouTube responses.
Pricing
You pay only when the Actor stores a successful primary result: a video, short, stream, channel, or playlist record.
| Apify plan | Price per 1,000 primary results |
|---|---|
| Free | $0.60 |
| Bronze | $0.50 |
| Silver | $0.45 |
| Gold | $0.40 |
| Platinum | $0.40 |
| Diamond | $0.40 |
Included at no additional event charge:
- Actor starts and empty searches
- Comments and comment pagination
- Timestamped transcript enrichment
noticeanderrorrecords- Apify platform usage during the run
For example, 10,000 primary results cost $6.00 on Free, $5.00 on Bronze, or $4.00 on Gold and higher plans. Set Maximum total charge when starting a run to enforce an additional billing ceiling.
Quick start
Scrape a channel and a direct video in one run:
{"startUrls": [{ "url": "https://www.youtube.com/@Apify" },{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }],"channelSections": ["videos", "shorts", "live"],"maxResultsPerSource": 50,"maxTotalResults": 100,"includeComments": true,"maxCommentsPerVideo": 20,"includeTranscript": true}
Search YouTube without opening every result page:
{"searchQueries": ["web scraping tutorials","Apify YouTube automation"],"searchResultTypes": ["video", "short", "channel", "playlist"],"uploadDate": "month","searchSort": "relevance","maxResultsPerSource": 100,"maxTotalResults": 200}
startUrls and searchQueries can be combined. Each URL or query is processed independently, so one unavailable target does not discard successful results from other sources.
Supported YouTube URLs
- Videos:
youtube.com/watch?v=...andyoutu.be/... - Shorts, live streams, and embeds:
/shorts/...,/live/...,/embed/... - Channels:
/@handle,/channel/...,/c/..., and/user/... - Playlists:
/playlist?list=... - Hashtags:
/hashtag/... - Search pages:
/results?search_query=...
What you can extract
Videos, Shorts, and streams
- ID, canonical URL, title, description, publication date, and duration
- View, like, and comment counts when YouTube exposes them
- Channel identity, handle, verification, URL, and thumbnails
- Video thumbnails, tags, category, live/upcoming flags, and availability information
- Optional expanded details for search, channel, hashtag, and playlist results
Channels and playlists
- Channel identity, description, subscriber and video counts, and thumbnails
- Videos, Shorts, and Live channel tabs with continuation-page pagination
- Playlist identity, metadata, item counts, and paginated playlist items
Comments and transcripts
- Top or newest comments with author, votes, replies, pinned/hearted flags, owner flag, and deep link
- Timestamped transcript segments with text, start/end milliseconds, and available languages
- Transcript fallback through signed public caption tracks when YouTube's transcript endpoint is unavailable
Input options
| Input | Purpose | Default |
|---|---|---|
startUrls | Video, channel, playlist, hashtag, or search URLs | [] |
searchQueries | Plain-text YouTube searches | [] |
searchResultTypes | video, short, channel, playlist | video + short |
maxResultsPerSource | Exact cap for every URL or query | 50 |
maxTotalResults | Exact cap for the entire run | 1000 |
channelSections | Channel tabs to collect | all three |
includeChannelRecord | Store channel metadata before its content | true |
includeComments | Fetch comments for detailed videos | false |
maxCommentsPerVideo | Comment cap per enriched video | 20 |
commentsSortBy | Top comments or newest first | top |
includeTranscript | Add timestamped transcript segments | false |
enrichExpandedVideos | Open every expanded list result for full details | false |
searchSort | Relevance or popularity | relevance |
uploadDate | Today, week, month, year, or all | all |
duration | Under 3, 3–20, over 20 minutes, or all | all |
language / country | Localize YouTube responses | en / US |
maxConcurrency | Parallel top-level sources | 4 |
maxRequestRetries | Retries for transient failures | 3 |
maxSources | Maximum URLs and queries combined | 200 |
maxPagesPerSource | Maximum paginated YouTube pages per source | 100 |
maxRequestsPerSource | Maximum YouTube HTTP attempts per source | 500 |
requestTimeoutMs | Timeout for each HTTP attempt | 20000 |
proxyConfiguration | Optional Apify or custom proxy | disabled |
maxResultsPerSource and maxTotalResults include every stored record type, including free comments, notices, and errors. This makes the dataset size deterministic as well as the bill.
The source, page, and request limits also bound work when YouTube returns empty or repeated pages. They can be raised for larger jobs. A PAGE_LIMIT_REACHED or REQUEST_LIMIT_REACHED notice means available results may be partial; repeated URLs or queries that were already covered by another source do not produce a misleading NO_RESULTS notice.
Fast list mode or full enrichment
The default list path returns metadata already present on search, channel, hashtag, and playlist pages. This is the fastest and least expensive way to collect large result sets.
Enable enrichExpandedVideos when every expanded video needs full video-page fields, comments, or transcripts. Enrichment adds at least one request per video. Direct video URLs always use the full-detail path.
Output format
Every dataset row contains a stable type and source context:
{"recordType": "video","id": "dQw4w9WgXcQ","url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","title": "Example video","viewCount": 123456,"channel": {"id": "UC...","name": "Example channel","url": "https://www.youtube.com/channel/UC..."},"source": {"kind": "search","value": "web scraping tutorials","index": 0},"scrapedAt": "2026-09-27T08:30:00.000Z"}
recordType is one of:
video,short, orstreamchannelorplaylistcommentnoticefor a valid source with no public resultserrorfor an isolated source failure
The default dataset contains the records. The OUTPUT key-value-store record contains source outcomes, counts, duplicate and recovery metrics, first-result latency, duration, HTTP request/retry status, and whether a result or billing limit was reached.
Reliability behavior
- Retries HTTP 408, 425, 429, and 5xx responses with exponential backoff and jitter
- Deduplicates globally by record type and stable ID or canonical URL
- Reserves output capacity before concurrent writes, preventing limit overshoot
- Saves state at startup, in source batches, periodically, and before migration
- Recovers rows written after the last checkpoint following a restart
- Preserves partial results when one source, comment page, or enrichment fails
- Keeps free comments eligible for output after the final affordable video, as long as the dataset and per-source record caps still have room
- Reports a comment fetch failure as a separate free error row tied to the video, without rewriting or charging the video again
- Returns stable error codes for rate limits, network failures, unavailable/private content, transcript failures, invalid input, and extraction changes
API example
Run synchronously and receive dataset rows:
curl "https://api.apify.com/v2/acts/smart_albatross~youtube-scraper-pro/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-X POST \-H "Content-Type: application/json" \-d '{"searchQueries": ["web scraping tutorials"],"maxTotalResults": 25}'
For larger jobs, start the Actor asynchronously and read the default dataset after the run finishes.
Responsible use and limitations
This Actor requests public YouTube data only. You are responsible for complying with applicable law, privacy and copyright rules, contractual restrictions, and YouTube's terms.
- Fields vary by locale, region, account state, content type, and YouTube experiments.
- Some list pages expose abbreviated counts or omit fields; full enrichment can provide more detail.
- Private, deleted, members-only, age-restricted, and region-restricted content may be unavailable or partial.
- Transcripts require public captions or transcripts for the selected video.
- The Actor does not download video or audio media.