YouTube Search Scraper – Videos, Channels & Shorts avatar

YouTube Search Scraper – Videos, Channels & Shorts

Pricing

from $5.00 / 1,000 saved youtube search results

Go to Apify Store
YouTube Search Scraper – Videos, Channels & Shorts

YouTube Search Scraper – Videos, Channels & Shorts

Find YouTube videos, channels and Shorts by keyword. Export search ranks, descriptions, publish dates, views, likes, comment counts and creator data when available. Localize search by region and language. Export JSON or CSV. No YouTube API key. Unofficial; not affiliated with YouTube.

Pricing

from $5.00 / 1,000 saved youtube search results

Rating

0.0

(0)

Developer

ArjunAI Data

ArjunAI Data

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

4

Monthly active users

20 days ago

Last modified

Security

Limited permissions

Share

YouTube keyword search for videos, channels and Shorts

Find relevant YouTube content and creators without collecting an entire channel archive. Enter keywords, choose Videos, Channels, or Shorts, and export ranked results with available public details to JSON, CSV, or Excel.

Video and Shorts results include content metadata and a compact creator profile. Channel results include public profile details, statistics, branding, links, and email addresses when directly exposed. No YouTube Data API key or Google login is required.

Start small: the prefilled input requests up to 3 videos. At the default 512 MB memory, 3 saved results cost $0.01505 in Actor events at the listed prices, with platform usage included. Optional fields depend on what YouTube exposes.

Unofficial tool. Not affiliated with, endorsed by, or sponsored by YouTube or Google.

Try it in three steps

  1. Enter a topic in Search keywords and choose the Result type.
  2. Keep Maximum results per keyword at 3 for your first run. The default search region is US and interface language is English.
  3. Click Start, open the Dataset, and download JSON, CSV, or Excel.

Choose Videos & Shorts or Channels in the Output table to match your run. Status & troubleshooting explains query failures and unfinished details. These views present the same saved rows; switching views does not make more requests or change the raw JSON.

Ready-to-run examples

Each public example uses one keyword and up to 3 results:

Default video input

{
"searchQueries": ["AI automation"],
"searchType": "videos",
"maxResultsPerQuery": 3,
"sortBy": "relevance",
"uploadDate": "any",
"duration": "any",
"searchCountry": "US",
"searchLanguage": "en"
}

For channels or Shorts, change only searchType to channels or shorts.

What data will I get?

One run searches for one result type. Unrelated fields are omitted: channel rows do not contain empty video fields, and video or Shorts rows do not contain a full channel About profile.

Result typePublic data available when exposed
channelChannel name, ID, handle, description, subscribers, total views, video count, join date, country, avatar, banner, external links, and public emails
videoVideo URL, title, description, thumbnail, publication time, duration, views, likes, comment count, tags, category, chapters, and basic channel identity
shortNative Shorts URL and the same content-detail fields, with basic channel identity
searchStatusA free query-status row for no matches, failed discovery, or a maximum-charge stop

Real channel output

Selected fields from a real public request on October 18, 2026, using the default input above with searchType: "channels". Fields not shown here remain available in the full JSON.

{
"recordType": "channel",
"detailStatus": "complete",
"title": "Automate AI Consulting",
"url": "https://www.youtube.com/@AutomateAIConsulting",
"channelId": "UCgugjY9T1jv41UcKmaZ5NLQ",
"channelName": "Automate AI Consulting",
"channelHandle": "@AutomateAIConsulting",
"subscriberCount": 26200,
"subscriberCountText": "26.2K subscribers",
"totalViewCount": 1823275,
"videoCount": 421,
"joinedDate": "2025-03-01",
"channelCountry": "United States",
"emails": ["collab@automateaiconsulting.com"],
"searchQuery": "AI automation",
"searchRank": 2,
"searchCountry": "US",
"searchLanguage": "en",
"scrapedAt": "2026-10-18T06:17:33.122257Z"
}

Real video output

Selected fields from the same keyword and default video input, collected on October 18, 2026.

