YouTube Intelligence Scraper
Pricing
from $5.00 / 1,000 results
YouTube Intelligence Scraper
Extract public YouTube videos, channels, playlists, Shorts, livestreams, comments, and subtitles into normalized intelligence records
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Muhammad Qaseem Iqbal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
YouTube Intelligence Scraper helps you collect useful public information from YouTube in a clean, organized format.
Use it to gather data from YouTube videos, Shorts, livestreams, channels, playlists, search results, hashtags, comments, and public subtitles. The Actor turns that information into structured results you can download, analyze, send to other tools, or use in AI workflows.
What Does YouTube Intelligence Scraper Do?
This Actor collects public YouTube data such as video titles, channel names, view counts, comments, subtitles, descriptions, links, and playlist details.
You can use it to:
- Search YouTube for keywords and collect matching videos.
- Scrape a channel and see its public videos, Shorts, livestreams, and profile details.
- Extract video metadata such as title, URL, duration, publish date, views, likes, and comments count.
- Collect public comments and replies from videos.
- Download public subtitles and transcripts when they are available.
- Extract links from video and channel descriptions.
- Export results in Apify dataset formats such as JSON, CSV, Excel, XML, HTML, and RSS.
- Keep failed inputs visible with clear error rows instead of silently skipping them.
Who Is This Actor For?
YouTube Intelligence Scraper is useful for:
- Marketing and growth teams tracking brand mentions.
- Agencies researching competitors and creators.
- YouTube SEO researchers looking for content ideas.
- Product teams studying reviews and customer feedback.
- Journalists and researchers collecting public source material.
- AI teams building transcript, summarization, classification, or RAG datasets.
- Data teams exporting YouTube results into spreadsheets, dashboards, or databases.
Common Use Cases
| Use case | How this Actor helps |
|---|---|
| Brand monitoring | Track your brand, product, founder, or competitor names across titles, descriptions, transcripts, comments, and hashtags. |
| Competitor research | Compare publishing activity, views, likes, comments, Shorts usage, livestreams, and channel metadata. |
| Influencer discovery | Find creators in a niche and review their channel size, engagement, links, and content topics. |
| Product review research | Collect review videos, public comments, description links, and audience feedback. |
| Content strategy | Discover popular topics, hashtags, video lengths, title patterns, and audience response. |
| AI datasets | Export transcripts, comments, and video metadata for AI analysis, summaries, embeddings, and search. |
| Media research | Save traceable public YouTube records with source URLs and collection timestamps. |
What Data Can You Scrape From YouTube?
| Data type | Examples |
|---|---|
| Video details | Title, URL, video ID, description, duration, publish date, thumbnails |
| Engagement | Views, likes when public, comments count, simple engagement rate |
| Channel details | Channel name, handle, URL, subscriber count, description, location when public |
| Search results | Search query, result rank, video/channel/playlist result type |
| Shorts | Shorts URLs and Shorts discovered from search or channels |
| Livestreams | Public live, upcoming, and past livestream metadata when available |
| Playlists | Playlist ID, playlist title, video order, playlist source URL |
| Comments | Comment text, author name, likes, reply count, parent comment ID |
| Subtitles | Public transcript text, language, subtitle type, timestamped segments |
| Links | Public links from video and channel descriptions |
| Errors | Clear error rows for missing, unavailable, private, or blocked sources |
How To Scrape YouTube Data
- Open the Actor in Apify Console.
- Add at least one source:
- YouTube URL
- Search query
- Channel handle
- Hashtag
- Choose a scraping mode, or leave it on
auto. - Set how many results you want.
- Turn on optional extras such as video details, channel details, comments, or subtitles only when you need them.
- Start the run.
- Open the Dataset tab to preview or download your results.
For larger runs, keep Apify Proxy enabled and start with smaller limits first.
Input Examples
You can use the form in Apify Console or paste JSON input directly.
Scrape YouTube Search Results
Use this when you want to find videos around a topic.
{"searchQueries": ["best AI automation tools"],"mode": "search","maxResultsPerSource": 25,"includeVideoDetails": false,"includeChannelDetails": false}
Scrape a Channel
Use this when you want to audit a creator, competitor, or brand channel.
{"channelHandles": ["@Apify"],"mode": "channels","channelTab": "videos","maxResultsPerSource": 25,"includeVideoDetails": false,"includeChannelDetails": true}
Scrape a Playlist
Use this when you want the videos from a course, series, music playlist, webinar archive, or collection.
{"startUrls": [{"url": "https://www.youtube.com/playlist?list=PLxxxx"}],"mode": "playlists","maxResultsPerSource": 50,"includeVideoDetails": false}
Scrape Comments
Use this when you want to analyze audience feedback.
{"startUrls": [{"url": "https://www.youtube.com/watch?v=VIDEO_ID"}],"mode": "comments","includeComments": true,"maxCommentsPerVideo": 100,"includeReplies": true,"maxRepliesPerComment": 5}
Scrape Subtitles Or Transcripts
Use this when you want text from public captions for AI, research, or content analysis.
{"startUrls": [{"url": "https://www.youtube.com/watch?v=VIDEO_ID"}],"mode": "transcripts","includeSubtitles": true,"subtitleLanguages": ["en"],"subtitleFormat": "plainText","includeTranscriptSegments": true,"saveSubtitlesToKeyValueStore": true}
Monitor Brand Mentions
Use this as a scheduled Apify task to check YouTube search results regularly.
{"searchQueries": ["acme software review", "acme app tutorial"],"mode": "search","maxResultsPerSource": 25,"includeVideoDetails": false,"includeChannelDetails": false,"includeDescriptionLinks": true,"includeSubtitles": false,"subtitleLanguages": ["en"],"includeComments": false,"maxCommentsPerVideo": 0,"deduplicate": true}
Output Example
Results are saved to an Apify dataset. Think of the dataset as a table of rows you can preview, filter, and download.
Here is a simplified video result:
{"recordType": "video","videoId": "abc123XYZ00","title": "Best AI Tools for Small Businesses","url": "https://www.youtube.com/watch?v=abc123XYZ00","channelName": "Example Tech","channelHandle": "@ExampleTech","viewCount": 184233,"likeCount": 6710,"commentCount": 422,"durationSeconds": 764,"publishedDate": "2026-05-21","isShort": false,"isLive": false,"sourceType": "search","sourceQuery": "best AI tools","collectedAt": "2026-06-13T21:00:00.000Z"}
Comment results use recordType: "comment":
{"recordType": "comment","videoId": "abc123XYZ00","commentId": "UgExampleCommentId","authorName": "Public User","commentText": "This was useful.","commentLikeCount": 18,"publishedText": "2 days ago","replyCount": 3,"replyDepth": 0,"collectedAt": "2026-06-13T21:00:00.000Z"}
Transcript results use recordType: "transcript":
{"recordType": "transcript","videoId": "abc123XYZ00","language": "en","subtitleType": "autoGenerated","subtitleFormat": "plainText","segmentCount": 245,"transcriptText": "Today we are looking at practical AI tools for small businesses.","collectedAt": "2026-06-13T21:00:00.000Z"}
Error Items
If the Actor cannot collect data for one input, it can add an error row to the dataset instead of skipping it.
This is useful because you can see exactly what failed and why.
Example:
{"recordType": "error","input": "https://www.youtube.com/@missing-channel","url": "https://www.youtube.com/@missing-channel","error": "CHANNEL_DOES_NOT_EXIST","note": "Channel URL points to a channel that does not exist.","recoverable": true,"collectedAt": "2026-06-13T21:00:00.000Z"}
Common error codes:
| Error | Meaning |
|---|---|
NO_VALID_START_URLS | No valid YouTube source was provided |
NO_RESULTS | The source returned no public results |
VIDEO_UNAVAILABLE | The video is deleted, private, region-blocked, or otherwise unavailable |
AGE_RESTRICTED | The video or channel requires age verification or login |
CHANNEL_DOES_NOT_EXIST | The channel could not be found |
NO_COMMENTS | No public comments were found, or comments are disabled |
NO_SUBTITLES | No public subtitles were found for the requested language |
DATE_FILTER_TOO_STRICT | The date filter removed all matching results |
BLOCKED | YouTube or the selected proxy blocked the page before results could be collected |
PARSER_CHANGED | YouTube returned a page layout the Actor could not read reliably |
Where Are Subtitles Saved?
When subtitle saving is enabled, full subtitle files are stored in the Actor's Key-Value Store.
The dataset result includes references to those files, so you can download or reuse the full transcript later without making each dataset row too large.
Keeping Runs Cheap
The Actor is configured for low-cost discovery by default. A normal search run collects a smaller first batch of results, skips extra video and channel page visits, blocks video media, fonts, and tracking assets, and uses modest concurrency.
For the lowest cost:
- Keep
maxResultsPerSourceclose to the default25until you know the source is useful. - Leave
includeVideoDetailsandincludeChannelDetailsoff for broad discovery. - Turn on comments, replies, and subtitles only for selected videos.
- Keep
maxConcurrencynear the default2for steadier, lower-risk runs. - Run a small search first, then use the best video or channel URLs for a second enriched run.
Tips For Best Results
- Start with the default low-cost settings before collecting thousands of results.
- Use
maxResultsPerSourceto control how much data you collect. - Turn on comments only when you need comment text.
- Turn on subtitles only when you need transcripts.
- Use
includeVideoDetails: falseandincludeChannelDetails: falsefor faster discovery runs. - Keep Apify Proxy enabled for more reliable YouTube scraping.
- Lower concurrency if you see many retries or blocked requests.
Integrations
After the Actor finishes, you can use your results with:
- Google Sheets or Google Drive
- Make
- Zapier
- n8n
- Airbyte
- Slack
- Databases and dashboards
- Apify API
- Webhooks
- Apify MCP
- AI tools such as LangChain or LlamaIndex
FAQ
Can I scrape YouTube dislikes?
No. Non-public dislike counts are not available as scraped fields.
Can I scrape private videos?
No. This Actor only targets public YouTube data.
Can I scrape age-restricted videos?
Usually no. If a page requires login or age verification, the Actor returns an error item instead of trying to bypass access controls.
Can I scrape subtitles?
Yes, when public subtitles are available. The Actor can collect manual and auto-generated captions in formats such as plain text, SRT, WebVTT, XML, or timestamped JSON segments.
Can I scrape comments?
Yes. Turn on includeComments and set maxCommentsPerVideo. You can also enable replies with includeReplies.
Can I download videos?
No. This Actor is for metadata, comments, subtitles, transcripts, links, and public text data. It does not download video media by default.
How many results can I scrape?
The input schema allows up to 20,000 primary results per source, but real results depend on the source, YouTube availability, filters, region, language, and run settings. For very large runs, test with a smaller limit first.
Why do results vary between runs?
YouTube results can change based on time, location, language, ranking, video availability, and platform updates.
Should I use a proxy?
Yes. YouTube scraping is usually more reliable with proxy support. The default input is configured for Apify Proxy.
Is it legal to scrape YouTube?
Scraping public web data can be lawful, but you are responsible for using the data legally and respecting privacy, copyright, and platform rules. If you are unsure, consult a legal professional.
Limitations
- Only public YouTube data is supported.
- Private, login-only, member-only, and paid content is not supported.
- The Actor does not bypass CAPTCHAs, age gates, paywalls, or authentication.
- Non-public dislikes are not scraped.
- Video media is not downloaded by default.
- Some counts may be rounded, hidden, delayed, or unavailable.
- Search results and comments can change over time.
- Large comment and transcript runs can take longer and use more compute.
Troubleshooting
| Problem | Likely cause | What to try |
|---|---|---|
| No results | The query is too narrow, filters are strict, or YouTube returned no public results | Increase limits, loosen filters, or try another source |
| Missing subtitles | The video has no public captions in the requested language | Try another language or disable subtitle extraction |
| Missing comments | Comments are disabled or unavailable | Try another video or disable comment extraction |
| Slow run | Comments, replies, subtitles, or deep video details are enabled | Lower limits or disable expensive options |
| Channel URL times out | YouTube was slow or blocked through the selected proxy | Try the /videos channel tab, keep concurrency low, increase navigation timeout, or use a stronger proxy option if your Apify account supports it |
| Parser changed error | YouTube returned an unexpected page layout or an empty channel grid | Retry with the latest build, keep Apify Proxy enabled, and try a direct /videos channel URL |
| Many retries | Rate limiting, blocking, or network issues | Lower concurrency and keep proxy enabled |
| Invalid source error | URL, handle, or hashtag is malformed | Check the input and run again |
For Developers
You can run and test the Actor locally:
npm installnpm run typechecknpm test -- --runnpm run lintnpm run build
Live smoke tests are available when browser and network access are intended:
$RUN_INTEGRATION=1 npm test -- --run test/integration