YouTube Search Scraper: Videos & Channel Discovery avatar

YouTube Search Scraper: Videos & Channel Discovery

Pricing

from $0.15 / 1,000 search results

Go to Apify Store
YouTube Search Scraper: Videos & Channel Discovery

YouTube Search Scraper: Videos & Channel Discovery

YouTube search scraper and YouTube search API: run a YouTube video search by keyword and get videos, Shorts, channels or playlists with views, age, length, channel and badges, in any country and language, with filters. A YouTube keyword scraper; full likes and comments as an add-on. No login.

Pricing

from $0.15 / 1,000 search results

Rating

0.0

(0)

Developer

DeepMine

DeepMine

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

4

Monthly active users

6 days ago

Last modified

Features

Limited permissions

Share

YouTube Search Scraper

YouTube search scraper and YouTube search API: run a YouTube video search by keyword and get one row per result, in the order YouTube ranks them: videos, Shorts, channels, playlists or movies, with views, age, length, the channel (name, handle, avatar, verified badge), badges, chapters and the description snippet. Search from any country and in any language, with YouTube's own filters. Exact likes, comments, publish time, tags and channel stats are an optional add-on. No login, no YouTube API key, no browser.

#๐ŸŽฌ Video๐Ÿ“บ Channel๐Ÿ‘€ Views๐Ÿ“… Ageโฑ๏ธ Length๐Ÿ… Badges๐Ÿ”Ž Search term
1Python Full Course for BeginnersProgramming with Mosh โœ…49,465,3547 years ago06:14:07CCpython tutorial
2Python Full Course for free ๐ŸBro Code โœ…13,170,2982 years ago12:00:00Fundraiserpython tutorial
3Learn Python for Beginners - Visually ExplainedVisually Explained โœ…183,0051 month ago03:54:33โ€“python tutorial
1I Tested NYC Street Food in Every BoroughJon Barr โœ…404,1375 months ago00:23:254Kstreet food
2$2 Burgers in Harlem | Street Food IconsMunchies โœ…24,011,1217 years ago00:09:12CCstreet food
3New York Street Food Marathon!! From $1 to $1000!!More Best Ever Food Review Show โœ…3,022,8125 months ago01:24:344Kstreet food

$0.20 per 1,000 results on Starter ($0.24 Free, $0.17 Scale, $0.15 Business). The prefilled run (100 results) costs about $0.02. Nothing per run. Full details add $0.10 per 1,000 results, only when you turn them on.

PlanPer 1,000 resultsWith full details
Free$0.24$0.34
Starter$0.20$0.30
Scale$0.17$0.27
Business$0.15$0.25

What you type

InputExampleWhat it does
๐Ÿ”Ž Search termspython tutorial, street food, or a link like https://www.youtube.com/results?search_query=lofi+hip+hop&sp=CAMSAhABOne YouTube search per term (a link keeps its own filters)
๐Ÿท๏ธ Result typeVideos, Shorts, Channels, Playlists, MoviesYouTube's Type filter: one type per run
๐Ÿ”ข Results per search term50 (100 when empty, up to 5,000)How deep each search goes
โž• Full detailson / off (off)Adds the watch page's or the channel's About panel's fields (below)
๐ŸŽ›๏ธ Sort by, upload date, duration, featuresPopularity, This week, Under 3 minutes, HD + SubtitlesYouTube's own search filters, with the same values as its filter dialog
๐ŸŒ Country, ๐Ÿ—ฃ๏ธ LanguageMX, esSearch as from that country in that language: YouTube returns different results (es-MX shared 5 to 7 of the first 20 with en-US in our tests)

A result that several of your terms find is saved and charged once. Ages and counts are read in YouTube's languages (Spanish hace 21 horas, German vor 5 Tagen, Japanese 14 ๆ™‚้–“ๅ‰, Korean ๊ตฌ๋…์ž 177๋งŒ๋ช…, Hindi 17.7 เคฒเคพเค–...), so every row has numbers as numbers and the text as YouTube wrote it.

What you get