{
"recordType": "video",
"detailStatus": "complete",
"videoId": "5TxSqvPbnWw",
"url": "https://www.youtube.com/watch?v=5TxSqvPbnWw",
"title": "How to Build & Sell AI Automations: Ultimate Beginner’s Guide",
"durationSeconds": 6622,
"durationText": "1:50:22",
"uploadDate": "2025-06-30",
"publishedAt": "2025-06-30T23:27:23Z",
"viewCount": 1234928,
"viewCountText": "1,234,928 views",
"likeCount": 35372,
"commentCount": 2080,
"categories": ["Education"],
"channelProfile": {
"channelId": "UCui4jxDaMb53Gdh-AZUTPAg",
"channelName": "Liam Ottley",
"channelHandle": "@LiamOttley",
"channelUrl": "https://www.youtube.com/channel/UCui4jxDaMb53Gdh-AZUTPAg",
"subscriberCount": 860000,
"isVerified": true
},
"searchQuery": "AI automation",
"searchRank": 1,
"searchCountry": "US",
"searchLanguage": "en",
"scrapedAt": "2026-10-18T06:17:37.461137Z"
}

Real Shorts output

Selected fields from the same keyword with searchType: "shorts", collected on October 18, 2026.

{
"recordType": "short",
"detailStatus": "complete",
"videoId": "aeUqEvQ4SPs",
"url": "https://www.youtube.com/shorts/aeUqEvQ4SPs",
"title": "Don’t fall for the AI Automation Agency hype (unless you’re technical or have a previous background",
"durationSeconds": 42,
"durationText": "0:42",
"uploadDate": "2025-03-05",
"publishedAt": "2025-03-05T20:07:49Z",
"viewCount": 94210,
"likeCount": 2092,
"commentCount": 103,
"channelProfile": {
"channelId": "UCiGWNa6QK6CiKPvv5-YPv8g",
"channelName": "Sabrina Ramonov 🍄",
"channelHandle": "@sabrina_ramonov",
"channelUrl": "https://www.youtube.com/channel/UCiGWNa6QK6CiKPvv5-YPv8g",
"subscriberCount": 432000,
"isVerified": true
},
"searchQuery": "AI automation",
"searchRank": 2,
"searchCountry": "US",
"searchLanguage": "en",
"scrapedAt": "2026-10-18T06:17:41.471128Z"
}

Counts, search order, and availability change over time. These are examples of available public data, not a guarantee that every result exposes the same fields.

Shared result fields

FieldMeaning
recordTypechannel, video, or short
title, url, descriptionResult identity and available public description
detailStatuscomplete when detail extraction finished; basic when a request failed and available metadata was retained
detailErrorReason details remain unfinished, when applicable
searchQueryOriginal keyword
searchRankOne-based order of matching results returned for this keyword and type
searchCountryRequested YouTube search region, not the creator's country
searchLanguageRequested YouTube interface language, not the video's spoken language
scrapedAtUTC collection timestamp in ISO 8601 format

Channel field reference

FieldsMeaning
channelId, channelName, channelHandle, channelUrlChannel identity and canonical public URL
subscriberCount, subscriberCountTextNormalized subscriber count and original displayed label; abbreviated counts can be approximate
totalViewCount, videoCountPublic channel-wide view and video totals
joinedDate, joinedDateTextJoin date as YYYY-MM-DD when parseable, plus the source label
channelCountry, isVerifiedPublic channel country and verification indication
avatarUrl, bannerUrlAvatar and banner image URLs
socialLinksExternal links with platform, url, and title when available
emailsAddresses directly exposed in public channel data

The Actor does not sign in, solve CAPTCHAs, or reveal protected business-email controls.

Video and Shorts field reference

FieldsMeaning
videoId, thumbnailUrlContent ID and one selected thumbnail URL
durationSeconds, durationTextDuration in seconds and a readable duration label
uploadDate, publishedAt, publishedTimeTextYouTube's available upload date, publication timestamp, and public date label
viewCount, viewCountTextNumeric total views and available displayed label
likeCount, commentCountPublic like and comment totals, when exposed
liveStatus, availability, ageLimitPublic content-state metadata, when exposed
videoLanguageAudio language identifiable from public metadata; not inferred from the interface language
tags, categoriesPublic tags and category labels
chaptersChapter objects containing title, startSeconds, and endSeconds
channelProfileSix-field basic creator identity, without a separate About-page request

