What is the YouTube Search Scraper?
The InsightSocial YouTube Search Scraper is a free Chrome extension that exports YouTube search results to CSV, Excel, JSON, or Google Sheets. Search for anything on YouTube, start a run from the sidebar, and every video and Short the search returns becomes a row: title, link, channel, views, upload age, duration, description snippet, badges, and the position it ranked at. No YouTube Data API key, no search quota, no copying results off the screen.
A search results page is one of the most useful views YouTube has and one of the hardest to take away. It tells you which videos YouTube believes answer a query, in what order, from which channels, and how old and how watched they are. But it only exists as a scrolling page. The extension turns it into a table, keeping the ranking intact, so you can sort it, filter it, share it, or compare it against the same search next month.
It works inside your own browser. The extension reads the results page you already have open, then asks YouTube for the next batch of results the same way the page does when you scroll. Because it never has to scroll, it keeps collecting in a background tab while you do something else.
What a search run collects
A YouTube results page mixes several kinds of item. Here is how each one is handled:
| On the results page | In your export |
|---|---|
| Videos | Included, with title, channel, views, upload age, duration, snippet and badges |
| Shorts (in Shorts shelves) | Included in the position YouTube shows them, with title, link, views and thumbnail |
| Shelves of related videos | Included, in page order |
| Ads and sponsored results | Skipped |
| Channel and playlist results | Skipped, since they are not videos |
Every row also carries the search query it came from, which keeps exports from several searches easy to combine in one sheet.
Who is it for?
- YouTube SEO and content teams checking which titles, lengths and channels rank for the keywords they want to win
- Influencer scouts searching a topic and listing every channel that ranks for it, with views per video, before reaching out
- Market researchers sizing the video conversation around a product, brand, or category
- Creators checking what already ranks before scripting a video, and spotting searches where the top results are old or thin
- Analysts and academics collecting search results as structured data without API access
- Agencies taking a before-and-after snapshot of a client's keywords around a campaign
Key Benefits
- The ranking survives the export: every row records its result position, so "what ranks first" is a column, not something you have to remember
- Past the first screen: the run keeps requesting results until it reaches your target or YouTube has nothing more to show for that search
- Filters carry over: set upload date, duration, or type on YouTube before you start, and the run collects the filtered list
- Keeps going in a background tab: no scrolling means nothing stalls when the tab is hidden
- Stop any time, keep what you have: results are saved in batches as each page arrives
How to Scrape YouTube Search Results
Step 1: Install the Extension
Add InsightSocial from the Chrome Web Store. The icon appears in your browser toolbar.
Step 2: Search on YouTube
Type your keyword into YouTube's search bar as you normally would. If you want only recent uploads or only long videos, open YouTube's Filters panel and set them now. Filters change the results page's address, and the run collects from that address.
Step 3: Open the Sidebar
Click the InsightSocial icon. The sidebar recognises the results page and shows your search back to you as the source, so you can confirm the query before anything runs.
Step 4: Set How Many
Choose 50, 100 or 300 results, or type your own number. Start with 100 on a new keyword to see how deep it goes.
Step 5: Start, Then Work Elsewhere
Click Start. Results appear in the sidebar's live feed as each page lands. You can switch tabs and the run keeps going. Avoid navigating the scraping tab itself, because changing the page ends the run.
Step 6: Export
Export to CSV, .xlsx for Excel, JSON, or Google Sheets. The run is also saved to your private InsightSocial portal, where you can sort the list by views, date, duration or channel and export it again later.
What Each Row Contains
- Title, URL and video ID: a
watch?v=link for videos, a/shorts/link for Shorts - Result position, starting at 1 for the top result
- Search query the row came from
- Channel name, @handle, channel ID and avatar (videos; Shorts shelves don't show the channel)
- Views as a number and as YouTube printed it. Where YouTube shows a rounded figure ("1.2M views"), the number is that figure
- Upload age and date: YouTube's text ("2 weeks ago") and a date calculated from it, accurate to the unit YouTube used
- Duration as shown ("8:05") and in seconds
- Description snippet: the lines of description YouTube shows under a result, when it shows any
- Badges such as 4K, CC or New, when YouTube adds them
- Thumbnail URL and Is Short / Is Live flags
- Hashtags, mentions and links found in the title and snippet
A results page does not show like counts, comment counts, or the full description, so those are not in the export. When a result is worth reading in depth, take its link to the YouTube Comments Scraper for the discussion underneath it. When a channel keeps appearing across your searches, the YouTube Channel Scraper exports its whole catalogue.
YouTube Search Scraper vs the Alternatives
| InsightSocial extension | YouTube Data API search | Copy and paste | Writing your own scraper | |
|---|---|---|---|---|
| Setup | Install the extension | Google Cloud project, API key, code | None | Code, and upkeep when YouTube changes |
| Quota | None | Search is one of the costliest calls against the daily quota | None | None, but blocks are your problem |
| Matches what you see on YouTube | Yes, it reads your results page | Not necessarily; the API ranks results its own way | Yes | Depends on the scraper |
| Shorts in shelves | Yes | Mixed in as ordinary videos | Manually | Depends |
| Ranking position per row | Yes | Order of the response | By hand | Depends |
| Views and duration as numbers | Yes | Needs a second request per batch of videos | No | Depends |
| Output | CSV, Excel, JSON, Google Sheets | JSON you parse yourself | Unstructured text | Whatever you build |
The API returns exact counts and timestamps per video once you make the extra requests, and it is the right tool inside a product you are building. For research, where the question is "what does YouTube show for this search?", reading the results page itself answers it directly.
Limits Worth Knowing
- YouTube decides how deep a search goes. Broad searches keep returning results for a long time; narrow ones run out sooner. The run stops when YouTube offers no more, or when several pages in a row bring nothing new.
- Results are personal. YouTube tailors search by account, watch history, language and location, and the run collects what your session is shown. For a less personalised snapshot, use a Chrome profile that is not signed in to YouTube.
- Upload dates are calculated from the age text, so a "3 years ago" result is dated three years before the run, not to the exact day.
- Shorts carry fewer fields. Shorts shelves show a title, view count and thumbnail; channel, upload age and duration are blank for those rows.
- The tab must stay on the results page. Switching to other tabs is fine; navigating the scraping tab away ends the run, keeping everything collected so far.
Frequently Asked Questions
Can I sort YouTube search results by upload date?
Yes, in two ways that answer different questions. To collect only recent videos, set an upload-date filter in YouTube's Filters panel before you start; the run collects the filtered results. To see the normal ranking ordered by age, run the search as is and sort the Date column in the portal or your spreadsheet. The Result Position column keeps YouTube's original order either way.
Can I scrape several keywords at once?
Each search is its own run. Search the first keyword, run it, then search the next. Every row carries its search query, so the files combine cleanly into one sheet, and the portal keeps each search as a separate session you can reopen.
Can I track where a video ranks over time?
Run the same search on different days and compare the exports by video ID. The Result Position column shows where each video sat on each date. Keep the filters and the Chrome profile the same between runs so personalisation doesn't move the numbers for you.
Do I need to be signed in to YouTube?
No. Search results page the same way signed in or signed out. Signing in only changes which results YouTube chooses to show you.
How much does exporting cost?
Scraping is free on every plan. Credits are spent only on the rows you export, one per row, and re-exporting a row you already paid for is free:
- Free plan: 500 exported rows per month
- Pro Monthly: 10,000 exported rows per month for $9.99/mo
- Pro Yearly: 10,000 exported rows per month, billed $95.88/year ($7.99/mo)
- Credit packs: one-time credits that never expire, used after your monthly rows run out
Is scraping YouTube search results allowed?
Search results are public listings, and recording them for research, SEO, and market analysis is common practice. Respect YouTube's Terms of Service and privacy law such as GDPR and CCPA, and use what you collect to study content and channels, not to target individuals.
Researching the same topic on another platform? The Instagram Hashtag Scraper exports the posts under a hashtag, and the TikTok Video Scraper covers TikTok videos from searches, hashtags and creator profiles.