YouTube Search Results Scraper for SEO Data
Pricing
from $0.02 / 1,000 result extracteds
YouTube Search Results Scraper for SEO Data
Export ranked public YouTube search results by keyword, including videos, channels, playlists, URLs, snippets, thumbnails, and visible metadata.
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
2 days ago
Last modified
Categories
Share
Export ranked public YouTube search results by keyword, including videos, channels, playlists, URLs, snippets, thumbnails, and visible metadata.
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 |
How much does it cost to scrape YouTube search results?
The actor uses pay-per-event pricing.
You pay a small $0.005 run start fee and then a per-result fee for saved search results.
The BRONZE per-result price is $0.000034608, or about $0.034608 per 1,000 saved results before platform discounts and tier changes.
Small tests with 10-25 results are inexpensive.
Large monitoring jobs can lower the effective price through volume tiers.
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."
Track YouTube search rankings by keyword
Use this actor to collect repeatable public YouTube search snapshots for brand, competitor, and topic keywords. Each result includes the query, rank, result type, URL, title, thumbnail, and visible metadata so SEO teams can compare ranking changes over time without claiming fixed or official positions.
Find YouTube videos, channels, and playlists for research
Set resultType to videos, channels, playlists, or all results to match the discovery job. Export content ideas, creator prospects, playlist collections, and public YouTube SERP data for market research, sales lists, or editorial planning.
YouTube Search Results API, MCP, and scheduled monitoring
Run searches from the Console, Apify API, SDKs, schedules, or Apify MCP. Scheduled snapshots help automate keyword monitoring, while API and MCP access let AI agents and dashboards request fresh YouTube search results on demand.
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 use this as a YouTube search API?
Yes. Run the actor through the Apify API, SDKs, schedules, or MCP and export ranked public search results from the dataset.
Can I track YouTube SEO rankings over time?
Yes. Schedule repeated runs for the same keyword list and compare query, rank, resultType, and URL fields. YouTube results can vary, so treat the data as public snapshots.
Can I return only videos, channels, or playlists?
Yes. Set resultType to videos, channels, playlists, or all results depending on your research workflow.
Does this require a YouTube login or API key?
No. The actor is designed for public YouTube search pages visible without login.
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
- YouTube Channel Videos Scraper
- YouTube Video Details Scraper
- YouTube Playlist Videos Scraper
- YouTube Transcript Scraper
- YouTube Comments Scraper
Changelog
0.1
Initial version for public YouTube search results.
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.