channelProfile contains channelId, channelName, channelHandle, channelUrl, subscriberCount, and isVerified. It does not contain full channel history, country, emails, or social links.

Use cases

  • Content research: review titles, descriptions, publication dates, and public engagement for a topic.
  • Creator discovery: find channels relevant to a keyword, then review their public profiles.
  • YouTube SEO research: save keyword-result snapshots with the query, matching-result order, and collection time.
  • Recurring monitoring: schedule the same Task and compare exports in your spreadsheet or reporting tool.
  • Automation: send structured metadata to Google Sheets, a database, or an AI workflow. This Actor does not include transcripts or calculate performance scores.

Inputs and supported filters

FieldTypeDefaultAccepted values and behavior
searchQueriesstring[]["AI automation"]1–20 unique keyword phrases; the limit applies separately to each phrase
searchTypestringvideoschannels, videos, or shorts; one type per run
maxResultsPerQueryinteger31–25 matching results per keyword
sortBystringrelevancerelevance or popularity for channels and videos; Shorts use relevance
uploadDatestringanyany, today, thisWeek, thisMonth, or thisYear for videos
durationstringanyany, under3Minutes, 3To20Minutes, or over20Minutes for videos
searchCountrystringUSYouTube region used to localize search ranking; not a strict channel-country filter
searchLanguagestringenYouTube interface and localized-metadata language; not a strict spoken-language filter

The region and interface-language dropdowns list the values supported by this Actor. Examples include US, GB, IN, DE, JP, and BR, with interface languages such as English, Spanish, German, Japanese, Portuguese, and Chinese. No strict creator-nationality or spoken-language filtering is performed.

Which filters apply?

Filters are sent to YouTube during search, before results are selected. Settings that do not apply to the selected type automatically use that type's defaults.

Result typeSortUpload dateDuration
channelsRelevance or popularityAny timeAny duration
videosRelevance or popularitySupportedSupported
shortsRelevanceAny timeAny duration

popularity is YouTube's server-side ranking, not a local sort of returned view counts. Search order can vary with localization, time, and YouTube experiments.

Pricing and limits

This Actor uses pay-per-event pricing with platform usage included. The Pricing tab is the source of truth for current prices and discounts.

EventListed priceWhat is charged
Actor Start$0.00005 per billed GBOne event per GB of Actor memory, with at least one event per run
Saved search result$0.005 per rowOne saved channel, video, or short result: $5.00 / 1,000
Query-status rowFreesearchStatus rows do not trigger the result event

A saved result costs the same whether details finish or fall back to detailStatus: "basic". A retry within the same run does not create an additional result event for that item: the final row is saved once. Starting another run is a separate billable run.

At the default 512 MB memory, before any discounts:

Saved resultsResult and start event total
1$0.00505
3$0.01505
5$0.02505
100$0.50005
500$2.50005

The maximum requested scope is number of keywords × maxResultsPerQuery: up to 500 results with 20 keywords and 25 results each. It is a ceiling, not a guaranteed count or guaranteed runtime. YouTube can expose fewer matches.

The Actor respects the maximum run charge. No-result and failed-query status rows do not incur a result charge, but an Actor Start charge can still apply. Any Apify trial or account credits are provided by the platform; this Actor does not promise a separate free allowance.

API and integrations

Start an asynchronous run with your Apify API token. A YouTube API key is not required.

curl -X POST \
"https://api.apify.com/v2/acts/arjun_code~youtube-search-scraper/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchQueries": ["AI automation"],
"searchType": "videos",
"maxResultsPerQuery": 3,
"sortBy": "relevance",
"uploadDate": "any",
"duration": "any",
"searchCountry": "US",
"searchLanguage": "en"
}'

The response identifies the run and its default Dataset. Wait for the run to finish, then retrieve the Dataset items. For a small synchronous request, use /run-sync-get-dataset-items instead of /runs; asynchronous runs are preferable for larger jobs.

Send results to Google Sheets or an automation

  1. Save your input as an Apify Task and optionally add a schedule.
  2. Use an Apify integration or an HTTP/webhook workflow to fetch the Dataset after the run finishes.
  3. Select content rows by recordType. If your downstream step requires finished details, also check detailStatus.
  4. Map the URL or ID, title, keyword, rank, metrics, and scrapedAt into your target table. For videos and Shorts, creator fields are nested under channelProfile.

