Youtube Scraper
Pricing
from $5.99 / 1,000 results
Youtube Scraper
📺 YouTube Scraper extracts video & channel data — titles, descriptions, views, likes, comments, tags, publish dates & playlists. 🔍 Perfect for SEO research, content analysis, trend tracking & competitor insights. ⚡ Fast, reliable, API-ready. Also grabs thumbnails, durations, URLs, subtitles.
Pricing
from $5.99 / 1,000 results
Rating
0.0
(0)
Developer
Scrapier
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Youtube Scraper
The Youtube Scraper is a fast, reliable YouTube data extraction tool that collects structured video and channel metadata directly from public search results and video pages — no API key required. It solves the heavy lifting of gathering titles, views, likes, comments count, durations, publish dates, hashtags, and transcripts at scale. Built for marketers, developers, data analysts, and researchers, this youtube video scraper and youtube data scraper supports advanced filters and automated transcript downloads to power SEO research, content analysis, and trend tracking workflows.
What data / output can you get?
Below are common fields the actor stores to the Apify Dataset for each video. You can export results to JSON, CSV, or Excel via the Apify platform.
| Data type | Description | Example value |
|---|---|---|
| title | Video title | “Inside the Apify platform” |
| type | Result type (“video” or “shorts”) | “video” |
| id | YouTube video ID | “dQw4w9WgXcQ” |
| url | Canonical video URL (Shorts use /shorts/) | “https://www.youtube.com/watch?v=dQw4w9WgXcQ” |
| thumbnailUrl | HD thumbnail URL | “https://i.ytimg.com/vi/dQw4w9WgXcQ/hq720.jpg” |
| viewCount | Parsed numeric view count | 1500000 |
| date | ISO-like publish date (when available) | “2025-01-15T00:00:00.000Z” |
| likes | Parsed like count (when available) | 50000 |
| duration | Normalized duration (HH:MM:SS) | “00:03:33” |
| channelName | Channel display name | “Apify” |
| channelId | Channel ID (UC…) when detected | “UCxxxxxxxxxxxxxxxxxxxxxxxx” |
| commentsCount | Parsed comments count (when available) | 12000 |
Bonus fields include:
- channelUrl, channelUsername
- numberOfSubscribers (when detected)
- text (description snippet or full description when available)
- descriptionLinks (array of { url, text })
- subtitles (available caption languages)
- hashtags (parsed from title/description)
- fromYTUrl (source results page URL or original video URL for direct scraping)
- isCreativeCommons, isPurchased (best-effort flags)
- transcript, transcriptLanguage, transcriptFormat (when transcript download is enabled)
- translatedTitle, translatedText, collaborators, isMonetized, commentsTurnedOff, order
Key features
-
⚡️ Fast, concurrent enrichment Batch-fetches video pages and enriches results with likes, comments count, subscribers, subtitles, and more for high-throughput scraping.
-
🧠 No API key required Scrapes public YouTube web endpoints and watch pages directly, functioning as a dependable youtube scraper tool and youtube scraper API alternative.
-
🛡️ Smart anti-blocking with proxy escalation Automatically escalates from no proxy → Apify datacenter → Apify residential (with retries) and sticks with residential once it works.
-
🕵️ Browser impersonation for resilience Uses impit to mimic real Chrome/HTTP/TLS fingerprints and reduce blocking.
-
🎛️ Powerful filters Include-only videos matching HD, 4K, HDR, Live, 360°, 3D, VR180, CC, and location flags, plus date/type/length filters and post-run sorting.
-
💬 Transcript downloader Optional youtube transcript scraper: fetch subtitles/transcripts in SRT, plain text, or timestamped JSON.
-
🧩 Developer-friendly Built on Python and Apify SDK with structured outputs ready for pipelines (great for youtube scraper python integrations and automation).
-
🔌 Workflow-ready Results live in Apify Dataset for seamless export to JSON/CSV/Excel and integration with Make, n8n, Zapier, or internal systems.
-
🔒 Production-grade reliability Clear logging, connection strategy reporting, and pagination safety limits for hands-off operation.
How to use Youtube Scraper - step by step
- Create or log in to your Apify account.
- Open the actor in Apify Console and click “Run”.
- Enter input:
- searchTerms: one or more keywords (e.g., “Crawlee”).
- Or provide startUrls with direct video links.
- Configure limits and filters:
- maxVideos, maxShorts, maxStreams.
- Add feature filters (isHD, is4K, isHDR, isLive, etc.).
- Optionally set date/type/length filters and sorting.
- (Optional) Enable transcript download:
- downloadSubtitles, subtitlesLanguage, subtitlesFormat, preferAutoGenerated.
- (Optional) Set proxyConfiguration:
- Defaults to trying direct first, then falls back automatically.
- Click Start:
- Watch progress and proxy messages in the Log tab.
- Review & export results:
- Open the Dataset tab and export to JSON, CSV, or Excel.
Pro Tip: Orchestrate runs and pull datasets programmatically using the Apify API to build a fully automated youtube scraper API pipeline.
Use cases
| Use case name | Description |
|---|---|
| Marketing + SEO research | Analyze titles, hashtags, and performance metrics to optimize your content strategy and keyword targeting. |
| Competitor monitoring | Track view counts, likes, and publish cadence across competitor videos and Shorts. |
| Content discovery | Find relevant long-form videos or Shorts via search terms and filter by HD/4K/HDR or length. |
| Academic & NLP workflows | Enable transcript download (SRT/text/JSON) to build datasets for topic modeling and language analysis. |
| Social listening lite | Monitor hashtags and commentsCount to gauge engagement on public videos without scraping private data. |
| Data pipeline integration | Feed structured outputs into BI dashboards or ETL workflows using the Apify API and CSV/JSON exports. |
| Editorial planning | Sort results by date or viewCount to spot trends and plan content calendars. |
Why choose Youtube Scraper?
Positioned for precision and reliability, this YouTube metadata and transcript extractor combines performance with robust anti-blocking.
- ✅ Accurate enrichment: Combines search parsing with watch-page enrichment to add likes, commentsCount, subscribers, and subtitles when available.
- 🌍 Multilingual-ready: Targets subtitles and transcript languages across global content.
- 📈 Scalable by design: Concurrency controls and pagination safety handle batch runs smoothly.
- 💻 Developer access: Clean JSON schema and Apify API support make integration straightforward for youtube scraper python pipelines.
- 🛡️ Ethical & safe: Collects only publicly available data; no login or private access.
- 💸 Cost-effective automation: Export to JSON/CSV/Excel and automate with minimal setup.
- 🧩 Better than extensions: Avoids flaky browser extensions with a production-grade backend and transparent proxy strategy.
Bottom line: a dependable youtube scraper tool for teams that need structured, automation-ready outputs without brittle setups.
Is it legal / ethical to use Youtube Scraper?
Yes — when done responsibly. This actor accesses only publicly available YouTube pages and does not log in or bypass authentication.
Guidelines to follow:
- Collect public video and channel metadata only.
- Avoid scraping private or paywalled content.
- Comply with applicable laws (e.g., GDPR, CCPA) and respect YouTube terms.
- Use the data responsibly and verify compliance with your legal team for edge cases.
Input parameters & output format
Example JSON input
{"searchTerms": ["Crawlee"],"maxVideos": 10,"maxShorts": 0,"maxStreams": 0,"downloadSubtitles": true,"saveSubtitlesToKvs": false,"subtitlesLanguage": "en","preferAutoGenerated": false,"subtitlesFormat": "srt","sortingOrder": "date","dateFilter": "week","videoTypeFilter": "video","lengthFilter": "medium","isHD": true,"hasCC": false,"isCreativeCommons": false,"is3D": false,"isLive": false,"isPurchased": false,"is4K": false,"is360": false,"hasLocation": false,"isHDR": false,"isVR180": false,"publishedAfter": "","sortBy": "viewCount","proxyConfiguration": { "useApifyProxy": false }}
All input fields
-
searchTerms (array)
- Description: Enter one or more YouTube search keywords. The actor runs a full scrape per term and collects matching videos, Shorts, and streams.
- Default: not set
- Required: no
-
maxVideos (integer)
- Description: How many regular (non‑Shorts, non‑live) videos to scrape per search term. Use 0 to skip long‑form videos.
- Default: 10
- Required: no
-
maxShorts (integer)
- Description: How many YouTube Shorts to collect per keyword. Use 0 to exclude Shorts.
- Default: 0
- Required: no
-
maxStreams (integer)
- Description: Limit how many live or upcoming streams to scrape per search term. Use 0 to ignore live content.
- Default: 0
- Required: no
-
startUrls (array)
- Description: Provide direct YouTube URLs to scrape without using search terms. (Current implementation processes direct video URLs.)
- Default: not set
- Required: no
-
downloadSubtitles (boolean)
- Description: Download video subtitles/transcripts when available.
- Default: false
- Required: no
-
saveSubtitlesToKvs (boolean)
- Description: Store each downloaded transcript in the key‑value store (e.g., “transcript-VIDEO_ID”) for separate download.
- Default: false
- Required: no
-
subtitlesLanguage (string)
- Description: Primary language for subtitles/transcripts (e.g., en, es, fr, de).
- Default: "en"
- Required: no
-
preferAutoGenerated (boolean)
- Description: Prefer auto‑generated subtitles over manually uploaded ones.
- Default: false
- Required: no
-
subtitlesFormat (string) — one of: "srt", "text", "timestamp"
- Description: Output format for transcripts (SRT, plain text, or timestamped JSON).
- Default: "srt"
- Required: no
-
sortingOrder (string) — one of: "", "relevance", "date", "viewCount", "rating"
- Description: Sort order applied via the YouTube search URL; post-run sorting also supported.
- Default: ""
- Required: no
-
dateFilter (string) — one of: "", "hour", "today", "week", "month", "year"
- Description: Apply YouTube’s “Upload date” filter.
- Default: ""
- Required: no
-
videoTypeFilter (string) — one of: "", "video", "channel", "playlist", "movie"
- Description: Keep only standard videos (exclude Shorts) when set to "video".
- Default: ""
- Required: no
-
lengthFilter (string) — one of: "", "short", "medium", "long"
- Description: Use YouTube’s length presets (under 4 mins, 4–20 mins, over 20 mins).
- Default: ""
- Required: no
-
isHD (boolean)
- Description: Only include HD videos (720p+).
- Default: false
- Required: no
-
hasCC (boolean)
- Description: Only include videos with at least one proper CC track.
- Default: false
- Required: no
-
isCreativeCommons (boolean)
- Description: Keep only videos marked Creative Commons when available.
- Default: false
- Required: no
-
is3D (boolean)
- Description: Include only stereoscopic 3D videos.
- Default: false
- Required: no
-
isLive (boolean)
- Description: Restrict results to live/live‑style content.
- Default: false
- Required: no
-
isPurchased (boolean)
- Description: Best‑effort filter for purchased/paid content.
- Default: false
- Required: no
-
is4K (boolean)
- Description: Keep only videos that offer at least one 2160p stream.
- Default: false
- Required: no
-
is360 (boolean)
- Description: Include only 360° (spherical) videos.
- Default: false
- Required: no
-
hasLocation (boolean)
- Description: Include only videos with explicit location metadata.
- Default: false
- Required: no
-
isHDR (boolean)
- Description: Include only High Dynamic Range videos.
- Default: false
- Required: no
-
isVR180 (boolean)
- Description: Include only VR180 videos.
- Default: false
- Required: no
-
publishedAfter (string; YYYY-MM-DD or empty)
- Description: Include only videos published after this date.
- Default: ""
- Required: no
-
sortBy (string) — one of: "", "date", "viewCount", "likes"
- Description: Post‑processing sort of the final dataset by a chosen field.
- Default: ""
- Required: no
-
proxyConfiguration (object)
- Description: Choose starting proxy setup. Actor auto‑escalates from none → datacenter → residential if blocked.
- Default: { "useApifyProxy": false } (prefill)
- Required: no
Example JSON output
{"title": "Video Title","translatedTitle": null,"type": "video","id": "dQw4w9WgXcQ","url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","thumbnailUrl": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hq720.jpg","viewCount": 1500000,"date": "2025-01-15T00:00:00.000Z","likes": 50000,"location": null,"channelName": "Channel Name","channelUrl": "https://www.youtube.com/@channelname","channelUsername": "channelname","collaborators": null,"channelId": "UCxxxxxxxxxxxxxxxxxxxxxxxx","numberOfSubscribers": 1000000,"duration": "00:03:33","commentsCount": 12000,"text": "Video description...","translatedText": null,"descriptionLinks": [{ "url": "https://example.com", "text": "https://example.com" }],"subtitles": ["en", "es"],"order": 0,"commentsTurnedOff": false,"fromYTUrl": "https://www.youtube.com/results?search_query=example","isMonetized": null,"hashtags": ["#example"],"isCreativeCommons": false,"isPurchased": false,"transcript": "1\n00:00:00,000 --> 00:00:02,000\nHello world...\n","transcriptLanguage": "en","transcriptFormat": "srt"}
Notes:
- Some fields (likes, commentsCount, numberOfSubscribers, subtitles, transcript) appear only when detected.
- If neither searchTerms nor startUrls are set, the actor uses “Crawlee” as a default search term.
FAQ
Do I need a YouTube API key?
No. The actor fetches public web data from YouTube’s endpoints and watch pages, so you can run it without any API key.
Can this scrape YouTube comments?
It captures commentsCount from public pages when available, but it does not extract individual comment texts. For most analytics, commentsCount is a useful engagement metric to combine with views and likes.
Does it download transcripts/subtitles?
Yes. Enable downloadSubtitles and choose subtitlesLanguage and subtitlesFormat (srt, text, or timestamp). You can also prefer auto-generated tracks.
Can I target only long-form videos or filter by length/quality?
Yes. Use videoTypeFilter="video" to focus on standard videos and lengthFilter to keep short/medium/long durations. Quality-based filters like isHD, is4K, and isHDR are also supported.
Can I use it with Python or via an API?
Yes. It runs on Apify and integrates via the Apify API. This makes it easy to embed in a youtube scraper python pipeline or use it as a youtube scraper API in your workflows.
What happens if requests get blocked?
The actor automatically escalates connection type: no proxy → Apify datacenter → Apify residential (with retries) and continues with residential once successful.
Does it support direct URLs?
Yes, for direct video URLs. The current implementation processes search results and individual video pages when provided in startUrls.
How many videos can I scrape per query?
You control this with maxVideos and maxShorts. The actor paginates and stops as soon as your limits are reached or pages are exhausted.
Closing CTA / Final thoughts
The Youtube Scraper is built for structured, scalable YouTube metadata and transcript extraction from public pages. With smart filtering, robust anti-blocking, and developer-friendly outputs, it helps marketers, analysts, and researchers build repeatable youtube data extraction tool workflows. Use it via the Apify API to automate a youtube scraper API pipeline or connect exports to your BI stack. Start extracting smarter, transcript-enabled YouTube insights today.
What are other Youtube scraping tools?
If you want to scrape specific Youtube data, you can use any of the dedicated scrapers below for faster and more targeted results.