Youtube Search Rank Tracker
Pricing
from $2.40 / 1,000 rank results
Youtube Search Rank Tracker
YouTube Search Results Scraper (Rank Tracker) captures YouTube SERP rankings for keywords and outputs rank (1..N) with video/channel metadata. Supports pagination, region + language + device mode, optional Shorts inclusion, and stable snapshots for daily/weekly SEO + competitor tracking.
Pricing
from $2.40 / 1,000 rank results
Rating
0.0
(0)
Developer

Delowar Munna
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
YouTube Search Results Scraper (Rank Tracker)
Capture YouTube search rankings for keywords — rank positions, video metadata, region + language. Repeatable snapshots for YouTube SEO, competitor tracking, and brand monitoring.

Key Features
- Rank-First Schema: Accurate rank order (1..N) per query with page + section tagging
- Localization: 50 regions + 22 languages for geo-specific rank tracking
- Pagination: Up to 10 pages per query with stable rank continuation
- Shorts Detection: Heuristic identification of YouTube Shorts in search results
- HTTP-First: Fast, lightweight extraction — no browser overhead
- Partial Failure Handling: Individual query failures don't abort the entire run
- Run Summary: Per-query stats stored in key-value store for monitoring
- Pay-Per-Result: Only pay for rank results you get
Best for: YouTube creators, SEO agencies, brands, tool builders, and researchers tracking search rankings
At a Glance
| Feature | Value |
|---|---|
| Architecture | HTTP extraction (ytInitialData parsing) |
| Speed | ~1-2s per query page |
| Output Fields | 23 structured fields per result |
| Concurrency | Default 5, up to 20 |
| Docker Image | apify/actor-node:22 (lightweight) |
| Proxy Required | No (optional for high-volume) |
How It Works
- Enter Keywords — Provide search queries (e.g., "AI automation tools", "Claude Code")
- Fetch Search Pages — HTTP request to YouTube with region/language params
- Parse Results — Extract ytInitialData JSON embedded in HTML
- Preserve Rank Order — Number results sequentially across pages
- Detect Shorts — Heuristic tagging of Shorts results
- Export Dataset — Structured ranked results ready for analysis
Output
Table View

