Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
YouTube Scraper icon

YouTube Scraper

Search YouTube or scrape a channel: title, channel, views, publish date, length and thumbnail. No API key or quota. $0.135 per 1,000 videos.

205 runs on Apify $0.000135 per video ($0.135 / 1,000)
Run this in the cloudRun on Apify →

YouTube & Creator Tools

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust searchQueries, channelUrls, maxItems (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.000135 per video = $0.135 per 1,000

You are charged forWhenPrice
Video returnedCharged per video returned in the dataset (empty searches not charged).$0.000135

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-04, and they are what you are actually charged.

Inputs

FieldWhat it doesType
searchQueriesKeywords to search YouTube for, one per line, for example "lofi hip hop" or "python tutorial". Each query returns up to Max videos. Leave empty if you only want channel videos. An empty result usually means the query genuinely has no matches.array
channelUrlsYouTube channels to pull videos from, one per line. Accepts full channel URLs (e.g. https://www.youtube.com/@LofiGirl, https://www.youtube.com/c/ChannelName, https://www.youtube.com/channel/UCSJ4gkVC6NrvII8umztf0Ow), @handles (e.g. @LofiGirl), or raw UC channel ids (e.g. UCSJ4gkVC6NrvII8umztf0Ow). Each channel returns up to Max of its newest videos.array
maxItemsMaximum videos per search query and per channel. A few hundred is realistic. Very large values take much longer and are likelier to come back short.integer
notionConnectorOptional. Write each video as a page into your Notion when the run finishes. Authorize a Notion connector once in Settings → API & Integrations → MCP connectors, then pick it here. Leave empty to skip (default), results are always saved to the dataset regardless.string
notionParentIdOptional. The Notion data source ID of the database to write into (only used if a Notion connector is set). Leave empty to create the pages privately in your workspace instead.string

What you get

A structured dataset — each result includes fields like:

channelIdchannelNamelengthTextmodepublishedTimeTextthumbnailtitleurlvideoIdviewCountText

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

18 ready-to-run use cases

YouTube Keyword Research: See Who Already Ranks

Type a search term and get the videos YouTube shows for it, with views, channel and upload age, so you can tell a crowded keyword from an open one.

Best YouTube Video Titles for Any Keyword

See the titles already ranking for your keyword, the views each one pulled and who posted it. Then copy the patterns that clearly work.

Extract Every YouTube Video URL From a Channel

Turn a channel into a clean list of watch URLs and titles, ready to feed a transcript job or an indexing pipeline. It returns metadata, not transcripts.

YouTube Channel Export: Every Video With Views

Export a channel's videos as a spreadsheet-ready dataset with titles, views, length and links, then work out which ones are worth reusing elsewhere.

YouTube Content Ideas From a Channel's Videos

Pull a channel's back catalogue with view counts to see which topics actually landed. Video metadata only, so no comments come back with it.

Brand Mentions on YouTube: Search Every Video

Search your brand or product name and collect the videos talking about it, with channel, views and upload age. Titles and metadata, not the spoken words.

Find YouTube Influencers in Any Niche

Search a niche and get the creators posting in it, with per-video view counts and channel names. Subscriber counts are not included, view counts are.

YouTube Niche Research: Check a Topic First

Search the topic you are thinking of building a channel on and see who ranks, how old their videos are and what views they got, before you commit.

Winning Product Research on YouTube Search

Search product and gadget queries and see which videos pulled real views, with channels and links. A quick read on demand before you order stock.

YouTube News Channels: Build a Video Dataset

Give it several news channel URLs and it returns their recent uploads in one dataset, with titles, view counts and upload age for media research.

YouTube Competitor Analysis for Creators

List the channels you are up against and pull their recent uploads with view counts, so you can see what they ship and how often before planning yours.

YouTube Creators List for Sponsorship Outreach

Search your category and collect the creators making videos in it, with view counts and channel names, to build an outreach list worth sending.

YouTube Podcast Episodes List for Any Channel

Index a podcast channel's episodes from YouTube: title, watch URL, length, views and upload age. The spine of an episode archive or a search index.

Find YouTube Channels by Niche and Topic

Search a topic and see which channels post about it, how many views they pull and how recently. Good for reading a niche before it fills up.

Get All Videos From a YouTube Channel

Paste a channel URL or @handle and get its whole video list back: titles, view counts, upload age, length, thumbnails and watch links.

Monitor a YouTube Channel for New Uploads

Point it at a channel and re-run it on a schedule. Each run brings back the newest videos with titles, view counts and how long ago they went up.

Compare YouTube Channels Side by Side

Put two or more channel URLs in and get one table of their recent videos, views and upload timing. Beats opening five tabs and squinting.

YouTube Product Review Videos for Any Product

Search a product name and get the review videos back: who made each one, the view count and the watch link. Swap the query for whatever you are checking.

Ready-made automation using this tool

A finished workflow you can import into n8n and run — this tool does the data-gathering inside it. Free, and yours to change.

Find the video topics your competitors cover and you do not

Searches YouTube twice — once for what you already publish, once for the wider subject — then returns only the topics that show up on their side and not yours, best performing first. No AI involved; it compares the words in the titles.

All automations →

Related tools in YouTube & Creator Tools

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

YouTube Channel Monitor — New Upload Tracker iconYouTube & Creator Tools

YouTube Channel Monitor — New Upload Tracker

Watch YouTube channels and get only their new uploads: title, URL, publish date, views, thumbnail. $0.01 per new video.

17 use cases

YouTube Video & Audio Downloader iconYouTube & Creator Tools

YouTube Video & Audio Downloader

Download YouTube videos as MP4 up to 8K, audio as MP3 or subtitles as .srt. No login or API key. You pay per megabyte delivered.

17 use cases

YouTube Video Uploader iconYouTube & Creator Tools

YouTube Video Uploader

Upload videos to your YouTube channel from a URL with OAuth. Set title, tags, category, thumbnail, privacy and publish time. $0.05 per upload.

2 use cases

AI Viral Clip Cutter — Long Video to Shorts iconYouTube & Creator Tools

AI Viral Clip Cutter — Long Video to Shorts

Turn a long podcast or interview into ranked vertical clips. AI scores each moment and captions follow every word. $0.20 per clip row, samples included.

3 use cases

AI Text-to-Speech Voiceover iconYouTube & Creator Tools

AI Text-to-Speech Voiceover

Turn any script into an AI voiceover file: MP3, WAV, Opus or AAC. Pick the voice, speed and format. $40.00 per 1,000 voiceovers ($0.04 each).

3 use cases

Video & Audio Transcriber — Word-Level + SRT/VTT iconYouTube & Creator Tools

Video & Audio Transcriber — Word-Level + SRT/VTT

Transcribe any video or audio URL with word-level timestamps. Download SRT, VTT and TXT. The language is found for you. $0.02 per transcribed minute.

3 use cases

See all YouTube & Creator Tools →

YouTube Scraper: search results and channel uploads, without an API key

Give it keywords, channels, or both, and you get one flat row per video: id, title, watch link, channel, view count, age, runtime and the largest thumbnail YouTube offers. No Google API key, no OAuth screen, no daily quota to watch.

The part that surprises people on run two: the counts and dates are the strings YouTube renders, not numbers. You get "56,648,381 views" and "4 years ago", because that is all the results page carries, and turning them into a real figure would mean guessing.

InputKeywords, channel links, @handles or UC ids
OutputOne row per video
Ceiling1,000 videos per keyword and per channel
Account neededNone from you
Price$0.135 per 1,000 videos, flat on every plan

🔍 What YouTube Scraper does

Two modes, same row shape. A keyword runs a YouTube search and returns the videos it matched. A channel returns that channel's newest uploads. Mix them in one run and the rows come back together, with mode telling you which produced each one.

Results are deduplicated by videoId across every keyword and channel in the run, so a video found by two searches is returned once and billed once.

maxItems is per keyword and per channel, not per run. Two keywords and one channel at 50 is up to 150 videos.

📥 What you give it

{
  "searchQueries": ["lofi hip hop", "python tutorial"],
  "channelUrls": ["https://www.youtube.com/@LofiGirl", "UCSJ4gkVC6NrvII8umztf0Ow"],
  "maxItems": 50
}
FieldDefaultWhat it is
searchQueriesnoneKeywords, one per line. Each returns up to maxItems videos.
channelUrlsnoneChannel links, @handles or bare UC ids. Each returns up to maxItems of its newest uploads. If a channel will not resolve, pass the full link or the UC id instead of the handle.
maxItems50Per keyword and per channel, 1 to 1,000. This is also your spend cap.
notionConnector, notionParentIdnoneOptional. Write each video into a Notion database as well as the dataset.
proxyConfigurationApify defaultLeave it alone unless you have your own servers you want the run to go out through.

Give it neither keywords nor channels and you get one uncharged row telling you so.

📤 What you get back

A real row from a real run. This one is a live stream, which is where the string fields show their edges, and the title is cut short because it carries an emoji:

{
  "ok": true,
  "videoId": "rFZHOHl-L8A",
  "title": "lofi hip hop radio ... beats to relax/study to",
  "url": "https://www.youtube.com/watch?v=rFZHOHl-L8A",
  "channelName": "Lofi Girl",
  "channelId": "UCSJ4gkVC6NrvII8umztf0Ow",
  "viewCountText": "8,732 watching",
  "publishedTimeText": "",
  "lengthText": "",
  "thumbnail": "https://i.ytimg.com/vi/rFZHOHl-L8A/hq720.jpg?v=6a85616e&sqp=...",
  "mode": "search"
}
FieldWhat it is
videoId, urlThe 11 character id, and the canonical watch link. Use videoId as your key across runs.
channelName, channelIdWho uploaded it. channelId can be empty on a search row whose byline is a collaboration.
viewCountText"56,648,381 views" on a normal video, "8,732 watching" on a live stream.
publishedTimeText"4 years ago". Empty on a live stream or a premiere, which has no publish date yet.
lengthText"6:10:58". Empty on a live stream, which has no duration yet.
thumbnailThe largest one YouTube offers, falling back to hqdefault.jpg when the grid carries no link.
modesearch or channel, so you can tell which target produced the row.

🧾 Reading the output

Two kinds of row land in your dataset.

RowHow to spot itBilled
A videook: trueyes
A diagnosticok: false and an errorCodeno

Filter on ok == true and you have your data. BAD_INPUT means the keyword or channel could not be used, BLOCKED and RATE_LIMITED mean YouTube pushed back on that request, SERVER_ERROR is a 5xx, NETWORK means it could not be reached, and NO_RESULTS means the run finished with nothing to show. None of them are charged and the run carries on to the next target.

One quirk of the Overview table: it shows the video columns only, so a diagnostic row reads as a blank line there. Open the row or download the JSON and the errorCode is present.

▶️ How to run it

1. Open YouTube Scraper and click Try for free. 2. Type keywords into Search queries, or paste channels into Channel URLs / handles. 3. Set Max videos per query / channel. Start at 50 while you look at the shape. 4. Click Start. 5. Download the dataset as JSON, CSV or Excel, or read it over the Apify API.

💰 How much does it cost?

$0.135 per 1,000 videos. Flat on every Apify plan, no volume tiers.

You pay per video row delivered. Diagnostic rows and duplicates inside a run are never billed, so a run that finds nothing delivers no charged rows. A two keyword plus one channel run at the default 50 returns up to 150 videos, which is about two cents.

💡 What people use it for

  • Watching what ranks for a keyword you care about, then diffing the list next week.
  • Building a channel's back catalogue as rows for a sheet, then enriching only the ones worth it.
  • Finding the videos an audience actually searches for before scripting your own.
  • Feeding video links into the transcript or comments actors, which want ids rather than keywords.

🚧 What it does not do

  • No exact view counts and no real dates. The strings are what the page carries. "88M views"

cannot be turned back into 88,041,233, so plan around that rather than parsing hopefully.

  • Search returns ordinary videos only. Shorts, playlists and channel cards that appear in a

YouTube search are skipped rather than returned as rows.

  • Channel mode reads the Videos tab. The Shorts and Live tabs are not read, so a channel that

posts Shorts only comes back empty here.

  • No descriptions, likes, comments or subscriber counts. Those live in other actors, two of them

linked below.

  • Paging stops at 60 pages per target, which is what sets the 1,000 row ceiling in practice.
  • A keyword that matches nothing is quiet. There is no per keyword diagnostic row, only a

run-level one when the whole run found nothing.

  • Newest, not complete. There is no offset or resume, so a long channel gives you its latest

maxItems every time.

🧭 Which YouTube scraper do you need?

If you wantUse
Keyword search results, or a channel's uploadsThis one
Only a channel's uploads, with a higher per run ceilingYouTube Channel Scraper
Shorts, with exact view and like countsYouTube Shorts Scraper
Every video in a playlistYouTube Playlist Scraper
Comments under a videoYouTube Comments Scraper

❓ Questions people ask

Do I need a YouTube or Google account? No. Nothing here is signed in, and there is no quota.

Is maxItems per run? No, per keyword and per channel. Three targets at 50 is up to 150 rows.

Why is channelId empty on some rows? Search rows whose byline is a collaboration carry no channel link for the scraper to read. channelName is still there.

Can I get exact view counts? Not from a results page. The Shorts actor returns exact view and like counts, because a Short's own page carries them.

Is scraping YouTube legal? This reads public search results and public channel pages, nothing signed in. Results can still contain personal data, which GDPR and similar laws cover, so have a reason for collecting it. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.

Can I run it on a schedule? Yes. Apify's scheduler, or start it from the API and read the dataset when it finishes.

🆘 If something breaks

Open the Issues tab on the actor page. Include the keyword or channel you used and the run ID, and the log is enough for us to see what happened.