YouTube Search Scraper

A search phrase,
as a results table.

Type what you would type into YouTube and get the results back as rows, in the order they were returned: the video id and title, the channel, the view count as an exact number, the running time, how long ago it went up, a link and a thumbnail. Nine columns, one row per result.

500 free rows, one-timethen $0.002 per row9 columnsCSV · XLSX · JSON
How it works

A phrase in,
the results out.

The input is a search term and nothing else - the same words you would put in the box on the site.

  1. STEP 1Sign in to the platform.
  2. STEP 2Open the YouTube Search Scraper.
  3. STEP 3Type your search phrases, one per line - or upload a CSV, XLSX, TXT or Parquet file.
  4. STEP 4Set a limit per query, or leave it empty to take everything available.
  5. STEP 5Choose your output format.
  6. STEP 6Click Get Data.

It reads YouTube's own embedded result data through the proxy pool, and it works on the free pool - your own address is never used, and nothing here needs a paid proxy.

Why teams use it

The results page,
in the order it came.

Keywords, not accounts

One phrase per line is the whole input. Nothing has to be resolved to a channel first, which makes it the right tool when the question is about a topic rather than about somebody in particular.

View counts to the digit

The count arrives written out in full rather than rounded to 1.2M, so two videos that look identical on screen are still distinguishable in the file.

Runs on the free pool

No paid proxy to arrange and no key to obtain. Requests go out through the shared pool rather than your own address, and that is enough for this one.

What you get

Nine columns -
and the one thing not in them.

This export has real data behind it, so the formats below are measured. What is worth knowing first is not a format at all - it is an absence.

There is no rank column. The results arrive in the order the search returned them, and that order is carried by nothing except the position of the row in the file. Open it in a spreadsheet, sort by view count to see the biggest, save - and the ranking you came for is gone, with nothing in the data to rebuild it from. If the order matters to you, add your own index column on import, before anything else touches the file.

The other thing to know is what this tool is not. It takes search phrases only, and it identifies channels by display name rather than by id. If your question is about a particular channel - its back catalogue, its shorts, how its videos rank against each other - the YouTube Video Scraper is the one that carries channel ids, a shorts/regular distinction and a position column. This one is for questions about a topic.

Data dictionary

Nine columns,
in export order.

Taken from the header row and the JSON keys of real runs and confirmed against the platform's published column list. Every column is a string; the formats below are measured from populated cells.

query
The search phrase this row came from, repeated on every row it produced. The only thing separating results when you submit several searches at once.
video_id
YouTube's id for the video, always eleven characters. Unique within a run here, so no de-duplication is needed - worth noting, because that is not true of the video scraper.
title
The video title. It can carry trailing whitespace, so trim before matching or grouping on it.
channel
The channel's display name - and only the name. There is no channel id in this export, so grouping by channel is grouping by a label that two channels can share and one channel can change. It also carries trailing whitespace.
views
The view count, written out in full with comma grouping - 49,498 views, 18,226,447 views. Never abbreviated, and there is no separate numeric column, so strip the commas and the trailing word yourself. It is not always a view count: a single view reads 1 view, and a live stream reads <n> watching or arrives empty.
duration
The running time as m:ss, or h:mm:ss once a video runs past the hour. Not present on a live stream.
published
How long before the run the video went up, as a relative phrase - 1 day ago, 5 months ago, 9 years ago. Never an absolute date, and not present on a live stream. See the note below about anchoring it.
url
A link to the video, always the /watch?v=<id> form. The id is always in it. Note that no column tells you whether a result is a short or a regular video.
thumbnail
A link to the preview image, carrying its own query string. The filename varies - hq720, hqdefault and custom variants - so read the column rather than building the URL yourself. The video id is always in it.

Three absences shape how you use this file. There is no rank column, so the search order lives only in the row order - sort the file in place and it is unrecoverable; add your own index on import. There is no channel id, only a display name, so grouping by channel is grouping by something two channels can share and one channel can change. And there is no timestamp anywhere in the nine, while published is relative - so the file says a video was 5 months ago as of the moment you ran it, and read later says the same words about a different date. Store the run date alongside it. On the formats: views is the exact figure with comma grouping rather than a rounded 1.2M, which is the opposite of the video scraper and means the precision is here but the parsing is yours. A live stream comes back without a duration and without a publish date, with concurrent viewers in the views column or nothing at all. And title and channel both carry trailing whitespace.

Run controls

Set on the job,
not in the spreadsheet.

Search phrases and a limit. That is the whole input - there is no channel field, no playlist field and no video type to choose, which is what keeps this one simple and what sends you to the video scraper when you need more.

Search phrase One per line Limit per query Empty limit takes everything CSV upload XLSX upload TXT upload Parquet upload Free proxy pool, never your IP
Common workflows

Three jobs this
runs more than any other.

A few examples of how teams use search results to answer a question they actually have.

Share of voice

See who owns a topic

One phrase returns the videos and the channels behind them in the order YouTube ranked them. Keeping the row order intact is what turns that into a picture of who is visible for a term rather than just a list of videos about it.

Content · SEO
Demand

Compare how crowded two phrases are

Running several phrases in one job and reading the view counts side by side shows which framing of a subject has an audience and which has only uploads. Because the counts are exact rather than rounded, close calls stay decidable.

Research
Sourcing

Find creators working in a niche

A topic search surfaces the channels active in it, with view counts attached, which is a better starting point for outreach than a list somebody curated. Move to the video scraper once you know whose catalogue you want.

Partnerships
Pricing

Pay only for the results
you actually pull.

No subscription, no minimum, no recurring bill. Your first 500 rows are on us - after that you pay as you go, at the same flat rate as every other scraper here.

Free tier

500 free rows - $0

