YouTube Search Scraper - Videos & Shorts avatar

YouTube Search Scraper - Videos & Shorts

Pricing

from $2.00 / 1,000 youtube discovery results

Go to Apify Store
YouTube Search Scraper - Videos & Shorts

YouTube Search Scraper - Videos & Shorts

Scrape YouTube search results by keyword. Discover videos and Shorts, then export URLs, video IDs, titles, channels, thumbnails, parsed views, durations, and metric status. No YouTube API key required.

Pricing

from $2.00 / 1,000 youtube discovery results

Rating

0.0

(0)

Developer

Chronometrica

Chronometrica

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

YouTube Search Scraper

๐Ÿ”Ž What does YouTube Search Scraper do?

YouTube Search Scraper finds public YouTube videos and Shorts from keyword searches, then exports clean discovery rows with video URLs, YouTube IDs, titles, descriptions, publish dates, thumbnails, channel identity, views, likes, comments, subscriber context, durations, and query provenance.

Use it for content research, concept discovery, creator discovery, competitor research, SEO research, social listening, trend analysis, and lead generation workflows where you need a list of relevant YouTube videos or Shorts before doing deeper analysis.

With YouTube Search Scraper, you can:

  • ๐Ÿ” Search YouTube by one keyword or many keywords.
  • ๐ŸŽฌ Discover both regular YouTube videos and Shorts.
  • ๐Ÿ“Ž Export canonical YouTube URLs and stable postId values.
  • ๐Ÿ“Š Collect public views, likes, comments, durations, and metric status when YouTube exposes them.
  • ๐Ÿ‘ค Get channel IDs, handles, names, URLs, verification, and subscriber counts when available publicly.
  • ๐Ÿงญ Preserve query context with rootQuery, query, querySource, pageIndex, and pageRank.
  • ๐Ÿงช Run broad concept panels with balanced distribution across query families.
  • ๐Ÿ“ฆ Download results as JSON, JSONL, CSV, Excel, XML, RSS, or HTML.

This Actor uses logged-out public YouTube surfaces. It does not use search engines, YouTube API keys, user cookies, logged-in accounts, private analytics, YouTube Studio, transcript scraping, comment text scraping, or video downloads.

โœจ What You Get

Each dataset row represents one discovered public YouTube video or Short.

Data groupExample fields
๐Ÿ” Query contextrootQuery, query, querySource, pageIndex, pageRank
๐Ÿ”— Video identitypostUrl, postId, postType, isShort
๐Ÿงพ Video metadatatitle, description, publishedAt, thumbnailUrl, videoDurationSeconds
๐Ÿ‘ค Channel detailschannelId, channelHandle, channelName, channelUrl, channelVerified
๐Ÿ“Š Post metricsviews, likes, comments, postMetricStatus
๐Ÿ‘ฅ Channel metricschannelSubscribersCount, channelMetricStatus
๐Ÿšฆ Row statusstatus, statusReason, observedAt

Metric availability depends on what YouTube exposes publicly for each result at run time. Missing counts stay missing; they are not guessed and they are not replaced with fake zeroes.

Rows are streamed to the dataset as soon as they are terminal: search discovery, dedupe, metadata fill, and public metric enrichment have finished for that row.

โš™๏ธ Can I use this Actor through an API?

Yes. You can run YouTube Search Scraper manually in Apify Console or use it through:

  • Apify API
  • Python SDK
  • Node.js SDK
  • Webhooks
  • Scheduled runs
  • Apify integrations

This makes it useful for research pipelines, creator databases, trend monitors, content intelligence dashboards, enrichment queues, and automated market research workflows.

๐ŸŽฏ Why scrape YouTube search results?

YouTube search results show what videos and Shorts YouTube currently surfaces for a topic. This is useful when you need to understand which concepts, formats, creators, keywords, and content angles are visible in a market.

Use caseHow YouTube search data helps
๐Ÿ”ฅ Concept researchFind videos and Shorts ranking for a topic before deciding what to analyze next.
๐Ÿ“ˆ Trend discoveryCompare topics by visible videos, views, comments, and channel context.
๐Ÿง‘โ€๐ŸŽจ Creator discoveryBuild lists of creators publishing around a niche or keyword family.
๐Ÿ•ต๏ธ Competitor monitoringSee what content appears for competitor, category, or product keywords.
๐Ÿงฑ Data pipeline seedingFeed discovered URLs into downstream metrics, databases, or review workflows.
๐Ÿงญ SEO and content planningStudy titles, descriptions, ranks, Shorts mix, and topic language.

๐Ÿ’ต Pricing Event

YouTube Search Scraper uses pay-per-result pricing. One result means one unique YouTube video or Short row written to the default dataset.

Use maxResults to control result volume before a run. Start with 10 to 25 results when testing a keyword, then increase the cap for broader concept research.

๐Ÿš€ How do I use YouTube Search Scraper?

  1. Create or log in to your Apify account.
  2. Open YouTube Search Scraper.
  3. Enter one or more YouTube search queries.
  4. Set the maximum number of unique videos to collect.
  5. Choose whether to include Shorts.
  6. Optionally enable YouTube suggestion expansion for broader topic discovery.
  7. Click Start.
  8. Open the Output tab to inspect the dataset and run summary.
  9. Download your data in JSON, JSONL, CSV, Excel, XML, RSS, or HTML.

โฌ‡๏ธ Input

The main input is queries. Enter one or more YouTube keyword searches.

{
"queries": ["ai tools for small business"],
"maxResults": 25,
"searchDistribution": "balanced",
"includeShorts": true,
"enableQueryExpansion": false
}

For broader concept discovery, enter multiple related queries:

{
"queries": [
"ai tools for small business",
"small business marketing ideas",
"ugc ad examples",
"productivity tools for entrepreneurs"
],
"maxResults": 100,
"maxPagesPerQuery": 3,
"searchDistribution": "balanced",
"includeShorts": true,
"enableQueryExpansion": true
}

For low-cost URL discovery before passing results to a transcript actor, disable both enrichment stages:

{
"queries": ["ai news", "machine learning tutorial", "creator economy"],
"maxResults": 120,
"searchDistribution": "balanced",
"includeShorts": true,
"enableQueryExpansion": false,
"enrichWithVideoMetrics": false,
"enrichMissingChannelFields": false
}

๐ŸŽ›๏ธ Settings

OptionWhat it does
queriesYouTube keyword queries to search.
maxResultsMaximum unique videos or Shorts to save across the whole run.
resultsPerQueryPer-query saved-row cap for sequential mode.
maxPagesPerQueryMaximum YouTube search continuation pages to attempt for each query.
searchDistributionbalanced rotates across queries; sequential fills from earlier queries first.
includeShortsInclude Shorts-style search results when YouTube exposes them.
enableQueryExpansionAdd native YouTube autocomplete suggestions as additional searches.
enrichWithVideoMetricsFetch each saved video/Short as a second stage to fill richer public metrics.
enrichMissingChannelFieldsWhen video metrics are off, optionally fetch lightweight details for missing channel/duration fields.
maxChannelEnrichmentRequestsCap lightweight detail requests when video metrics are off.

Balanced mode is best for broad concept panels because it gives each query a turn before going deeper. Sequential mode is best when earlier queries should take priority.

โฌ†๏ธ Output sample

Results are stored in the default dataset. Each result is one discovered YouTube video or Short.

{
"platform": "youtube",
"rootQuery": "ai tools for small business",
"query": "ai tools for small business",
"querySource": "input",
"pageIndex": 0,
"pageRank": 1,
"postUrl": "https://www.youtube.com/watch?v=-y4swMaeJeI",
"postId": "-y4swMaeJeI",
"postType": "video",
"isShort": false,
"title": "AI Tools for Small Business - 7 Ways Small Business Can Use AI Today",
"description": "Learn practical ways small businesses can use AI tools today...",
"publishedAt": "2024-03-26T07:00:00-07:00",
"thumbnailUrl": "https://i.ytimg.com/vi/-y4swMaeJeI/hq720.jpg",
"videoDurationSeconds": 778,
"channelId": "UCd2J-PizcFDxWHBBfRkp38Q",
"channelHandle": "@PhilipVanDusen",
"channelName": "Philip VanDusen",
"channelUrl": "https://www.youtube.com/@PhilipVanDusen",
"channelVerified": true,
"views": 232202,
"likes": 3800,
"comments": 179,
"postMetricStatus": [
{
"metric": "views",
"status": "present",
"precision": "exact"
},
{
"metric": "duration",
"status": "present",
"precision": "exact"
},
{
"metric": "likes",
"status": "present",
"precision": "exact"
},
{
"metric": "comments",
"status": "present",
"precision": "exact"
}
],
"channelSubscribersCount": 310000,
"channelMetricStatus": [
{
"metric": "channelSubscribersCount",
"status": "present",
"precision": "exact"
}
],
"status": "ok",
"statusReason": null,
"observedAt": "2026-07-01T21:50:45.735Z"
}

๐Ÿงญ Query fields explained

rootQuery is the original query you entered.

query is the exact query searched on YouTube. When query expansion is off, query usually matches rootQuery. When expansion is on, query may be a YouTube-suggested related search.

querySource explains where the searched query came from:

  • input means the query was entered directly by the user.
  • youtube_suggest means the query came from native YouTube autocomplete expansion.

๐Ÿงพ Run Summary

The OUTPUT key-value-store record includes:

  • urls: discovered YouTube video and Short URLs;
  • candidate, duplicate, page, and stop-reason counters;
  • per-query accounting;
  • query expansion accounting;
  • metric enrichment accounting;
  • field coverage for public metrics and channel context.

If no videos are found, the Actor does not fail the run. It returns a successful run summary with status: "no_results" and a statusReason explaining the outcome.

๐Ÿ”’ Source Boundary

YouTube Search Scraper uses logged-out public YouTube web surfaces only.

It does not use:

  • YouTube API keys;
  • user cookies;
  • private sessions;
  • logged-in account automation;
  • search engines;
  • YouTube Studio analytics;
  • challenge solving;
  • video downloads;
  • transcript scraping;
  • comment text scraping.

โš ๏ธ Limits and interpretation

YouTube search ranking and result availability are live public YouTube behavior and can change between runs.

maxResults is a saved-row cap, not a guarantee that YouTube has that many public candidates for every query. Narrow queries may source-exhaust below the requested cap.

Query expansion can broaden intent. Use rootQuery, query, and querySource to decide which rows to keep downstream.

Public counts can be exact, rounded, hidden, delayed, or unavailable depending on the video, channel, and public YouTube surface. Check postMetricStatus and channelMetricStatus when metric precision matters.

โ“ FAQ

Does this Actor need a YouTube API key?

No. It uses public YouTube web surfaces and does not require a YouTube API key.

Does this Actor scrape private YouTube data?

No. It only returns data available from logged-out public YouTube surfaces.

Does this Actor download videos or scrape transcripts?

No. It discovers videos and Shorts and returns public metadata and metrics.

What happens when no videos are found?

The run succeeds and the summary reports status: "no_results" with a statusReason. Empty search results are treated as a data outcome, not a run failure.