Result typeFields
๐ŸŽฌ Videos, Shorts, moviesposition (rank in its search), title, type (video, shorts, stream, movie), id, url, thumbnailUrl, thumbnails, previewUrl (the moving preview YouTube plays on hover, a 6-second animated WebP), richThumbnail (its sizes), viewCount (exact), viewCountText, date (the day the age gives), dateText (the age as shown), dateEstimated, duration, durationSeconds, text (the description snippet), badges (New, 4K, CC, Free with ads...), isLiveNow, streamType (live, scheduled, ended), scheduledStartAt, isMembersOnly, chapters (title, start, startSeconds, thumbnailUrl), channelName, channelId, channelUrl, channelUsername, channelAvatarUrl, isChannelVerified, isChannelArtist; movies also movieMetadata (genre and year, actors, directors)
๐Ÿ“บ Channelsposition, title (the channel's name), id, url, thumbnailUrl (avatar), channelUsername (handle), numberOfSubscribers, subscribersText, text (description), isChannelVerified, isChannelArtist
๐Ÿ“š Playlistsposition, title, id, url, thumbnailUrl, playlistType (playlist, course, podcast...), videoCount, firstVideoId, firstVideos (the videos the search lists under it), text, channelName, channelUrl, channelUsername, isChannelVerified
๐Ÿงพ Every rowsearchQuery, input, fromYTUrl (the search with its filters), country, language, scrapedAt

โž• With full details, video, Short and movie rows also get likes (exact), commentsCount (exact), commentsTurnedOff, the exact publish time in date, the full description in text, descriptionLinks, hashtags, keywords (tags), category, originalLanguage and originalLanguageCode (the language spoken in the video), audioTracks (dubbed videos: each audio track's language, and whether it's the original or YouTube's automatic dub), location, isAgeRestricted, isUnlisted, isPaidContent ("Includes paid promotion"), isMonetized (YouTube serves ads on it to a logged-out viewer; null on Shorts), liveStartedAt, liveEndedAt, Shorts' soundTitle, musicTitle, musicArtist, collaborators, and the channel's numberOfSubscribers, channelDescription, channelDescriptionLinks, channelJoinedDate, channelCreatedAt (when the run read the channel's feed for a publish time), channelLocation, channelTotalVideos, channelTotalViews. Channel rows get the About panel: channelTotalViews, channelTotalVideos, channelJoinedDate, channelLocation, channelDescription, channelDescriptionLinks, and channelCreatedAt (the channel's creation time to the second, from its RSS feed; null when YouTube's feed doesn't answer). Playlists are always saved as the search shows them.

The dataset has five views: Search results, Video details, Full details (videos), Channels and Playlists.

Measured on 16 runs on Apify on 2026-10-17 (4,135 video rows, 200 channel rows in es-MX, 60 playlists, 150 Shorts, 40 movies, 140 rows with full details):

FieldFilled
title, id, url, thumbnailUrl, viewCount, channelName, channelId (videos)100%
date, dateText, duration (videos)100%
text (videos' snippet)100%
badges (videos)59%
chapters (videos)38%
channelUsername (videos)93%
numberOfSubscribers (channels)96%
videoCount, firstVideos (playlists)100%
channelId, viewCount (Shorts)100%
likes, commentsCount, category (full details, videos)100%
keywords (full details, videos)88%
channelJoinedDate, channelTotalViews (full details)97-100%

badges and chapters are filled where YouTube shows them; channelUsername is empty for channels without a handle; a channel can hide its subscriber count. Most Shorts searches answer as YouTube's Shorts grid, which shows only the title, views (rounded, 1.2M) and the channel's id: turn on full details for a Short's channel name, exact views, likes, comments, date, length and sound. Movies show no views or age in search.

Moving from another YouTube search Actor

Paste your saved input as it is: the fields below are read the way those Actors read them.

Their inputRead here as
api-ninja: query, maxResults, type, sortBy, duration, uploadDate, features, geo, lang, scrapeAllResults, videoDepthDetailsthe same search; standard / detailed / complete depth = full details
ninhothedev: queries, query, maxItems, maxResultsmaxItems per query, maxResults as the total across queries, in input order ({"queries": ["python tutorial", "javascript tutorial"], "maxItems": 10, "maxResults": 15} saves 10 + 5); a non-empty queries wins over query
grow_media: q, maxResults, order, videoDuration, regionCode, relevanceLanguage, useFiltersthe same search; with useFilters: false its filters are left out, as it does
grow_media: publishedAfter, publishedBeforeYouTube's after: / before: search operators, to the day (fromYTUrl shows them)
grow_media: eventTypelive: YouTube's Live filter; completed and upcoming: YouTube's search has no filter for them, so streams with that label are kept from its results (upcoming streams are rarely in a search)
grow_media: videoDefinition: high, videoLicense: creativeCommon, safeSearch: strictYouTube's HD and Creative Commons filters, Restricted Mode

Not available on YouTube's search, so searched without them (the run's notices say so): videoDefinition: standard, videoLicense: youtube, order: title / videoCount, channelType: show; safeSearch: moderate is YouTube's normal search. Search links in startUrls keep their own filters. One difference: a video that several of your search terms find is saved and charged once (under the first term), where ninhothedev saves it once per query.

Their fieldHere
videoId, video_idid
channelTitle, channelchannelName
descriptiontext
publishedTimeText, published_timedateText
publishDate, publishedAtdate
lengthText, duration_secondsduration, durationSeconds
thumbnailthumbnails (thumbnailUrl = the largest)
richThumbnailrichThumbnail (previewUrl = the largest)
views, views_textviewCount, viewCountText
rank, orderposition
querysearchQuery
channelCreatedAt, channelVideoCount, channelViewCountchannelCreatedAt (or the day in channelJoinedDate), channelTotalVideos, channelTotalViews (full details)
api-ninja/youtube-search-scrapergrow_media/youtube-search-apininhothedev/youtube-search-scraperThis Actor
Price per 1,000 results, paid plans$0.25 until 2026-10-26, then $0.50, plus $0.01 per run$0.60 / $0.50 / $0.40$0.50$0.20 / $0.17 / $0.15, no start fee
Result typesvideos, Shorts, channels, playlists, moviesvideos, channels, playlistsvideosvideos, Shorts, channels, playlists, movies
Country and languageyesyesnoyes
Likes, comments, channel statsdeeper modesyesnofull details (+$0.10 per 1,000)
Chapterskey moments in its deeper modesnonoyes, in search rows
Badges, live and upcoming streamsnot declaredlive/upcoming filternoyes

Prices are from the Apify Store on 2026-10-16.

Output

One row per result. A real video row, shortened:

{
"position": 5,
"title": "iPhone 17 After 1 Year: Why I Still Love It",
"type": "video",
"id": "S71ljmbtERg",
"url": "https://www.youtube.com/watch?v=S71ljmbtERg",
"thumbnailUrl": "https://i.ytimg.com/vi/S71ljmbtERg/hq720.jpg",
"viewCount": 71252,
"viewCountText": "71,252 views",
"date": "2026-10-03",
"dateText": "2 weeks ago",
"dateEstimated": true,
"duration": "00:11:36",
"durationSeconds": 696,
"text": "iPhone 17 1 year review, iPhone 17 review, Apple iPhone 17 camera test, iPhone 17 battery life, iPhone 17 vs iPhone 17 Pro, ...",
"badges": ["1 product", "Earns commission"],
"isLiveNow": false,
"isMembersOnly": false,
"chapters": [
{"title": "Design", "start": "00:00:00", "startSeconds": 0, "thumbnailUrl": "https://i.ytimg.com/vi/S71ljmbtERg/hqdefault_25233.jpg"},
{"title": "Display", "start": "00:01:41", "startSeconds": 101, "thumbnailUrl": "https://i.ytimg.com/vi/S71ljmbtERg/hqdefault_102866.jpg"}
],
"channelName": "Everyday Legends",
"channelId": "UCbM-fdGZyGd-NNRpYscDeHA",
"channelUrl": "https://www.youtube.com/@Everyday_Legends",
"channelUsername": "Everyday_Legends",
"isChannelVerified": false,
"searchQuery": "iphone 17 review",
"fromYTUrl": "https://www.youtube.com/results?search_query=iphone+17+review&sp=EgIQAQ%3D%3D",
"country": "US",
"language": "en",
"scrapedAt": "2026-10-17T02:18:37Z"
}

A channel search in Mexico, in Spanish:

#๐Ÿ“บ Channel๐Ÿ‘ค Handle๐Ÿ‘ฅ Subscribersโœ… Verified
1El Pan De Valdo@ElPanDeValdo234,000 (234 K suscriptores)yes
2COMO HACER PAN SV@comohacerpanSV59,000 (59 K suscriptores)no
3Mirecetadepan.com@Mirecetadepancom309,000 (309 K suscriptores)no

With full details:

๐ŸŽฌ Video๐Ÿ‘€ Viewsโค๏ธ Likes๐Ÿ’ฌ Comments๐Ÿ“… Published๐Ÿ—‚๏ธ Category๐Ÿ‘ฅ Subscribers๐Ÿ“ Country
Learn Python - Full Course for Beginners [Tutorial]49,468,3021,123,44546,0932018-07-11T18:00:42ZEducation11,900,000United States
Python Full Course for Beginners49,373,0831,273,47562,9282019-02-18T15:00:08ZEducation5,170,000United States

The run's summary (key-value store record OUTPUT) lists every search term with how many results it gave and its status, the result type, country, language and filters, and repeats skipped.

From a keyword to videos, comments and transcripts

A YouTube keyword scraper is the first step of most research. This is how the Actors chain:

  1. Search a keyword here (videos, Shorts, channels or playlists, one type per run). Basic rows are the cheapest way to list what YouTube shows for a term; turn on Full details when you need exact likes, comments, tags and channel stats in the same rows.
  2. Videos: the url of each row goes into YouTube Video Details Scraper (full metadata), YouTube Comments Scraper (comments and replies) or YouTube Transcript API (what is said, with timestamps).
  3. Channels: run the search with the type Channels, then paste the url of the channels you like into YouTube Channel Scraper for all their videos. To filter creators by subscribers, country or verification, use YouTube Channel Search Scraper.
  4. Playlists: paste a playlist row's url into YouTube Playlist Scraper.

Searching and reading videos in one run? YouTube Scraper takes search terms and returns full video rows.

Did it help?

A short review helps others find it: https://apify.com/deepmine/youtube-search-scraper/reviews

⌂ ๆข็ฝ‘ๅ€