YouTube Search Results Scraper — No Login avatar

YouTube Search Results Scraper — No Login

Pricing

from $0.19 / 1,000 search results

Go to Apify Store
YouTube Search Results Scraper — No Login

YouTube Search Results Scraper — No Login

Search YouTube videos, channels and Shorts without login or an API key. Send up to 5 queries and get ranked search cards with visible titles, channel details, view labels, duration and fetch times. Export results and check each query in the run summary.

Pricing

from $0.19 / 1,000 search results

Rating

0.0

(0)

Developer

Cliqto Media

Cliqto Media

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Categories

Share

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.

Use it for keyword research, content planning and channel discovery. Start with apify tutorial and 20 results.

YouTube search keywords to ranked video, channel and Shorts cards

Table of contents

What it does

Send up to 5 keyword queries in one run. Choose videos, channels, Shorts, or all supported search cards. The Actor reads public search responses and follows their next pages until it reaches your limit or the source ends.

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.

It does not download videos. It does not read private videos, playlists, comments or transcripts. Search ranks refer to supported cards in this run. They do not include ads, playlists or repeated IDs.

Quick start

  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.

The example returns public video cards. Results can change over time.

Input

Only queries is required. API input without queries (for example {}) is rejected by Apify input validation before a run starts, so nothing is charged; other fields use the defaults below. The new form prefills queries and maxResultsPerQuery. Restore example input provides the same small example. The default build is latest.

FieldTypeDefault / prefillAllowed valuesWhat it changes / advice
queriesarray of stringsrequired / ["apify tutorial"]1–5 queries; 1–200 characters eachKeywords for each search. Leading/trailing spaces are removed. Exact duplicates are merged. Keep distinct queries when comparing topics.
typestringvideovideo, channel, short, allvideo includes video cards for Shorts. short uses the Shorts search. all collects supported video, channel and Shorts cards; playlists are skipped.
uploadDatestringallall, today, week, month, yearYouTube upload-date filter. Use only with video or all.
durationstringallall, under3min, 3to20min, over20minYouTube duration filter. Use only with video or all.
sortBystringrelevancerelevance, popularityYouTube ordering. Shorts only accept relevance.
maxResultsPerQueryinteger20 / same1–100Maximum delivered rows per query. The source can return fewer. Up to 500 rows across 5 queries.
countrystringUSuppercase two-letter country context, e.g. JPSearch context. It does not filter channel location. Start with the market you study.
languagestringenYouTube language code, e.g. en, de, jaInterface language, not a video-language filter. Localized count labels may leave views null.

Interacting settings

Channel and Shorts searches require uploadDate: "all" and duration: "all". Shorts also require sortBy: "relevance". Other combinations fail validation before source requests. Video/all filters are sent to YouTube; they are not a later full-dataset filter.

Unknown input keys, an empty query list, blank queries or values outside these ranges fail validation.

Input examples

Video search:

{ "queries": ["apify tutorial"], "maxResultsPerQuery": 20 }

Returns up to 20 video cards with videoId, title, channel and duration.

Channel search:

{ "queries": ["Apify"], "type": "channel", "maxResultsPerQuery": 20 }

Returns channel cards. videoId, views, duration and publishedText are null for channels.

Shorts search:

{ "queries": ["cooking tips"], "type": "short", "maxResultsPerQuery": 20 }

Returns Shorts URLs and visible titles and view labels. Channel, date and duration are often unavailable.

A recent short-duration video search:

{
"queries": ["python tutorial"],
"uploadDate": "week",
"duration": "under3min",
"sortBy": "popularity",
"maxResultsPerQuery": 5
}

Returns the source's filtered video results, or a successful empty result when none match.

Output

Output example

The following is one complete row from the video example above:

{
"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": "Speak About Digital",
"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://speakaboutdigital.com/apify-review/ Apify Tutorial For Beginners | How To Use Apify This is my video tutorial\u00a0...",
"source": "YouTube",
"fetchedAt": "2026-10-14T10:58:02.998Z"
}

Output fields

FieldTypeNull?Meaning / example
querystringnoNormalized query, e.g. apify tutorial.
rankintegernoStarts at 1 for each query. Counts delivered unique supported cards.
typestringnovideo, channel or short.
videoIdstringyesYouTube video ID; null for channel cards.
urlstringnoPublic watch, Shorts or channel URL.
titlestringnoSearch-card title or channel name.
channel.idstringyesChannel ID, e.g. UCTgwcoeGGKmZ3zzCXN2qo_A. Shorts often omit it.
channel.namestringyesVisible channel name, e.g. Apify.
channel.urlstringyesCanonical channel URL when its ID is shown.
viewsintegeryesExact English visible view count. Rounded (11M views), localized and missing values are null. Zero is a real visible zero.
viewsTextstringyesOriginal view label, e.g. 43,453 views or 11M views.
publishedTextstringyesSource label, e.g. 3 years ago. This is not an exact publish date.
durationstringyesVisible MM:SS or HH:MM:SS, e.g. 10:41.
isShortbooleannoWhether the card identifies a Short.
isLivebooleanyesTrue for a live-now video badge; null for channel and Shorts cards.
thumbnailstringyesPublic thumbnail URL from the card.
descriptionSnippetstringyesVisible excerpt, not the full description.
sourcestringnoYouTube.
fetchedAtstringnoUTC fetch time in ISO format.

