YouTube Search & Video Metrics [Only $0.9๐Ÿ’ฐ] Scraper avatar

YouTube Search & Video Metrics [Only $0.9๐Ÿ’ฐ] Scraper

Under maintenance

Pricing

from $0.90 / 1,000 results

Go to Apify Store
YouTube Search & Video Metrics [Only $0.9๐Ÿ’ฐ] Scraper

YouTube Search & Video Metrics [Only $0.9๐Ÿ’ฐ] Scraper

Under maintenance

Scrape YouTube search results without login or API key. Metrics mode returns flat analytics rows โ€” parsed views, duration, channel, publish age โ€” per video, with free title/age filters (filtered videos never charged). Schedule it for keyword monitoring. JSON or CSV.

Pricing

from $0.90 / 1,000 results

Rating

5.0

(2)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

5

Bookmarked

155

Total users

3

Monthly active users

4 days ago

Last modified

Categories

Share

YouTube Search & Video Metrics Scraper

Turn any YouTube search into structured video data โ€” no login, no API key, no quota. Paste search URLs or plain keywords and get video titles, channels, view counts, durations, publish age, and thumbnails as JSON or CSV.

Metrics mode returns one flat, analytics-ready row per video (parsed views number, durationSeconds, publishedAgeDays, isLive) and skips YouTube's non-video junk (shelves, ads, channel cards) โ€” so you only pay for actual videos. Combine with the free title and age filters and a schedule, and it becomes a keyword-monitoring pipeline.

Features

  • Metrics mode: flat analytics rows โ€” parsed view counts, duration in seconds, publish age in days, live-stream flag, originating query, checkedAt timestamp.
  • Free result filters: titleMustInclude, titleExclude, and maxAgeDays run BEFORE billing โ€” filtered videos are never charged.
  • Junk-row protection: in metrics mode, shelves/ads/channel cards are skipped, not billed.
  • RUN_SUMMARY diagnostics: every run writes pages parsed, items seen, junk skipped, and per-filter drop counts โ€” "why did I get fewer videos?" is answered by the run itself.
  • Flexible input: YouTube search URLs or plain keywords/search terms.
  • Raw mode (default): the full YouTube renderer object per result, for consumers that want everything.
  • Proxy support and concurrency control.

Metrics mode โ€” YouTube keyword tracking

Set "metricsMode": true:

{
"videoId": "1nVGaNbvuXg",
"url": "https://www.youtube.com/watch?v=1nVGaNbvuXg",
"title": "How I'd Learn Data Engineering in 2026 From Zero to Senior",
"channelName": "Data with Baraa",
"channelUrl": "https://www.youtube.com/@DataWithBaraa",
"views": 166861,
"viewsText": "166,861 views",
"publishedTimeText": "5 months ago",
"publishedAgeDays": 150,
"durationText": "32:59",
"durationSeconds": 1979,
"isLive": false,
"query": "data engineering",
"position": 1,
"checkedAt": "2026-07-08T09:59:20.000Z"
}

Typical setups:

  • Keyword monitoring: schedule the same queries with maxAgeDays: 7 โ€” each run returns only fresh uploads for your niche.
  • Competitor tracking: query competitor brand names, sort the dataset by views.
  • Content research: titleMustInclude / titleExclude shape the result set before you pay for a single row.

How to Use

  1. Set Up: Ensure you have an Apify account and access to the Apify platform.
  2. Configure Input: Set the YouTube search URL(s) or keyword(s) you want to scrape results for (see Input Data section).
  3. (Optional) Adjust additional parameters like maxItems, concurrency, and proxy settings.
  4. Run the Scraper: Execute the scraper on the Apify platform.
  5. Data Collection: The scraper will output data in your chosen format, which can include JSON, CSV, or others as supported by Apify.

Input Configuration

Here's an example of how to set up the input for the YouTube Search Results Scraper:

{
"startUrls": [
"music",
"https://www.youtube.com/results?search_query=medical"
],
"maxItems": 100,
"maxConcurrency": 10,
"minConcurrency": 1,
"maxRequestRetries": 3,
"proxy": {
"useApifyProxy": true,
"apifyProxyGroups": [
"RESIDENTIAL"
],
"apifyProxyCountry": "US"
}
}

Input Fields Explanation

  • startUrls: Array of YouTube search URLs or keywords/search terms.
  • metricsMode: Output one flat analytics row per video instead of the raw renderer object (default: false).
  • titleMustInclude: Keep only videos whose title contains at least one of these terms โ€” free, never charged (default: []).
  • titleExclude: Drop videos whose title contains any of these terms โ€” free (default: []).
  • maxAgeDays: Drop videos older than N days; 0 disables the age filter โ€” free (default: 0).
  • maxItems: Maximum number of search result items to scrape (default: 100).
  • maxConcurrency: Maximum number of pages processed simultaneously (default: 10).
  • minConcurrency: Minimum number of pages processed simultaneously (default: 1).
  • maxRequestRetries: Number of retries for failed requests (default: 3).
  • proxy: Proxy configuration for enhanced scraping reliability.

Output Structure

The output data includes detailed information about each search result item. The structure can vary depending on the type of result (video, playlist, channel, etc.). Here's a more comprehensive breakdown of the output structure, focusing on a playlist item:

{
"radioRenderer": {
"playlistId": "RDQMsHhx03c4Dwk",
"title": {
"simpleText": "Mix - Music"
},
"thumbnail": {
"thumbnails": [
{
"url": "https://i.ytimg.com/vi/859u6uiZdds/hqdefault.jpg?sqp=-oaymwEWCKgBEF5IWvKriqkDCQgBFQAAiEIYAQ==&rs=AOn4CLAEZ8uHdyBRjh16O5H9eUfB5hTotQ",
"width": 168,
"height": 94
},
// ... more thumbnail sizes ...
],
"sampledThumbnailColor": {
"red": 89,
"green": 66,
"blue": 53
}
},
"videoCountText": {
"runs": [
{
"text": "50+ videos"
}
]
},
"navigationEndpoint": {
"clickTrackingParams": "CLcDELs3GAAiEwj558GAhd6IAxVIcA8CHV5aOmUyBnNlYXJjaA==",
"commandMetadata": {
"webCommandMetadata": {
"url": "/watch?v=859u6uiZdds&list=RDQMsHhx03c4Dwk&start_radio=1",
"webPageType": "WEB_PAGE_TYPE_WATCH",
"rootVe": 3832
}
},
"watchEndpoint": {
"videoId": "859u6uiZdds",
"playlistId": "RDQMsHhx03c4Dwk",
"params": "OALAAQE%3D",
"continuePlayback": true,
"loggingContext": {
"vssLoggingContext": {
"serializedContextData": "Gg9SRFFNc0hoeDAzYzREd2s%3D"
}
}
}
},
"videos": [
{
"childVideoRenderer": {
"title": {
"simpleText": "Tujamo - Down (Official Music Video)"
},
"lengthText": {
"accessibility": {
"accessibilityData": {
"label": "3 minutes, 15 seconds"
}
},
"simpleText": "3:15"
},
"videoId": "859u6uiZdds"
}
},
// ... more videos ...
],
"longBylineText": {
"simpleText": "C. Tangana, ร–wnboss, ELYAZ, and more"
},
"thumbnailOverlays": [
{
"thumbnailOverlayBottomPanelRenderer": {
"text": {
"simpleText": "Mix"
},
"icon": {
"iconType": "MIX"
}
}
},
// ... more overlays ...
]
}
}

Field Explanations

  • radioRenderer: Contains information about a YouTube Mix playlist.
    • playlistId: Unique identifier for the playlist.
    • title: Title of the playlist.
      • simpleText: Plain text of the title.
    • thumbnail: Information about the playlist's thumbnail image.
      • thumbnails: Array of thumbnail objects with different sizes.
        • url: URL of the thumbnail image.
        • width: Width of the thumbnail in pixels.
        • height: Height of the thumbnail in pixels.
      • sampledThumbnailColor: Average color of the thumbnail, useful for UI design.
    • videoCountText: Indicates the number of videos in the playlist.
    • navigationEndpoint: Contains data for navigating to the playlist.
      • clickTrackingParams: Used by YouTube for analytics.
      • commandMetadata: Metadata for the navigation action.
      • watchEndpoint: Specific data for starting playback.
        • videoId: ID of the first video in the playlist.
        • playlistId: ID of the playlist to be played.
        • params: Additional parameters for playback.
    • videos: Array of video objects in the playlist.
      • childVideoRenderer: Contains information about each video.
        • title: Title of the video.
        • lengthText: Duration of the video.
          • accessibility: Accessible version of the duration.
          • simpleText: Formatted duration string.
        • videoId: Unique identifier for the video.
    • longBylineText: Description of the playlist content, often listing featured artists.
    • thumbnailOverlays: Array of overlay information displayed on the thumbnail.
      • thumbnailOverlayBottomPanelRenderer: Information for the bottom panel overlay.
        • text: Text displayed in the overlay.
        • icon: Icon type used in the overlay.

This structure provides a comprehensive view of a playlist item in YouTube search results. It includes details about the playlist itself, its thumbnail, navigation data, and information about the videos contained within the playlist. The actual output may include additional fields or vary slightly depending on the specific type of search result (e.g., individual videos, channels, or other content types).

Support

Additional Services

FAQ

Do I need a YouTube API key or account?

No. The actor reads YouTube's public search surface โ€” no login, no API key, no Google quota.

What's the difference between metrics mode and the default output?

Default output is YouTube's raw renderer object per result โ€” every field YouTube sends, for developers who want it all. Metrics mode outputs one flat row per video with parsed numbers (views, duration in seconds, publish age in days) โ€” for spreadsheets, dashboards, and scheduled keyword tracking. Metrics mode also skips non-video results (shelves, ads, channel cards), so you only pay for videos.

Are the filters really free?

Yes. titleMustInclude, titleExclude, and maxAgeDays run before rows are saved, so filtered videos are never charged.

Why did I get fewer videos than maxItems?

Check the RUN_SUMMARY record in the run's key-value store โ€” it reports pages parsed, items seen, junk skipped, and how many videos each filter dropped.

How accurate is publishedAgeDays?

It's derived from YouTube's relative label ("3 weeks ago"), so it's approximate โ€” precise enough for freshness filtering, not for exact timestamps.


โš ๏ธ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by YouTube or Google LLC or any of their subsidiaries. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available YouTube search pages โ€” no authenticated endpoints, paid features, or content behind a login. Users are responsible for ensuring their use complies with YouTube's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization.


SEO Keywords

youtube search scraper, youtube scraper, scrape youtube search results, youtube video metrics, youtube keyword tracker, youtube analytics data, youtube view count scraper, youtube trends data, youtube API alternative, youtube data extraction, video research tool, content research scraper, competitor youtube analysis, youtube monitoring tool, youtube search API, Apify youtube, video marketing data, youtube channel data, keyword research youtube, fresh video alerts