YouTube Search Results Scraper for SEO Data avatar

YouTube Search Results Scraper for SEO Data

Pricing

from $0.02 / 1,000 result extracteds

Go to Apify Store
YouTube Search Results Scraper for SEO Data

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

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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?

FieldDescription
querySearch keyword that produced the row
rankRank within that query
resultTypeVideo, channel, or playlist
titleVisible result title
urlPublic YouTube URL
videoIdVideo ID when available
channelIdChannel ID when available
playlistIdPlaylist ID when available
channelNameCreator or channel name
channelUrlPublic channel URL
publishedTimeTextVisible publish time text
durationTextVideo duration
viewCountTextVisible view count
subscriberCountTextVisible subscriber count for channel rows
videoCountTextVisible video count for channel or playlist rows
descriptionSnippetSearch result snippet
thumbnailUrlBest available thumbnail URL
scrapedAtISO 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

  1. Open the actor on Apify.
  2. Enter one or more YouTube search queries.
  3. Choose how many results to save per query.
  4. Optionally select only videos, channels, or playlists.
  5. Run the actor.
  6. 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 ApifyClient
client = 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 tutorial and summarize the top channels."
  • "Collect 50 video results for web scraping tutorial and 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.

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.