# YouTube Search Scraper

**Use case:** 

Scrape YouTube search results into structured data: video and channel metadata, ranked by breakout momentum. No API key, JSON or CSV output.

## Input

```json
{
  "mode": "search",
  "channels": [],
  "maxRecentVideosPerChannel": 50,
  "includeShortsInVideoList": true,
  "includeTranscripts": false,
  "videos": [],
  "enrichChannel": true,
  "includeTranscript": false,
  "includeCommentsSample": false,
  "commentsSamplePerVideo": 0,
  "playlists": [],
  "maxVideosPerPlaylist": 100,
  "searchQuery": "AI coding tutorials",
  "videoType": "any",
  "country": "US",
  "language": "en",
  "dateRange": "any",
  "uploadOrder": "relevance",
  "rankBy": "breakoutPotential",
  "maxResults": 50,
  "maxShortsPerChannel": 50,
  "oldestPostDate": "",
  "outputProfile": "signals",
  "watchlistName": "",
  "enableCommentThemes": true,
  "rateLimitPerSecond": 2,
  "circuitBreakerThreshold": 3,
  "runtimeBudgetSeconds": 3000,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

## Output

```json
{
  "rerankedRank": {
    "label": "Reranked rank"
  },
  "youtubeRelevanceRank": {
    "label": "Youtube relevance rank"
  },
  "rankBy": {
    "label": "Rank by"
  },
  "rerankReason": {
    "label": "Rerank reason"
  },
  "title": {
    "label": "Title"
  },
  "channelHandle": {
    "label": "Channel handle"
  },
  "signalProfile": {
    "label": "Signal profile"
  },
  "videoUrl": {
    "label": "Video url"
  }
}
```

## About this Actor

This example demonstrates how to use [YouTube Scraper: Attention Queue, Breakout Detection](https://apify.com/ryanclinton/youtube-scraper) with a specific input configuration. Visit the [Actor detail page](https://apify.com/ryanclinton/youtube-scraper) to learn more, explore other use cases, and run it yourself.