JSON View
{"retrievedAt": "2026-03-09T02:38:01.297Z","query": "Claude Code","regionCode": "US","language": "en","deviceMode": "desktop","page": 1,"rank": 1,"resultType": "video","videoId": "TUKYbUIXLOE","videoUrl": "https://www.youtube.com/watch?v=TUKYbUIXLOE","title": "The 6 Levels of Claude Code (You're Stuck at Level 3)","channelId": "UCoy6cTJ7Tg0dqS-DI-_REsA","channelTitle": "Chase AI","channelHandle": "@Chase-H-AI","publishedAt": "4 hours ago","durationText": "32:36","viewCountText": "3,747 views","isShorts": false,"badges": ["New","4K"],"snippet": "Master Claude Code, Build Your Agency, Land Your First Client...","thumbnailUrl": "https://i.ytimg.com/vi/TUKYbUIXLOE/hq720_custom_3.jpg?sqp=...","positionInSection": "main_results","runId": "UiezTCsC5M3FBb2tm"}
Output Schema (23 Fields)
| Field | Type | Description |
|---|---|---|
| retrievedAt | String | ISO 8601 timestamp of extraction |
| query | String | Original search query |
| regionCode | String | Region code used for this search |
| language | String | Language code used for this search |
| deviceMode | String | Device mode (desktop or mobile) |
| page | Integer | Page number (1-based) |
| rank | Integer | Rank position (1-based, sequential across pages) |
| resultType | String | Result type: video, channel, or error |
| videoId | String | YouTube video ID |
| videoUrl | String | Full YouTube video URL |
| title | String | Title of the result |
| channelId | String | Channel ID |
| channelTitle | String | Channel display name |
| channelHandle | String | Channel @handle |
| publishedAt | String | Relative publish time (e.g., "4 hours ago") |
| durationText | String | Human readable duration (e.g., "32:36") |
| viewCountText | String | Human readable view count (e.g., "3,747 views") |
| isShorts | Boolean | Whether this is a YouTube Shorts video |
| badges | Array | Badges like New, 4K, LIVE |
| snippet | String | Short description snippet |
| thumbnailUrl | String | Best available thumbnail URL |
| positionInSection | String | Section: main_results, shorts_shelf, people_also_watch |
| runId | String | Apify run ID for lineage tracking |
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| queries | Array | [] | Keywords to track rankings for (required) |
| maxResultsPerQuery | Integer | 50 | Max results per query (1-500) |
| maxPages | Integer | 1 | Pages to paginate per query (1-10) |
| regionCode | String | "US" | ISO-3166-1 country code (50 countries) |
| language | String | "en" | UI language code (22 languages) |
| safeSearch | String | "moderate" | Safe search: none, moderate, strict |
| includeShorts | Boolean | true | Include Shorts results when present |
| sortBy | String | "relevance" | Sort: relevance, upload_date, view_count, rating |
| deviceMode | String | "desktop" | Desktop or mobile simulation |
| maxConcurrency | Integer | 5 | Parallel query fetches (1-20) |
| useProxy | Boolean | false | Use Apify residential proxy |
| proxyCountryCode | String | "" | Proxy exit country (e.g., "US", "GB") |
| minDelayMs | Integer | 0 | Delay between page fetches (ms) |
| maxRetries | Integer | 3 | Retries per request |
| requestTimeoutSecs | Integer | 30 | Timeout per HTTP request (seconds) |
| debug | Boolean | false | Verbose logging |
Quick Start
Example 1: Simple Rank Snapshot
Track rankings for a single keyword in the US.
{"queries": ["AI automation tools"],"maxResultsPerQuery": 50,"maxPages": 1,"regionCode": "US","language": "en","includeShorts": true,"sortBy": "relevance","deviceMode": "desktop","maxConcurrency": 5,"useProxy": false,"maxRetries": 3,"requestTimeoutSecs": 30}
Example 2: Multi-Keyword Competitor Tracking
Track multiple keywords to compare search rankings across competitors.
{"queries": ["Codex", "Claude Code", "Gemini"],"maxResultsPerQuery": 50,"maxPages": 1,"regionCode": "US","language": "en","includeShorts": true,"sortBy": "relevance","deviceMode": "desktop","maxConcurrency": 5,"useProxy": false,"maxRetries": 3,"requestTimeoutSecs": 30}
Example 3: High Volume with Proxy
Track many keywords with pagination. Use proxy for reliability.
{"queries": ["shopify dropshipping", "email marketing", "fitness workout", "meal prep"],"regionCode": "US","language": "en","maxPages": 3,"maxResultsPerQuery": 150,"includeShorts": true,"useProxy": true,"maxConcurrency": 10,"minDelayMs": 250}
Performance
| Workload | Estimated Time |
|---|---|
| 5 queries x 1 page | under 1 minute |
| 25 queries x 1 page | 2-5 minutes |
| 10 queries x 3 pages | 3-8 minutes |
Architecture
- HTTP-First: Parses
ytInitialDataembedded in YouTube search page HTML — no headless browser needed - Continuation API: Pagination via YouTube InnerTube API with continuation tokens
- Exponential Backoff: Smart retry on 429 / 5xx / transient errors (2s -> 4s -> 8s -> 16s -> 30s max)
- Resource Efficient: Lightweight Node.js 22 image, no Chrome/Puppeteer overhead
- Consent Handling: Automatic cookie-based bypass for YouTube consent pages
Pricing
Pay-per-result model — you only pay for results extracted.
| Event | Trigger | Count |
|---|---|---|
rank-result | Each ranked result in dataset | 1 per result |
Proxy costs (if enabled) are billed to your Apify account separately.
Use Cases
YouTube SEO
Track where your videos rank for target keywords. Monitor rank changes after publishing new content or optimizing metadata.
Competitor Tracking
Identify which competitors dominate search for key terms. Build weekly rank snapshots for client reporting and benchmarking.
Brand Monitoring
Monitor brand visibility across YouTube search. Detect when new competitors appear in your keyword space.
Tool Builders / SaaS
Build rank tracking dashboards and alerting systems. Integrate via Apify API for automated daily/weekly workflows.
Research
Study YouTube SERP composition, content clustering by query, and algorithm shifts across regions and languages.
Best Practices
- Start small — Test with 1-2 queries and
maxResultsPerQuery: 20to verify results before scaling up - Use specific keywords — "AI automation tools 2026" gives more targeted results than "AI"
- Enable proxy for volume — Recommended for 50+ queries per run or frequent scheduled runs
- Use pagination wisely — Each page adds ~20 results; 3 pages gives ~60 results per query
- Schedule runs — Use Apify scheduling for daily/weekly rank snapshots to track trends
- Export strategically — CSV for spreadsheets, JSON for programmatic access, Excel for reporting
Data Export
Supported formats (via Apify platform):
- JSON
- CSV
- Excel
- HTML
Compliance
- Extracts only publicly available YouTube search result data
- HTTP-first approach — no login or CAPTCHA bypass
- Respects rate limits with exponential backoff
- Intended for legitimate SEO research, competitive analysis, and rank monitoring
- Users are responsible for compliance with applicable laws in their jurisdiction
Support
- Issues: Report via GitHub or Apify support
- Feature requests: Open an issue with your use case
Built by Coregent Digital Studio — Production-ready YouTube rank tracking