n8n, Make, Zapier, and custom API clients can orchestrate this process. They require their own connections and setup; the Actor does not automatically create or update a spreadsheet.

FAQ and limitations

What does complete mean? Can every field be guaranteed?

detailStatus: "complete" means the detail extraction finished, not that all fields exist. Creators may not publish tags, chapters, country, or a description, and YouTube may omit or hide other metadata. Unknown numeric values stay null, not a fabricated zero.

detailStatus: "basic" means a request failed and the Actor preserved available detail or search data. It is not an input mode. Open Status & troubleshooting to read detailError.

A successful Apify process status does not by itself prove every detail completed. The end-of-run message and OUTPUT show completed and partial detail counts separately.

What happens after a temporary detail failure?

Normal results are saved as they finish. After a keyword's initial detail work, transiently failed results receive one delayed recovery attempt within a bounded time window, with at most two recovery operations concurrently. Already completed results are not re-extracted.

The Actor retains known metadata if recovery fails, saves that item's final row once, and lists unfinished items in OUTPUT.incompleteResults. It does not automatically resume a previous run, and it does not retry indefinitely. Recovery may add runtime; neither fixed response times nor 100% field availability are guaranteed.

Why is a field empty although I can see a text label?

Some values are normalized from public labels, which can be abbreviated or localized. subscriberCountText preserves the original subscriber label. Join dates are dates, not exact account-creation timestamps.

If a numeric field is unexpectedly empty while its source text contains a usable number, report the run ID and result URL through Issues. A fetch failure is not evidence that the creator withheld the value.

Does search rank match every user's YouTube results?

No. searchRank describes matching-result order for this run, result type, and query context. It is not a universal position across personalized YouTube sessions.

Results finish concurrently, so Dataset insertion order may differ from rank. Sort by searchQuery, then searchRank, to restore matching-result order.

Can region or language strictly select creator country or spoken language?

No. searchCountry and searchLanguage set the localized search context. channelCountry is a separately exposed channel field, and videoLanguage identifies audio language when available.

Are Shorts selected only by their duration?

No. Discovery uses YouTube's native Shorts search surface. The regular-video duration filter does not select Shorts.

What does a searchStatus row mean?

Read status, errorMessage, and suggestion:

  • noResults: no matching public results were returned; try a broader keyword or fewer filters.
  • failed: discovery could not finish; this is not treated as a valid empty search.
  • chargeLimitReached: the run's maximum charge prevented further result writes.

These query-status rows are visible and free. They can appear alongside content rows.

Where is the run summary?

Open the default Key-Value Store record OUTPUT, or use the Run summary output link. It contains effective filters, counts by query, query statuses including partial, completed and partial detail totals, recovery counts, unfinished result URLs, and the maximum-charge status.

The summary helps troubleshoot a run without attaching operational diagnostics to every result.

Are view counts on live videos concurrent viewers?

No. viewCount represents total views. If the page only displays a concurrent-viewer label, viewCountText can contain the unformatted total instead.

Can it download videos, comments, transcripts, or a complete channel archive?

No. This Actor searches keywords and collects metadata for selected matches. It does not download media, paginate comments, export transcripts, or enumerate a channel's entire archive. Use the related tools below for those workflows.

Can it reveal protected business emails?

No. Only emails directly exposed in public channel data are included.

Why can a larger run take longer?

Each selected match needs detail extraction. Localization, separate metadata requests, temporary failures, and result count affect runtime. Start with one keyword and 3 results; do not extrapolate a small successful run into a guaranteed bulk response time.

GoalActor
Get profiles for known channel handles, IDs, or URLsYouTube Channel Details Scraper
Get metadata for known video or Shorts URLs or IDsYouTube Video and Shorts Details Scraper
Export a channel's videos, Shorts, and streamsYouTube Channel Content Scraper
Export public comments and repliesYouTube Comments Scraper

Support and responsible use

Open the Actor's Issues tab with the run ID, sanitized input, affected result URL, and expected field. Do not post API tokens, credentials, or private data.

Use the Actor only for lawful processing of publicly accessible information. You are responsible for complying with applicable laws, privacy requirements, YouTube's terms, and rules governing use of contact information.