Youtube Search Scraper
Pricing
$19.99/month + usage
Youtube Search Scraper
🔎 YouTube Search Scraper (youtube-search-scraper) extracts titles, URLs, channels, views, duration & upload date from YouTube search results. 📊 Great for SEO, market research & content strategy. 🤖 Automate keyword tracking, competitor intel & datasets via API.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScrapeLabs
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Share
Youtube Search Scraper
Youtube Search Scraper is a fast, reliable YouTube SERP scraper that finds videos and channels from search queries and returns clean, flat JSON with titles, URLs, views, likes, comments, durations, upload dates, and channel stats. It helps marketers, developers, researchers, and analysts scrape YouTube search results at scale without manual browsing — a practical YouTube search API alternative for keyword tracking, competitor intel, and exporting YouTube search results to CSV.
What data / output can you get?
Below are the primary fields this YouTube search results scraper emits to the dataset. Field names match the actual output schema.
| Data type | Description | Example value |
|---|---|---|
| title | Video title | “Our Respect For Jim Carrey After Hearing This 📈! #Shorts” |
| type | Record type; “video” or “channel” | “video” |
| url | Video or channel URL | “https://www.youtube.com/watch?v=f5ksIepT2mE” |
| date | ISO upload timestamp (when available) | “2022-12-15T00:00:00Z” |
| duration | Formatted video length (m:ss or h:mm:ss) | “0:52” |
| viewCount | Video views (integer) | 36334432 |
| likes | Video like count (integer) | 2206496 |
| commentsCount | Number of comments (integer) | 10000 |
| channelName | Display name of the uploader/channel | “The Graham Norton Show” |
| channelUsername | Channel handle (if detected) | “@OfficialGrahamNorton” |
| channelUrl | Canonicalized channel URL | “http://www.youtube.com/@OfficialGrahamNorton” |
| channelViewCount | Channel-wide views (integer) | 4788755834 |
| channelVideoCount | Total number of channel videos (integer) | 2451 |
| numberOfSubscribers | Channel subscriber count (integer) | 5470000 |
| hashtags | Up to 5 hashtags extracted from description | [“#TheGrinch”, “#GrahamNortonShow”] |
| keywords | Up to 5 keywords from tags | [“Graham Norton”, “The Graham Norton Show”] |
| id | Video ID | “f5ksIepT2mE” |
| commentsTurnedOff | Whether comments are disabled | false |
| isMembersOnly | Whether the video is members-only | false |
| thumbnailUrl | Video thumbnail URL | “https://i.ytimg.com/vi/f5ksIepT2mE/hq720_2.jpg…” |
| text | Description snippet (truncated) | “Remember this next time you watch #TheGrinch!…” |
Notes:
- The scraper also outputs channel records when you input channel URLs, including fields like description, joined, country, subscribers, views, videos, canonicalChannelUrl, channelUsername, channelId, links, inputUrl, and aboutUrl.
- All results are stored in the Apify dataset, which you can export to JSON, CSV, or Excel.
Key features
-
💾 Live-save dataset writes Results are written as they’re found, so if a run stops, you keep everything collected so far.
-
🌐 Smart proxy & resilient retries Runs without proxy by default and automatically switches to RESIDENTIAL if YouTube blocks requests, rotating proxy URLs and retrying for reliability.
-
🧩 Flat, analytics-ready JSON Clean, flat schema for videos (titles, views, likes, comments, upload date, duration, tags/hashtags) and channels (canonical URL, handle, counts).
-
🔎 Filtered search & sorting Control maxResults (1–2000) and sort by relevance, date, view count, or rating. Optionally filter by upload date window and video duration.
-
⚡ Parallel collection at scale Batches and processes results concurrently for faster collection — ideal for large keyword lists and ongoing monitoring.
-
🔗 Channel URL & handle normalization Extracts @handles and resolves canonical channel URLs for consistent, deduplicated datasets.
-
👩💻 Developer-friendly Built with the Apify SDK and yt-dlp for robust scraping. Easy to integrate into workflows as a YouTube search results scraper Python/Node.js pipeline via Apify APIs.
-
📤 Easy exports & integrations Export datasets to JSON, CSV, or Excel. Connect to your dashboards, BI tools, or automation stacks as a YouTube search scraping tool.
How to use Youtube Search Scraper - step by step
- Create an Apify account or log in.
- Open “Youtube Search Scraper” in the Apify Store.
- Add your input:
- Enter one or more items in queries. Each item can be a search keyword (e.g., “python programming”) or a full YouTube URL (video or channel).
- Configure filters (optional):
- maxResults: 1–2000 per query.
- sortBy: relevance, date, viewCount, or rating.
- uploadDate filter and duration filter as needed.
- Proxy settings (optional):
- Leave proxyConfiguration empty for default behavior; the actor will automatically switch to RESIDENTIAL if needed.
- Toggle debug (optional):
- Set debug to true for verbose logging during troubleshooting.
- Run the actor:
- Click Start. Progress logs show search, collection, retries, and completions.
- Download results:
- Open the dataset and export to JSON, CSV, or Excel for analysis and integration.
Pro tip: Use a single run with multiple queries to scrape YouTube search results in bulk. Schedule runs to track keywords over time and feed a YouTube search crawler dataset to your dashboards.
Use cases
| Use case name | Description |
|---|---|
| SEO & keyword research | Track rankings, volumes, and engagement for target terms to guide content strategy with a YouTube SERP scraper. |
| Competitor monitoring | Monitor competitor uploads and performance metrics to benchmark and react faster. |
| Content discovery | Identify high-performing topics, niches, and formats to scrape YouTube search results and plan production. |
| Short-form analysis | Evaluate short videos surfaced in search to refine quick-hit content strategy. |
| Market research | Build structured datasets of search results to analyze trends and audience interests with a YouTube search data extractor. |
| Data pipelines (API) | Trigger runs via API and export YouTube search results to CSV/JSON for ETL, enrichment, or ML workflows. |
| Academic & media research | Collect reproducible datasets for experiments, reports, or newsroom investigations. |
Why choose Youtube Search Scraper?
Youtube Search Scraper prioritizes precision, automation, and reliability for search-focused YouTube data extraction.
- ✅ Accurate, flat results: Clean JSON with normalized channel URLs and handles.
- ⚡ Built for scale: Collect up to thousands of results per run; parallelized for speed.
- 👩💻 Developer access: Easy to automate; works as a YouTube search API alternative for pipelines.
- 🌍 Smart proxying: Automatic switch to RESIDENTIAL with retries to reduce blocks.
- 🔒 Safer than extensions: No fragile browser automation; production-grade infrastructure.
- 💾 Export-ready: Download as JSON, CSV, or Excel for BI or warehousing.
In short: a production-ready YouTube search results extractor that outperforms manual scraping and unstable tools.
Is it legal / ethical to use Youtube Search Scraper?
Yes — when used responsibly. This actor collects publicly available information and does not access private or authenticated content.
Guidelines for compliant use:
- Only collect public video and channel data.
- Respect platform terms and applicable laws (e.g., GDPR/CCPA).
- Avoid scraping private, unlisted, or restricted content.
- Use data for legitimate research, analysis, or operational needs.
- Consult your legal team for edge cases or regulated workflows.
Input parameters & output format
Example JSON input
{"queries": ["python programming","site reliability engineering"],"maxResults": 20,"sortBy": "relevance","uploadDate": "","duration": "","type": "video","proxyConfiguration": {},"debug": false}
Input parameters
-
queries (array of strings)
- Description: One search query or URL per line. Examples: «python programming», «best cooking channels», or full URLs like https://www.youtube.com/watch?v=… or https://www.youtube.com/@ChannelName.
- Default: ["python programming"]
- Required: No
-
maxResults (integer)
- Description: Maximum number of results to fetch for each query (1–2000). Higher values collect more data but take longer.
- Default: 10
- Required: No
-
sortBy (string; enum: relevance, date, viewCount, rating)
- Description: How YouTube results are ordered.
- Default: "relevance"
- Required: No
-
uploadDate (string; enum: "", lastHour, today, thisWeek, thisMonth, thisYear)
- Description: Restrict results by upload date window. Leave empty for no filter.
- Default: ""
- Required: No
-
duration (string; enum: "", short, medium, long)
- Description: Only include videos by length: Short (<4 min), Medium (4–20 min), Long (>20 min). Leave empty for no filter.
- Default: ""
- Required: No
-
type (string; enum: video, channel, playlist, movie)
- Description: Type of results to return. Use “video” for standard search results.
- Default: "video"
- Required: No
-
proxyConfiguration (object)
- Description: No proxy by default. If blocked, the actor automatically switches to RESIDENTIAL. You can configure a custom proxy here.
- Default: {}
- Required: No
-
debug (boolean)
- Description: Verbose logging for troubleshooting (requests, retries, proxy switches).
- Default: false
- Required: No
Example JSON output (video, channel, and error records)
[{"title": "Our Respect For Jim Carrey After Hearing This 📈! #Shorts","type": "video","channelName": "The Graham Norton Show","date": "2022-12-15T00:00:00Z","text": "Remember this next time you watch #TheGrinch!…","thumbnailUrl": "https://i.ytimg.com/vi/f5ksIepT2mE/hq720_2.jpg","order": 0,"input": "jim carrey shorts","hashtags": ["#TheGrinch","#GrahamNortonShow"],"channelId": "UC4PziMH5MvvsmqM0VCZTy-g","channelUrl": "http://www.youtube.com/@OfficialGrahamNorton","channelUsername": "@OfficialGrahamNorton","numberOfSubscribers": 5470000,"channelViewCount": 4788755834,"channelVideoCount": 2451,"hiddenSubscriberCount": false,"id": "f5ksIepT2mE","url": "https://www.youtube.com/watch?v=f5ksIepT2mE","viewCount": 36334432,"likes": 2206496,"commentsCount": 10000,"commentsTurnedOff": false,"duration": "0:52","keywords": ["Graham Norton","The Graham Norton Show"],"isMembersOnly": false},{"type": "channel","url": "https://www.youtube.com/@HistoBlend","description": "Bangladesh's HIDDEN Underwater Canyon Secret Revealed…","joined": "Nov 19, 2024","country": "Not specified","subscribers": "N/A","views": "N/A","videos": "N/A","canonicalChannelUrl": "http://www.youtube.com/@HistoBlend","channelUsername": "@HistoBlend","channelId": "UCNZXmz7rTzCbW85E9xbT4Bg","links": [],"inputUrl": "https://www.youtube.com/@HistoBlend","aboutUrl": "https://www.youtube.com/@HistoBlend/about"},{"type": "error","input": "python programming","error": "YouTube bot detection encountered"}]
Notes:
- Video records include engagement and channel stats; channel records are emitted when you input channel URLs.
- Some channel fields (subscribers, views, videos) may appear as “N/A” if the About page is not parsed due to speed optimizations.
Related tools
FAQ
Do I need a YouTube API key to use this YouTube SERP scraper?
No. Youtube Search Scraper runs on Apify and collects public search results without requiring a YouTube API key. It’s a practical YouTube search API alternative for structured, SERP-style data.
Can I scrape channels as well as videos?
Yes. If you add channel URLs to queries, the actor emits channel records with fields like description, joined, country, canonicalChannelUrl, and channelId. Search queries produce video records.
How many results can I collect per query?
You control this with maxResults. The allowed range is 1–2000 per query. Larger values collect more results but take longer.
Does it handle YouTube Shorts?
Yes. Shorts surface in search like standard videos. The scraper collects them as type=video with duration formatting and engagement metrics when available.
What formats can I export to?
All results are stored in your Apify dataset. You can export to JSON, CSV, or Excel for downstream analysis or workflows.
How does proxying work?
The actor uses a smart proxy strategy. It runs without proxy by default and automatically switches to RESIDENTIAL if YouTube blocks the request, rotating proxy URLs and retrying for reliability.
Is there a free trial?
Apify provides trial minutes so you can test the actor before subscribing. When you’re ready for production, upgrade to the monthly plan listed on the actor’s page.
Can I integrate this with Python or Node.js?
Yes. Trigger runs and fetch datasets via Apify’s APIs to build a YouTube search results scraper Python or Node.js pipeline. The actor outputs clean JSON that’s easy to parse.
Final thoughts
Youtube Search Scraper is built to extract structured YouTube search data at scale. With live-save results, smart proxying, filtered search, and flat JSON output, it’s ideal for marketers, developers, analysts, and researchers. Run it on schedules, export YouTube search results to CSV/JSON, and plug them into your dashboards or pipelines. Start extracting smarter YouTube search insights and automate your SERP monitoring today.