YouTube Scraper Intelligence
Pricing
Pay per event
YouTube Scraper Intelligence
Under maintenanceScrape public YouTube videos, Shorts, streams, channels, playlists, search results, subtitles, comments, and AI-ready transcript records.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Crowd Pull
Actor stats
1
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What does YouTube Scraper Intelligence do?
YouTube Scraper Intelligence extracts public data from YouTube videos, Shorts, streams, channels, playlists, search results, hashtags, comments, and subtitles. It is built for teams that need more than a basic YouTube API replacement: content intelligence, brand monitoring, creator research, market research, and transcript pipelines.
Start with YouTube URLs, search terms, channel handles, playlist links, Shorts links, or Trending. The Actor returns normalized video records with clear diagnostics, AI-ready transcript formats, optional full comments, deduplication, and compatibility fields for common YouTube scraper workflows.
Use this Actor when you need to:
- Monitor brands, products, topics, creators, or competitors on YouTube.
- Collect video metadata, engagement metrics, channel details, subtitles, and comments in one run.
- Build transcript datasets for search, RAG, summarization, sentiment analysis, or trend detection.
- Run repeatable YouTube monitoring jobs with deduplication and changing metric refreshes.
- Migrate from broad YouTube scraper inputs without rewriting your whole workflow.
What YouTube data can you scrape?
| Data type | Example fields |
|---|---|
| Video metadata | id, url, title, description, hashtags, thumbnailUrl, duration, date |
| Engagement | viewCount, likes, commentsCount, isMonetized, videoType |
| Channel data | channelName, channelUrl, channelId, numberOfSubscribers, channelLocation, channelTotalVideos, channelTotalViews |
| Search and source context | fromYTUrl, sourceType, search filters, source diagnostics |
| Subtitles and transcripts | manual captions, auto captions, SRT, VTT, XML, plain text, timestamped segments, KV-store URLs |
| Comments | comment ID, text, author, author channel, timestamp, likes, parent ID, reply depth, sort mode |
| Diagnostics | status, errorCode, errorMessage, subtitle errors, source-level summary records |
Supported YouTube sources
| Source | Supported |
|---|---|
| Direct video URLs | Yes |
| YouTube Shorts URLs | Yes |
| Channel URLs and handles | Yes |
| Playlist URLs | Yes |
| Search-result URLs | Yes |
| Search terms | Yes |
| Hashtag URLs | Yes |
| Locale-aware Trending | Yes, with fallback diagnostics when YouTube redirects the public Trending page |
Why use this YouTube scraper?
Most YouTube scrapers stop at metadata, search results, or one transcript format. This Actor is designed as a broader intelligence crawler:
- Broad crawler coverage: videos, Shorts, streams, channels, playlists, search URLs, search queries, hashtags, Trending, subtitles, and comments.
- Search controls: relevance, upload date, views, relative date filters, custom dates, duration filters, HD, 4K, HDR, live, 3D, 360, VR180, subtitles, Creative Commons, location, and a compatibility-only purchased/premium filter.
- Better transcript handling: manual captions first, auto-generated captions second, language fallback, SRT, VTT, XML, plain text, timestamped JSON segments, and optional Whisper fallback with spend caps.
- Full comment controls: enable comments only when needed, choose top or newest sorting, and cap comments per video.
- Stable output schema: video records are normalized so your downstream code is insulated from
yt-dlpor YouTube field drift. - Monitoring built in: Smart Scrape dedup, recent metric refreshes, source-level
SUMMARY, andSOURCE_DIAGNOSTICSrecords.
How to scrape YouTube data
- Open YouTube Scraper Intelligence.
- Add YouTube URLs, search terms, YouTube handles, or Trending.
- Set result limits for regular videos, Shorts, and streams.
- Turn subtitles and comments on or off depending on the job.
- Run the Actor and export results from the dataset as JSON, CSV, Excel, HTML, XML, or through the Apify API.
Input examples
Search YouTube with comments and subtitles
{"searchQueries": ["bittensor", "bitcoin"],"maxResults": 25,"maxResultsShorts": 10,"sortBy": "uploadDate","dateFilter": "month","lengthFilter": "under4","hasSubtitles": true,"includeSubtitles": true,"includeComments": true,"commentSort": "top","maxCommentsPerVideo": 500}
Monitor a YouTube channel for transcripts
{"youtubeHandles": ["@TED"],"maxResults": 50,"includeSubtitles": true,"languages": ["en.*"],"enableDedup": true,"refreshWindowDays": 7}
Use keyword, locale, and feature filters
{"keywords": ["bittensor"],"youtubeHandles": ["@TED"],"getTrending": true,"gl": "US","hl": "en","maxItems": 5,"sort": "v","uploadDate": "today","duration": "short","features": "hd,subtitles","customMapFunction": "(item) => ({ id: item.id, title: item.title, views: item.views })"}
Use Whisper only when captions are unavailable
{"startUrls": [{ "url": "https://www.youtube.com/watch?v=VIDEO_ID" }],"includeSubtitles": true,"transcriptMode": "captionsThenWhisper","openaiApiKey": "YOUR_OPENAI_API_KEY","maxWhisperMinutesPerRun": 30,"maxAudioDurationMinutes": 20}
Output example
Each dataset item is a video-shaped record. Failed video or source extractions emit a diagnostic row instead of silently disappearing.
{"status": "succeeded","id": "VIDEO_ID","url": "https://www.youtube.com/watch?v=VIDEO_ID","title": "Example YouTube video","description": "Public video description","hashtags": ["bittensor", "crypto"],"thumbnailUrl": "https://i.ytimg.com/vi/VIDEO_ID/maxresdefault.jpg","duration": "00:12:34","date": "2026-04-20","viewCount": 123456,"likes": 3456,"commentsCount": 789,"channelName": "Example Channel","channelUrl": "https://www.youtube.com/@example","channelId": "UC...","numberOfSubscribers": 100000,"videoType": "video","subtitles": [{"type": "manual","language": "en","format": "all","plainText": "Transcript text...","segments": [{ "start": 0.0, "end": 4.2, "text": "Transcript text..." }]}],"comments": [{"id": "COMMENT_ID","text": "Public comment text","author": "Comment Author","authorChannelUrl": "https://www.youtube.com/channel/...","timestamp": "2026-04-21T10:00:00Z","likes": 12,"replyDepth": 0,"parentId": null,"sortMode": "top"}],"sourceType": "search","scrapedAt": "2026-04-26T12:00:00Z"}
Migration-friendly inputs
This Actor accepts common broad-crawler fields: sortingOrder, downloadSubtitles, saveSubsToKVS, subtitlesLanguage, preferAutoGeneratedSubtitles, subtitlesFormat, videoType, lengthFilter, isHD, hasSubtitles, hasCC, is3D, isLive, isBought, is4K, is360, hasLocation, isHDR, isVR180, oldestPostDate, and sortVideosBy.
It also accepts search, locale, and mapping aliases: keywords, youtubeHandles, getTrending, gl, hl, maxItems, sort, uploadDate, duration, features, and customMapFunction.
Compatibility does not mean every private or unavailable YouTube signal can be scraped. Dislikes are not included because they are not public YouTube data. The purchased/premium input is accepted for workflow compatibility, but public unauthenticated YouTube search often returns no real video rows for it and public metadata does not reliably expose purchase availability.
Pricing and performance notes
This Actor uses premium pay-per-event pricing. The baseline metadata price is positioned for a full-featured YouTube crawler, while transcript rows carry premium pricing because they include richer subtitle formats and transcript-ready output.
| Event | Price | Applies to |
|---|---|---|
video-scraped | $2.35 / 1,000 rows | Successful video metadata rows without transcript payloads |
transcript-captions | $4.90 / 1,000 rows | Successful rows with public caption transcripts |
transcript-whisper | $4.90 / 1,000 rows | Successful rows with Whisper fallback transcripts |
Whisper fallback requires the user's OpenAI API key. OpenAI API usage is billed to that key, not to this Actor. Platform compute, proxy, and storage usage may also apply depending on the user's Apify plan and run settings. Large comment jobs and transcript-heavy jobs cost more because they do more network and parsing work. For bigger monitoring runs, start with comments disabled, then enable comments on the channels or videos that matter.
Published CrowdPull Actor lineup
Use YouTube Scraper Intelligence alongside published CrowdPull Actors to build larger social, marketplace, hiring, and public-records workflows.
| Workflow | CrowdPull Actors |
|---|---|
| Social intelligence | Instagram Scraper |
| Facebook research | Facebook Profile Scraper, Facebook Page Posts Scraper, Facebook Group Posts Scraper, Facebook Comment Scraper |
| Marketplace intelligence | Facebook Marketplace Scraper, OfferUp Scraper, AliExpress Reviews Scraper |
| Hiring and labor market data | ZipRecruiter Jobs Scraper |
| Public records and compliance research | OSHA Violations Scraper |
API usage
You can run this Actor from the Apify Console, API, CLI, schedules, webhooks, or SDKs. Dataset results are available from the default dataset, while run-level summary and diagnostics are available from the default key-value store.
apify call crowdpull/youtube-scraper-intelligence --input '{"searchQueries": ["bittensor"],"maxResults": 10,"includeSubtitles": true}'
Limits, privacy, and compliance
- This Actor extracts public YouTube data only.
- It does not scrape YouTube dislikes or private data.
- Private, removed, age-restricted, geo-blocked, and rate-limited videos are reported with diagnostics where detectable.
- Comments may contain personal data. Use comment extraction only when you have a lawful basis and a legitimate reason to process the data.
- YouTube can change public pages and metadata without notice. The Actor includes diagnostics to make failures visible and easier to monitor.
Troubleshooting
| Symptom | What to try |
|---|---|
| No subtitles returned | Check subtitles[], subtitleErrorCode, and language filters. Try languages: ["en.*", ".*"] if multilingual captions are acceptable. |
| Search returns fewer rows than expected | Increase maxResults, loosen filters, or remove strict flags such as is4K, isHDR, or hasLocation. |
| Comments are slow | Lower maxCommentsPerVideo, use commentSort: "top", or run comments only on a filtered video set. |
| Trending redirects | Check searchDiagnostics.trendingFallbackUrl; the Actor records the fallback search URL when YouTube redirects public Trending. |