Pricing
from $0.10 / 1,000 results
YouTube Videos Scraper
Scrape YouTube video metadata from search queries, channels, and video URLs without the YouTube API. Export titles, links, views, thumbnails, and channel data.
Pricing
from $0.10 / 1,000 results
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
5
Total users
3
Monthly active users
a day ago
Last modified
Categories
Share
YouTube Videos Scraper extracts structured YouTube video data from search queries, channels, channel URLs, and video URLs without requiring a YouTube API key or account login.
At a glance: input examples include search queries, channel handles, and video URLs; output examples are video rows with titles, IDs, URLs, views, durations, thumbnails, and channel data; use cases include SEO, monitoring, and competitor research; limitations, troubleshooting, and pricing/cost notes are covered below.
Use it to collect video IDs, titles, URLs, descriptions, view counts, publish text, durations, thumbnails, and channel information for market research, content research, influencer discovery, SEO analysis, brand monitoring, and competitor tracking.
What You Can Do
- Find videos for one or more YouTube search queries.
- Pull recent uploads from YouTube @handles, channel IDs, or channel URLs.
- Add direct YouTube video URLs when you already know the videos you want.
- Cap total results to control cost.
- Remove duplicate videos across mixed inputs.
- Export clean JSON, CSV, Excel, XML, or HTML from the Apify dataset.
Input
The easiest setup is:
{"searchQueries":["openai","ai tutorials"],"channels":["@OpenAI"],"maxItems":10,"maxTotalVideos":50}
Basic Options
| Field | Description |
|---|---|
searchQueries | Search terms to find YouTube videos for. |
channels | YouTube @handles, channel IDs, or channel URLs. |
startUrls | Optional YouTube channel or video URLs. |
maxItems | Maximum videos per search query or channel. |
maxTotalVideos | Optional cap across the whole run. Use 0 for no run-level cap. |
Advanced Options
| Field | Description |
|---|---|
keywords | Backward-compatible alias for searchQueries. |
maxVideosPerKeyword | Per-search-query override for maxItems. |
maxVideosPerChannel | Per-channel override for maxItems. |
deduplicateVideos | Removes duplicate video IDs across all inputs. Enabled by default. |
useYtDlpFallback | Uses yt-dlp if direct page extraction returns fewer results than requested. Enabled by default. |
useApifyProxyFallback | Tries direct requests first, then Apify Proxy when available. Enabled by default. |
maxConcurrency | Advanced parallelism control. Default is 6. |
requestTimeoutSecs | Per-request timeout. Default is 12 seconds. |
Existing integrations that use keywords, maxVideosPerKeyword, and maxVideosPerChannel can continue using those fields.
Output
The Actor writes one video record per dataset item. The OUTPUT key-value record contains run metadata, totals, warnings, and links to the dataset.
Example dataset item:
{"record_type":"video","query_type":"direct_search","query":"openai","video_id":"Rlju1Z9e110","url":"https://www.youtube.com/watch?v=Rlju1Z9e110","title":"Analyze earnings and update your investment thesis with Codex","description":"See how the public equity investing plugin for Codex turns a company's latest quarter into a post-earnings analysis.","published_text":"23 hours ago","duration_text":"1:29","view_count":7272,"view_count_text":"7,272 views","channel_id":"UCXZCJLdBC09xxGZ6gcdrc6A","channel_name":"OpenAI","channel_handle":"@OpenAI","channel_url":"https://www.youtube.com/@OpenAI","thumbnail_url":"https://i.ytimg.com/vi/Rlju1Z9e110/hq720.jpg","from_instance":"youtube_direct","scraped_at":"2026-06-13T19:40:35Z"}
Fields may be empty when YouTube does not expose that value on the loaded page.
How To Run On Apify
- Open the Actor on Apify.
- Enter search queries, channels, or YouTube URLs.
- Set
maxItemsand optionallymaxTotalVideos. - Click Start.
- Open the Dataset tab to preview or export results.
You can download results as JSON, CSV, Excel, XML, RSS, or HTML from the Dataset tab.
Python API Example
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run_input ={"searchQueries":["openai","ai tutorials"],"channels":["@OpenAI"],"maxItems":10,"maxTotalVideos":50,}run = client.actor("thescrapelab/Apify-YouTube-Videos-Scraper-2-0").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["url"], item.get("view_count"))
Limits And Caveats
- This Actor scrapes public YouTube pages. It does not use the official YouTube Data API.
- YouTube can change page structure, availability, or anti-bot behavior, which may affect results.
- Search results are YouTube's public web results for the loaded query and may differ by time, region, or ranking.
- Very large runs should use
maxTotalVideosso cost remains predictable. - Direct extraction is tried first for lower cost. Fallback extraction may take longer but improves result coverage.
Troubleshooting
| Problem | What to try |
|---|---|
| No results | Check spelling, use a broader query, or test a known public channel such as @OpenAI. |
| Fewer results than requested | Increase maxItems, keep useYtDlpFallback enabled, or add more queries/channels. |
| Duplicate-looking results | Keep deduplicateVideos enabled. The Actor deduplicates by video ID when available. |
| Run takes longer than expected | Lower maxItems, set maxTotalVideos, or reduce the number of input sources. |
| Some fields are empty | YouTube may not expose every field on every result type. The video URL and video ID are the most stable fields. |
Pricing Notes
The Actor is optimized for low compute cost by using HTTP page extraction instead of a browser. For paid Store monetization, a simple pay-per-result model is recommended because each dataset item maps to one useful video record.
Suggested pricing should be configured in Apify Console after measuring current production runs. A conservative starting point is a per-result event with volume discounts for larger users.
FAQ
Can I scrape YouTube videos without a YouTube API key?
Yes. This Actor reads public YouTube web pages and does not require a YouTube Data API key.
Can I scrape videos from a YouTube channel?
Yes. Add a channel handle, channel ID, or channel URL to channels or startUrls.
Can I scrape YouTube search results?
Yes. Add one or more terms to searchQueries.
Can I export YouTube video data to CSV or Excel?
Yes. After the run finishes, open the Dataset tab and export the results in your preferred format.
Does this Actor scrape comments, transcripts, or full video files?
No. It focuses on video listing metadata such as title, URL, views, duration, publish text, thumbnail, and channel fields.
Is login required?
No. The Actor is designed for publicly available YouTube pages.
