YouTube Intelligence Scraper avatar

YouTube Intelligence Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
YouTube Intelligence Scraper

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

Muhammad Qaseem Iqbal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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 caseHow this Actor helps
Brand monitoringTrack your brand, product, founder, or competitor names across titles, descriptions, transcripts, comments, and hashtags.
Competitor researchCompare publishing activity, views, likes, comments, Shorts usage, livestreams, and channel metadata.
Influencer discoveryFind creators in a niche and review their channel size, engagement, links, and content topics.
Product review researchCollect review videos, public comments, description links, and audience feedback.
Content strategyDiscover popular topics, hashtags, video lengths, title patterns, and audience response.
AI datasetsExport transcripts, comments, and video metadata for AI analysis, summaries, embeddings, and search.
Media researchSave traceable public YouTube records with source URLs and collection timestamps.

What Data Can You Scrape From YouTube?

Data typeExamples
Video detailsTitle, URL, video ID, description, duration, publish date, thumbnails
EngagementViews, likes when public, comments count, simple engagement rate
Channel detailsChannel name, handle, URL, subscriber count, description, location when public
Search resultsSearch query, result rank, video/channel/playlist result type
ShortsShorts URLs and Shorts discovered from search or channels
LivestreamsPublic live, upcoming, and past livestream metadata when available
PlaylistsPlaylist ID, playlist title, video order, playlist source URL
CommentsComment text, author name, likes, reply count, parent comment ID
SubtitlesPublic transcript text, language, subtitle type, timestamped segments
LinksPublic links from video and channel descriptions
ErrorsClear error rows for missing, unavailable, private, or blocked sources

How To Scrape YouTube Data

  1. Open the Actor in Apify Console.
  2. Add at least one source:
    • YouTube URL
    • Search query
    • Channel handle
    • Hashtag
  3. Choose a scraping mode, or leave it on auto.
  4. Set how many results you want.
  5. Turn on optional extras such as video details, channel details, comments, or subtitles only when you need them.
  6. Start the run.
  7. 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:

ErrorMeaning
NO_VALID_START_URLSNo valid YouTube source was provided
NO_RESULTSThe source returned no public results
VIDEO_UNAVAILABLEThe video is deleted, private, region-blocked, or otherwise unavailable
AGE_RESTRICTEDThe video or channel requires age verification or login
CHANNEL_DOES_NOT_EXISTThe channel could not be found
NO_COMMENTSNo public comments were found, or comments are disabled
NO_SUBTITLESNo public subtitles were found for the requested language
DATE_FILTER_TOO_STRICTThe date filter removed all matching results
BLOCKEDYouTube or the selected proxy blocked the page before results could be collected
PARSER_CHANGEDYouTube 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 maxResultsPerSource close to the default 25 until you know the source is useful.
  • Leave includeVideoDetails and includeChannelDetails off for broad discovery.
  • Turn on comments, replies, and subtitles only for selected videos.
  • Keep maxConcurrency near the default 2 for 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 maxResultsPerSource to 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: false and includeChannelDetails: false for 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.

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

ProblemLikely causeWhat to try
No resultsThe query is too narrow, filters are strict, or YouTube returned no public resultsIncrease limits, loosen filters, or try another source
Missing subtitlesThe video has no public captions in the requested languageTry another language or disable subtitle extraction
Missing commentsComments are disabled or unavailableTry another video or disable comment extraction
Slow runComments, replies, subtitles, or deep video details are enabledLower limits or disable expensive options
Channel URL times outYouTube was slow or blocked through the selected proxyTry the /videos channel tab, keep concurrency low, increase navigation timeout, or use a stronger proxy option if your Apify account supports it
Parser changed errorYouTube returned an unexpected page layout or an empty channel gridRetry with the latest build, keep Apify Proxy enabled, and try a direct /videos channel URL
Many retriesRate limiting, blocking, or network issuesLower concurrency and keep proxy enabled
Invalid source errorURL, handle, or hashtag is malformedCheck the input and run again

For Developers

You can run and test the Actor locally:

npm install
npm run typecheck
npm test -- --run
npm run lint
npm run build

Live smoke tests are available when browser and network access are intended:

$RUN_INTEGRATION=1 npm test -- --run test/integration