# YouTube Search Results Scraper

> YouTube search scraper: get videos, channels and Shorts for your keywords with rank, title, views and duration. No login or YouTube API key needed.

URL: https://cliqtomedia.com/actors/youtube-search-scraper/

Category: Video, audio & streaming · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/youtube-search-scraper?fpr=cliqto

Search YouTube by keyword and get each result as a row. You get the rank, title, channel, views and duration. No login or API key.

## How to use it: 3 steps

1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `apify tutorial` in Search queries. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

Search public YouTube videos, channels and Shorts by keyword. Get a row for each result, with its query, rank, title and visible metadata. No login or YouTube API key is needed.



### Data you get

- The query and a rank for each delivered result.
- Video or channel ID, title and public URL.
- Visible channel name, view label, duration and publish label when available.
- A thumbnail, description excerpt and fetch time when available.

## Price

Pay per event. Apify bills you, not us.

| What you pay for | Price | When |
|---|---|---|
| Start fee | $0.002 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
| Search result | $0.00022 (from $0.00019 on paid Apify plans) | One unique supported search card saved for one query. Duplicate IDs within a query are not charged again. |

- One video: about $0.0022.
- 1,000 videos: about $0.22.
- Every day 100 videos, for 30 days: about $0.72 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/youtube-search-scraper?fpr=cliqto

## Questions

### How many keywords can I search at once?

Up to 5 queries per run.

### Can I get every video for a keyword?

No. YouTube controls how many pages it shows.

### Do I get exact publish dates?

Not always. YouTube shows labels like 2 weeks ago, and missing dates stay empty.

### Do I need a proxy?

No. No proxy setting is needed.

### Do I need to sign in or provide a YouTube API key?

No. The Actor reads public anonymous search responses.

### Does video search exclude Shorts?

No. Video search follows YouTube's video filter, which can include Shorts. Use `type: "short"` for the dedicated Shorts search.

### Are channels and exact publish dates available for every Short?

No. Missing search metadata stays null. Exact dates are not inferred from relative labels.

### Will the same input return the same order later?

It may change. Search is dynamic and session-dependent. Keep the fetch time with your results.

### Do empty searches cost money?

The start fee applies. No result fee is charged when no rows are saved.

## Data fields

- `query` (string): Normalized query that produced this card.
- `rank` (integer): One-based position among delivered unique supported cards for this query.
- `type` (string): video, channel or short card type.
- `videoId` (string): YouTube video ID, null for a channel card.
- `url` (string): Canonical public video, Shorts or channel URL.
- `title` (string): Title shown by the search card.
- `views` (integer): Exact visible English view count; null for rounded, localized or unavailable values.
- `viewsText` (string): Original visible view-count label, including rounded counts.
- `publishedText` (string): Relative publish label from the card; no invented exact date.
- `duration` (string): Visible MM:SS or HH:MM:SS label; null when unavailable.
- `isShort` (boolean): Whether the card identifies a Short.
- `isLive` (boolean): True for a live-now video badge; null for channels and Shorts.
- `thumbnail` (string): Public thumbnail URL from the card, if available.
- `descriptionSnippet` (string): Visible description excerpt, not the full video description.
- `source` (string): YouTube source identifier.
- `fetchedAt` (string): UTC ISO timestamp when this page was received.
- `channel` (object): Channel metadata exposed by this card. Shorts often omit this object’s values.

## Input settings

- `queries` (array, required): One to five YouTube keyword queries, 1–200 characters each. Exact duplicates are merged.
- `maxResultsPerQuery` (integer): Stop after this many unique supported results per query. Source exhaustion may give fewer results.
- `country` (string): Two-letter uppercase YouTube country context, such as US or GB. This is a search context, not a channel location filter.
- `language` (string): YouTube interface language, such as en, de or ja. This does not restrict video language. Localized counts may only have viewsText.
- `type` (string): Choose videos (including video cards for Shorts), channels, Shorts, or all supported cards. Playlists and ads are excluded.
- `uploadDate` (string): YouTube upload-date filter for video/all search. Must be all for channel and short.
- `duration` (string): YouTube duration filter for video/all search. Must be all for channel and short.
- `sortBy` (string): YouTube relevance or popularity ordering. Short search only supports relevance.

## Step by step on Apify

1. Open Input.
2. Keep `queries` as `["apify tutorial"]` and `maxResultsPerQuery` as `20`.
3. Keep the default video search.
4. Click Start.
5. Open Search results to see the rows. Open Run summary to check each query.

## Use cases

