YouTube Search Scraper - Videos & Shorts
Pricing
from $2.00 / 1,000 youtube discovery results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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
postIdvalues. - ๐ 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, andpageRank. - ๐งช 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 group | Example fields |
|---|---|
| ๐ Query context | rootQuery, query, querySource, pageIndex, pageRank |
| ๐ Video identity | postUrl, postId, postType, isShort |
| ๐งพ Video metadata | title, description, publishedAt, thumbnailUrl, videoDurationSeconds |
| ๐ค Channel details | channelId, channelHandle, channelName, channelUrl, channelVerified |
| ๐ Post metrics | views, likes, comments, postMetricStatus |
| ๐ฅ Channel metrics | channelSubscribersCount, channelMetricStatus |
| ๐ฆ Row status | status, 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 case | How YouTube search data helps |
|---|---|
| ๐ฅ Concept research | Find videos and Shorts ranking for a topic before deciding what to analyze next. |
| ๐ Trend discovery | Compare topics by visible videos, views, comments, and channel context. |
| ๐งโ๐จ Creator discovery | Build lists of creators publishing around a niche or keyword family. |
| ๐ต๏ธ Competitor monitoring | See what content appears for competitor, category, or product keywords. |
| ๐งฑ Data pipeline seeding | Feed discovered URLs into downstream metrics, databases, or review workflows. |
| ๐งญ SEO and content planning | Study 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?
- Create or log in to your Apify account.
- Open YouTube Search Scraper.
- Enter one or more YouTube search queries.
- Set the maximum number of unique videos to collect.
- Choose whether to include Shorts.
- Optionally enable YouTube suggestion expansion for broader topic discovery.
- Click Start.
- Open the Output tab to inspect the dataset and run summary.
- 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
| Option | What it does |
|---|---|
queries | YouTube keyword queries to search. |
maxResults | Maximum unique videos or Shorts to save across the whole run. |
resultsPerQuery | Per-query saved-row cap for sequential mode. |
maxPagesPerQuery | Maximum YouTube search continuation pages to attempt for each query. |
searchDistribution | balanced rotates across queries; sequential fills from earlier queries first. |
includeShorts | Include Shorts-style search results when YouTube exposes them. |
enableQueryExpansion | Add native YouTube autocomplete suggestions as additional searches. |
enrichWithVideoMetrics | Fetch each saved video/Short as a second stage to fill richer public metrics. |
enrichMissingChannelFields | When video metrics are off, optionally fetch lightweight details for missing channel/duration fields. |
maxChannelEnrichmentRequests | Cap 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:
inputmeans the query was entered directly by the user.youtube_suggestmeans 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.