Output surfaces

Search results is the default Dataset view. It shows query, rank, type, title, URL, channel name, views, viewsText, duration, publishedText, isShort and isLive. JSON export contains all row fields.

Run summary is the RUN_SUMMARY record in the default key-value store. It contains status, reason, rows, per-query queries, requests, responseBytes, retries, elapsedMs, provider, source, fetchedAt and limits.

SituationDatasetRun summary / action
Results foundDelivered cardscomplete; query reason RESULT_LIMIT or SOURCE_EXHAUSTED.
No matchesNo rows for that queryQuery not_found, run complete. Change keywords or filters.
Buyer charge limitSaved cards onlyRun succeeds with partial / CHARGE_LIMIT. Raise your budget for more rows.
Source error, deadline or cancellationPreviously saved cards stayRun fails with partial or error. Check reason; do not treat this as no matches.
Invalid inputEmptyRun fails before source work. Fix the input.

Pricing and limits

Pay per event: a standard start fee plus each saved search result. Platform compute, traffic and storage are covered by this tariff; no proxy setting is needed.

PlanStart fee per run (256 MB)Per resultPer 1,000 results, excluding start
Free$0.002$0.00022$0.22
Bronze$0.002$0.00021$0.21
Silver$0.002$0.00020$0.20
Gold / Platinum / Diamond$0.002$0.00019$0.19

The start event is automatic. It applies to empty results and runs rejected by runtime validation. No result event is charged for an empty query. Partial and failed runs charge only the start and saved result rows. A rejected API request that never starts a run has no run events.

Delivered rowsRunsFree-plan totalGold-plan total
01$0.002$0.002
11$0.00222$0.00219
101$0.00420$0.00390
201$0.00640$0.00580
1001$0.02400$0.02100
5001$0.11200$0.09700
1,000at least 2$0.22400$0.19400

These are price calculations for delivered rows, not guaranteed result counts. This Actor supports up to 100 rows per query and 500 rows per run. A 1,000-row collection needs at least two runs. Put a limit on Maximum cost per run to control the spend. A cap can stop the run before it reaches your requested result count.

Use cases

TaskInputUseful fieldsNext step
Plan content around keywordsSeveral queries, type: "video"query, rank, title, viewsTextCompare rows in a spreadsheet.
Find public channelstype: "channel"channel.id, channel.name, urlReview the channel pages.
Study short-form topicstype: "short"title, url, viewsTextGroup titles by topic.

Scheduling and monitoring

You can create an Apify saved task and schedule it to repeat the same queries. Each run is a fresh search and is charged normally. There is no stored baseline or only-new mode. Compare exported rows by query and url in your own system. The Actor does not create schedules for you.

API, export and integrations

Start it with the Apify API. Use the same JSON input. After completion, read the run's default Dataset and RUN_SUMMARY record. Export results as JSON, CSV, Excel or XML using Apify Dataset export. For CSV, flatten channel to keep its nested fields.

Apify tasks, webhooks and automation tools can start a run and pass its Dataset ID to the next step. Use url or videoId as the item key, and keep query when the same video appears for several searches.

Use with AI agents (MCP)

Use https://mcp.apify.com?tools=cliqtomedia/youtube-search-scraper after the Actor is available in Store. Small input:

{ "queries": ["apify tutorial"], "maxResultsPerQuery": 20 }

Read query (keywords), rank (delivered position), title (visible title), url (public result) and viewsText (source count label). The measured small search returned 20 rows in about 2–8 seconds of run time. Its event price is $0.00640 on the base plan. Keep the 5-query, 100-result-per-query limits and check the run summary before treating a partial run as complete.

Limitations and partial results

  • 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.

Troubleshooting

SymptomPossible reasonCheckAction
Empty Dataset with successful runNo matching cardsQuery status in Run summaryTry a broader query or remove filters.
INVALID_INPUT or INVALID_FILTER_COMBINATIONInvalid field or unsupported combinationQuery list, ranges, type and filtersUse an example above and change one field at a time.
CHARGE_LIMITMaximum run charge reachedSummary rows and your budgetIncrease the cap if you need more results.
SOURCE_ERROR / SOURCE_SCHEMA_CHANGEDSource unavailable or its card format changedRun reason and saved rowsRetry a small example later; report the run if it repeats.
SOURCE_DEADLINE / PAGE_LIMIT / BYTE_LIMITSource work exceeded a boundRequests and responseBytesReduce queries or results per query.
Null numeric viewsRounded/localized/missing countviewsTextUse the original label; do not replace null with zero.

FAQ

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.

Can I get every matching video?

No. The source controls its pages. The Actor delivers up to your selected limit within the bounds above. It does not promise full search coverage.

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.

Support

Use the Actor's Issues tab for questions or bugs. Include the run ID, result type and a non-sensitive error code. Do not send API tokens, cookies or private account data.