YouTube Search Results Scraper
Pricing
from $0.02 / 1,000 result extracteds
YouTube Search Results Scraper
Scrape public YouTube search results by keyword, including videos, channels, playlists, ranks, metadata, and URLs.
Pricing
from $0.02 / 1,000 result extracteds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
Scrape public YouTube search results by keyword and export structured video, channel, and playlist rows.
Use this actor to monitor YouTube rankings, discover creators, research competitor content, build prospect lists, and track what appears for important topics over time.
What does YouTube Search Results Scraper do?
YouTube Search Results Scraper turns YouTube search pages into a clean dataset.
It accepts one or more search queries and returns ranked public search results.
Each row includes the query, rank, result type, title, URL, IDs, channel information, visible counts, snippets, thumbnails, and scrape time.
The actor is designed for public search results only.
It does not require a YouTube login.
Who is it for?
- 📈 SEO teams tracking YouTube visibility for target keywords.
- 🎬 Content marketers researching topics, hooks, and competing videos.
- 🧑💼 Sales teams finding creators and channels in a niche.
- 🧪 Researchers collecting public search-result snapshots.
- 🧭 Agencies monitoring client and competitor rankings.
- 🛠️ Developers feeding YouTube discovery data into apps and dashboards.
Why use it?
YouTube search results change quickly.
Manual checks are slow, hard to repeat, and difficult to compare across keywords.
This actor gives you repeatable exports that can be scheduled, joined with other datasets, and analyzed in spreadsheets or BI tools.
What data can you extract?
| Field | Description |
|---|---|
query | Search keyword that produced the row |
rank | Rank within that query |
resultType | Video, channel, or playlist |
title | Visible result title |
url | Public YouTube URL |
videoId | Video ID when available |
channelId | Channel ID when available |
playlistId | Playlist ID when available |
channelName | Creator or channel name |
channelUrl | Public channel URL |
publishedTimeText | Visible publish time text |
durationText | Video duration |
viewCountText | Visible view count |
subscriberCountText | Visible subscriber count for channel rows |
videoCountText | Visible video count for channel or playlist rows |
descriptionSnippet | Search result snippet |
thumbnailUrl | Best available thumbnail URL |
scrapedAt | ISO timestamp of the scrape |
Pricing
This Actor uses Apify pay-per-event pricing. The prices below come from the current Actor pricing configuration. Apify public plans map to Store discount tiers, so the table shows both the user-facing plan context and the pricing tier name. The final price shown in Apify depends on the user account plan and any custom agreement.
| Event | What is charged | Price |
|---|---|---|
start | One-time fee charged when a run starts. Covers fixed startup cost (init, proxy warmup, first HTTP setup). | $0.005 |
| Event | What is charged | Free / no discount | Starter / Bronze | Scale / Silver | Business / Gold | Custom / Platinum | Custom / Diamond |
|---|---|---|---|---|---|---|---|
result | Charged per result extracted. | $0.0398 / 1,000 | $0.03461 / 1,000 | $0.02699 / 1,000 | $0.02076 / 1,000 | $0.01384 / 1,000 | $0.01 / 1,000 |
Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing. Check the Actor run and the Apify Pricing tab for the exact cost shown to your account.
How to scrape YouTube search results
- Open the actor on Apify.
- Enter one or more YouTube search queries.
- Choose how many results to save per query.
- Optionally select only videos, channels, or playlists.
- Run the actor.
- Download the dataset as JSON, CSV, Excel, XML, or RSS.
Input
The main input is queries.
Add each keyword or phrase as a separate row.
Set maxResultsPerQuery to control volume.
Use resultType when you only need videos, channels, or playlists.
Use the advanced sp field only if you know YouTube filter tokens and want to copy a filter from a YouTube search URL.
Example input
{"queries": ["apify web scraping","youtube data analysis"],"maxResultsPerQuery": 15,"resultType": "all","proxyConfiguration": {"useApifyProxy": true}}
Output
The actor saves results to the default dataset.
Each row is one public YouTube search result.
Ranks are assigned per query after your selected result-type filter is applied.
Example output
{"query": "apify web scraping","rank": 1,"resultType": "video","title": "Web scraping tutorial","url": "https://www.youtube.com/watch?v=example","videoId": "example","channelId": "UCexample","playlistId": null,"channelName": "Example Channel","channelUrl": "https://www.youtube.com/@example","publishedTimeText": "2 months ago","durationText": "12:34","viewCountText": "10K views","subscriberCountText": null,"videoCountText": null,"descriptionSnippet": "A visible search result snippet...","thumbnailUrl": "https://i.ytimg.com/vi/example/hq720.jpg","scrapedAt": "2026-06-16T00:00:00.000Z"}
Tips for better results
- Use exact phrases for brand and competitor monitoring.
- Run separate queries for each language or market term.
- Keep first runs small while validating your workflow.
- Schedule repeated runs to compare ranking changes over time.
- Export CSV for spreadsheet review.
- Export JSON when feeding data into an app.
Search filters
The actor supports a simple result type filter.
Choose all results, videos, channels, or playlists.
Advanced users can also provide a YouTube sp filter token copied from a YouTube URL.
If you do not know what sp means, leave it empty.
Proxy options
The actor can run with Apify Proxy.
Datacenter proxy is usually the cheapest first option.
Residential proxy should be used only if your run is blocked or returns fewer public results than expected.
Integrations
You can connect results to:
- Google Sheets for keyword monitoring.
- Airtable for creator research workflows.
- BI tools for rank tracking dashboards.
- CRM systems for channel prospecting.
- Data warehouses for longitudinal trend analysis.
- Webhooks for automated alerts when new results appear.
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/youtube-search-results-scraper').call({queries: ['apify web scraping'],maxResultsPerQuery: 15,resultType: 'all'});console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('fetch_cat/youtube-search-results-scraper').call(run_input={'queries': ['apify web scraping'],'maxResultsPerQuery': 15,'resultType': 'all',})print(run['defaultDatasetId'])
cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~youtube-search-results-scraper/runs?token=YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"queries":["apify web scraping"],"maxResultsPerQuery":15,"resultType":"all"}'
MCP usage
Use the Apify MCP server to run this actor from Claude tools.
MCP URL pattern:
https://mcp.apify.com/?tools=fetch_cat/youtube-search-results-scraper
Set up from Claude Code:
$claude mcp add apify-youtube-search https://mcp.apify.com/?tools=fetch_cat/youtube-search-results-scraper
Example MCP JSON configuration:
{"mcpServers": {"apify-youtube-search": {"url": "https://mcp.apify.com/?tools=fetch_cat/youtube-search-results-scraper"}}}
Example prompts:
- "Run the YouTube Search Results Scraper for
AI automation tutorialand summarize the top channels." - "Collect 50 video results for
web scraping tutorialand list recurring title patterns." - "Compare YouTube search results for two competitor brand terms."
Scheduling
Schedule the actor daily, weekly, or monthly to monitor ranking changes.
Use the same query list each time for consistent comparisons.
Store run timestamps with exported rows for trend analysis.
Data quality notes
YouTube can personalize, localize, or reorder public results.
The actor records the visible public text returned during the run.
Some fields are optional because YouTube displays different metadata for videos, channels, playlists, shorts, live streams, and upcoming premieres.
Limits
The actor focuses on search result pages.
It does not visit every video detail page.
It does not extract comments, transcripts, or full channel video catalogs.
Use related actors for those workflows.
FAQ
Can I scrape YouTube search results without logging in?
Yes. This actor is built for public YouTube search results that are visible without a YouTube account.
Can I filter to videos only?
Yes. Set resultType to videos to save only video rows.
Does it scrape comments or transcripts?
No. Use the related YouTube comments or transcript actors for those workflows.
Troubleshooting
Why did I get fewer results than requested?
YouTube may return fewer public results for a narrow query or for a selected result type.
Try a broader keyword or set resultType to all.
Why are some fields empty?
Not every YouTube result type displays the same metadata.
For example, channel rows may have subscriber text but no duration, while playlist rows may have video counts but no view count.
What if a run is blocked?
Enable Apify Proxy or switch proxy groups.
Keep the input small while testing proxy settings.
Legality
This actor extracts publicly visible YouTube search result information.
You are responsible for using the data lawfully and respecting applicable terms, privacy rules, and local regulations.
Do not use scraped data for spam, harassment, or unlawful profiling.
Related scrapers
- https://apify.com/fetch_cat/youtube-channel-videos-scraper
- https://apify.com/fetch_cat/youtube-comments-scraper
- https://apify.com/fetch_cat/youtube-transcript-scraper
Support
If a query returns unexpected results, include the actor run URL and the input you used when requesting help.
That makes it easier to reproduce and diagnose the issue.