| Task | Input | Key fields | Next step |
|---|---|---|---|
| Plan content around keywords | Several `queries`, `type: "video"` | `query`, `rank`, `title`, `viewsText` | Compare rows in a spreadsheet. |
| Find public channels | `type: "channel"` | `channel.id`, `channel.name`, `url` | Review the channel pages. |
| Study short-form topics | `type: "short"` | `title`, `url`, `viewsText` | Group titles by topic. |

## Tips

- Pick the Shorts type for Shorts only; video search may mix them in.
- Use upload date and duration filters to narrow results.
- Keep the fetch time; search order changes over time.

## Limits



- Search results vary by time, region, interface language and anonymous session. They may differ from a signed-in browser.
- The source can change or stop search pages. The Actor is limited to 10 pages per query, 60 requests including retries, 32 MiB of response data and 150 seconds of source work. Reaching an internal page/request/byte limit is a failed partial run, not a promise of full coverage.
- Rank excludes unsupported cards, ads, playlists and duplicate IDs. It is not a universal YouTube SEO rank.
- Shorts cards may omit channel, publish date and duration. These values stay null. No watch-page enrichment is performed.
- Text labels and snippets are capped at 1,024 UTF-8 bytes. Thumbnail URLs longer than 2,048 bytes are omitted.
- Visible counts may be rounded or localized. `viewsText` preserves them. Relative dates remain relative labels.
- The Actor uses public search metadata. It is not affiliated with or endorsed by YouTube. Use the data in line with YouTube terms and the rights of content owners.

## Sample result

```json
{
  "query": "apify tutorial",
  "rank": 1,
  "type": "video",
  "videoId": "3rrpfW0bEdc",
  "url": "https://www.youtube.com/watch?v=3rrpfW0bEdc",
  "title": "Apify Tutorial For Beginners | How To Use Apify",
  "channel": {
    "id": "UCqD-h6ucBDUntfoapPyhp0Q",
    "name": "Example Channel",
    "url": "https://www.youtube.com/channel/UCqD-h6ucBDUntfoapPyhp0Q"
  },
  "views": 43453,
  "viewsText": "43,453 views",
  "publishedText": "3 years ago",
  "duration": "10:41",
  "isShort": false,
  "isLive": false,
  "thumbnail": "https://i.ytimg.com/vi/3rrpfW0bEdc/hq720.jpg?sqp=-oaymwEgCOgCEMoBSFXyq4qpAxIIARUAAIhCGAFwAcABBrgC8xg=&rs=AOn4CLABmbVCBBN5n5_SrWoZ0xIiumH7wQ",
  "descriptionSnippet": "Apify review: https://example.com/review/ Apify Tutorial For Beginners | How To Use Apify This is my video tutorial\u00a0...",
  "source": "YouTube",
  "fetchedAt": "2026-10-14T10:58:02.998Z"
}
```

## Use it from code

Actor ID: `cliqtomedia/youtube-search-scraper`

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/youtube-search-scraper").call(run_input={
    "queries": [
        "apify tutorial"
    ],
    "maxResultsPerQuery": 20
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

```bash
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~youtube-search-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"queries": ["apify tutorial"], "maxResultsPerQuery": 20}'
```

```python
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/youtube-search-scraper")
result = tool.invoke({"run_input": {"queries": ["apify tutorial"], "maxResultsPerQuery": 20}})
print(result)
```

run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/

## Use cases with this tool

- [One piece of content, ten new posts](https://cliqtomedia.com/actors/use-cases/content-repurposing/): Turn videos, podcasts, PDFs and articles into clean text. Make posts, notes and AI drafts from it.
- [Find the right creators, fast](https://cliqtomedia.com/actors/use-cases/creator-outreach/): Find podcasts, YouTube channels and newsletters in your niche, with public contact details.

## Similar tools

- [YouTube Comments Scraper](https://cliqtomedia.com/actors/youtube-comments-scraper/)
- [YouTube Subtitles & Transcript Scraper API](https://cliqtomedia.com/actors/youtube-transcript-scraper/)
- [Apple Podcast Directory & RSS Contacts Scraper](https://cliqtomedia.com/actors/podcast-directory-rss-contacts-scraper/)
- [Audio & Podcast Transcriber (Speech to Text)](https://cliqtomedia.com/actors/audio-video-transcriber/)
- [Social Video Downloader: TikTok, Instagram, X - No Login](https://cliqtomedia.com/actors/social-video-downloader/)
- [Kick Live Streams & Viewer Count (Official API), No Login](https://cliqtomedia.com/actors/kick-channels/)