On every new account, one-time. No credit card. Per-query limits, file upload and every export format included.

$0 forever
Pay as you go

$0.002 per row after the free tier

About $2 per 1,000 results, and no proxy bill on top - this one runs on the free pool. The estimator shows the row count and credit cost before a run starts.

Most popular
Volume

Custom · high volume

Volume pricing, dedicated workers and an SLA for ongoing monitoring or very large historical pulls. Tell us your numbers and we will put together a quote.

Talk to us
10% off your first paid run.Use code LIVESCRAPER10 at checkout.
Sign up
Pairs well with

One search,
and the ones beside it.

The legal bit

Is scraping
YouTube search legal?

Short answer: this reads the public result listing and takes no video content - but YouTube's terms are stricter than most sites', and that deserves a proper read rather than a reassurance.

What comes back is what the results page shows anyone who runs the same search: titles, channel names, view counts, running times, how long ago something went up, and thumbnails. No video file is downloaded, no sign-in is involved, and no private or members-only content is touched.

That said, YouTube's Terms of Service restrict automated access, and this is a platform that says so explicitly rather than leaving it implied. Google also publishes an official Data API covering search. If you are operating at any scale, or building a product on the results, the honest position is that the official API is the sanctioned route and this is not - which makes it a decision for you and your own advice, not one this page can make on your behalf.

On personal data: the rows describe videos and channels rather than people, and a channel name is a published identity. But a small creator's channel is often a person under another name, so if you are profiling individuals rather than measuring what ranks, that is where data-protection duties start applying to you. We run no third-party trackers on the data layer, and your exports self-delete after 30 days.

livescraper.app · principles
Public result listings only
No video files, no logins, no members-only content
YouTube's ToS restrict automated access - read them
An official Data API exists and is the sanctioned route
Exports self-delete (30 days)
Check YouTube's own terms before scaling.
Common questions

What people ask
before signing up.

The questions we hear most. Something else? Talk to us - humans write the answers, not bots.

How do I scrape YouTube search results?+
Using the YouTube Search Scraper:
  1. Sign in to the platform.
  2. Open the YouTube Search Scraper.
  3. Type your search phrases, one per line - or upload a CSV, XLSX, TXT or Parquet file.
  4. Set a limit per query, or leave it empty to take everything available.
  5. Choose your output format.
  6. Click Get Data.
How do I keep the search ranking?+
Add your own index column when you import, before anything else touches the file. There is no rank or position column in this export - the order results were returned in is carried only by the order of the rows. That survives a straight read and does not survive a sort, so a spreadsheet sorted by view count has lost the ranking with nothing in the data to rebuild it from.
Can I search a specific channel with this?+
Not with this one. It takes search phrases only, and it identifies channels by display name rather than by id, so it cannot reliably tell two channels with the same name apart. If your question is about a particular channel - its catalogue, its shorts, how its own videos compare - the YouTube Video Scraper takes channels and playlists directly and carries the channel id.
Is the view count exact or rounded?+
Exact. It arrives written out with comma grouping, like 49,498 views or 18,226,447 views, rather than abbreviated to 49K or 18M. There is no separate numeric column, so strip the commas and the trailing word yourself before doing arithmetic. This is the opposite of the YouTube Video Scraper, where the display string is rounded and a second column carries the precise number.
Why do some rows have no duration or publish date?+
They are live streams. A stream in progress has no running time and no publish date to report, so both columns come back empty on those rows, and the views column either shows how many people are watching or is empty too. Filter them out before averaging durations or view counts, because they are a different kind of thing.
Why is there no publish date, only '5 months ago'?+
Because that is what the results page gives, and the export passes it through rather than inventing a date. The consequence is that the value is relative to the moment you ran the job, and there is no timestamp column among the nine to anchor it. Record the run date alongside the file - read a month later, the same file says the same words about a different date.
Can I tell shorts apart from regular videos?+
Not from this export. There is no video type column, and every link comes back in the standard watch form, so nothing in the data marks one apart from the other. The YouTube Video Scraper does distinguish them - it returns one or the other per run and labels every row.
How much does it cost?+
The first 500 rows are free and one-time, with no credit card. After that it is $0.002 per row - about $2 per 1,000 results - which is the same flat rate as every other scraper on the platform, with no proxy bill on top because this one runs on the free pool. The estimator shows the cost of a run before it starts.

Your first 500 results,
on the house.

500 one-time free rows on every new account - no expiry date. After that $0.002 per row, pay as you go - no card on file until you say so.

Live instantly · no card required

Scraping YouTube search results at scale

Livescraper's YouTube Search Scraper turns a search phrase into a table of results. You type your phrases one per line - or upload them as a CSV, XLSX, TXT or Parquet file - cap the rows per query, and download the results as a clean CSV, Excel or JSON file. It reads YouTube's own embedded result data through the shared proxy pool, and it works on the free pool, so there is no paid proxy to arrange.

Each row carries nine columns: the phrase it came from, the video id and title, the channel name, the view count written out in full, the running time, how long ago the video went up, a link and a thumbnail. Everything arrives as text.

Content and SEO teams run a phrase to see which videos and channels are visible for it. Researchers compare several phrasings of the same subject side by side, using the exact view counts to settle close calls. Partnerships teams use a topic search to find the creators working in a niche before moving to the video scraper for a particular catalogue.

Three absences matter more than any format here. There is no rank column, so the search order is carried only by the order of the rows - add your own index on import, because a file sorted by view count has lost the ranking for good. There is no channel id, only a display name, so grouping by channel means grouping by a label two channels can share. And there is no timestamp anywhere, while the publish date is relative, so record when you ran the job or the file quietly means something different a month later. Start free: your first 500 rows cost nothing and need no credit card, and after that it is a flat $0.002 per row.