Youtube Channel Scraper
Pricing
$35.00/month + usage
Youtube Channel Scraper
Scrape YouTube channels or keyword searches for video URLs, titles, metrics, descriptions, channel profiles, social links, and transcripts when captions are available. Fast, low-cost YouTube data extraction for monitoring, influencer research, SEO, and LLM workflows.
Pricing
$35.00/month + usage
Rating
4.9
(6)
Developer
Newbs
Actor stats
75
Bookmarked
2.9K
Total users
46
Monthly active users
5 days ago
Last modified
Categories
Share
Scrape YouTube channels or YouTube search results and export clean video data from Apify. This actor collects video URLs, titles, thumbnails, descriptions, views, likes, comments, publish dates, duration, channel profile data, channel social links, and transcripts when YouTube exposes caption tracks.
It is built for teams that need reliable YouTube data without spending minutes clicking through channels manually.
What You Can Extract
- Latest videos from one or many YouTube channels
- Videos from keyword search results
- Video metadata: title, URL, ID, thumbnail, description, publish date, duration
- Engagement metrics: views, likes, comments
- Channel metadata: handle, subscriber count, profile image, banner image, total videos, total channel views, verification status
- Channel information and outbound links from the About section
- Video transcripts from available YouTube captions
- Clean JSON output ready for CSV, Excel, API, Make, Zapier, dashboards, or internal enrichment workflows
Common Use Cases
- Monitor competitor YouTube channels
- Build influencer and creator lead lists
- Track brand channels and campaign performance
- Collect video metadata for SEO or content research
- Extract transcripts for summarization, search, classification, or LLM pipelines
- Feed YouTube data into CRMs, spreadsheets, BI tools, and automation workflows
Why Use This Actor
- Optimized for speed: channel and video details can run in parallel.
- Lower proxy cost:
proxyMode: "auto"keeps normal browsing fast and uses residential proxy only for fallback calls that need it. - Better transcript coverage: direct caption extraction is tried before slower UI scraping.
- Restart friendly: checkpointing lets long runs recover without starting from zero.
- Integration ready: structured input schema, dataset schema, and output schema make results easier to use through the Apify UI, API, MCP, Make, Zapier, and scheduled runs.
Recent benchmark on Apify with 2 Adidas videos and 2 Zara videos:
- 4 videos returned
- Actor runtime: about 75 seconds
- Total Apify usage: about $0.013
- Adidas transcripts extracted successfully
- Zara videos had no caption tracks exposed by YouTube, so transcripts were returned as
null
Actual runtime and cost depend on number of channels, number of videos, selected proxy mode, transcript availability, and YouTube response speed.
Input
Minimal Channel Input
{"channel": ["https://www.youtube.com/@adidas/videos", "zara"],"keywords": false,"numberOfResults": 2,"needVideoDetails": true}
Keyword Search Input
{"channel": ["running shoes", "summer fashion campaign"],"keywords": true,"numberOfResults": 10,"needVideoDetails": true}
Fast List-Only Input
Use this when you only need video URLs and basic listing data.
{"channel": ["https://www.youtube.com/@adidas/videos"],"keywords": false,"numberOfResults": 25,"needVideoDetails": false}
Input Options
| Field | Description |
|---|---|
channel | List of YouTube channel handles, channel URLs, /videos URLs, or search terms. |
keywords | Set to true when channel contains search keywords instead of channel names or URLs. |
numberOfResults | Number of videos to collect per channel or keyword. |
needVideoDetails | Set to true for full metadata, metrics, channel info, and transcripts. Set to false for faster basic video collection. |
localeHl | YouTube language hint, for example en, fr, or de. |
localeGl | YouTube country hint, for example US, FR, or DE. |
acceptLanguage | Browser language header, for example en-US,en;q=0.9. |
maxChannelConcurrency | Number of channel/search pages processed at the same time. |
maxVideoDetailConcurrency | Number of video detail pages scraped in parallel per channel. |
proxyMode | auto is recommended. Use always for more defensive scraping or never to avoid proxy usage. |
proxyConfiguration | Optional Apify Proxy configuration. If omitted in auto mode, fallback proxy calls are handled automatically. |
transcriptUiFallback | Optional slower fallback that clicks the YouTube transcript UI when direct caption extraction fails. |
checkpointEveryVideos | Saves progress every N processed videos. Higher values reduce storage writes for small runs. |
interVideoDelayMs | Optional delay between video detail scrapes. Keep 0 for speed. |
Output
The actor stores results in the default Apify dataset. You can download the data as JSON, CSV, Excel, XML, RSS, or HTML from the Apify Console, or consume it through the Dataset API.
Example output item:
{"title": "Chasing Sub 2: The Journey of Sabastian Sawe's Historic 1:59:30 Marathon","author": "@adidas","videoUrl": "https://www.youtube.com/watch?v=qRr0lmYvp5g","coverImage": "https://i.ytimg.com/vi/qRr0lmYvp5g/hqdefault.jpg","subscriberCount": 2330000,"likeCount": 5400,"description": "Video description text...","viewCount": 103403,"commentCount": 201,"publishedAt": "2026-04-30T00:00:00.000Z","duration": "00:12:30","id": "qRr0lmYvp5g","amountOfVideos": 972,"profilePicture": "https://yt3.googleusercontent.com/...","profileBanner": "https://yt3.googleusercontent.com/...","channelTotalViews": 481647084,"isChannelVerified": true,"commentsTurnedOff": false,"transcript": "Full transcript text when captions are available...","scrapingStatus": "success"}
Transcript Behavior
The actor first tries direct YouTube caption sources because they are faster and cheaper than UI automation. If YouTube blocks or hides captions, the actor can use proxy-backed caption fallback. If a video has no caption tracks exposed by YouTube, transcript will be null.
For maximum transcript attempts, enable:
{"transcriptUiFallback": true,"proxyMode": "auto"}
This can improve recovery in some edge cases, but it is slower.
Speed And Cost Tips
- Keep
proxyModeset toautofor the best balance of speed and reliability. - Use
needVideoDetails: falsewhen you only need video URLs and thumbnails. - Start with
maxChannelConcurrency: 2andmaxVideoDetailConcurrency: 2. - Increase concurrency carefully; YouTube can throttle or change responses when runs become too aggressive.
- Keep
transcriptUiFallbackdisabled unless transcripts are more important than speed. - Use schedules for recurring monitoring instead of running large backfills repeatedly.
Integrations
This actor works with standard Apify platform features:
- Dataset export in JSON, CSV, Excel, XML, RSS, and HTML
- Apify API and API clients
- Scheduled runs for channel monitoring
- Webhooks after every run
- Make, Zapier, and other no-code automation tools
- Actor chaining and MCP/AI-agent workflows through the output schema
FAQ
Can I scrape multiple channels in one run?
Yes. Add multiple handles or URLs to the channel array. The actor processes channels concurrently based on maxChannelConcurrency.
Can I search by keyword instead of channel?
Yes. Put search terms in channel and set keywords to true.
Why is a transcript missing?
YouTube does not expose captions for every video. Some videos have no captions, some captions are region or client restricted, and some can be hidden by YouTube. In those cases the actor returns transcript: null instead of fabricating data.
Why are comments sometimes null?
Some videos have comments disabled or hidden. The actor returns commentsTurnedOff when it can detect that state.
What proxy mode should I use?
Use auto for most runs. It keeps the main browser fast and only uses residential proxy for fallback requests. Use always only if your runs are consistently blocked.
Related Actors
Responsible Use
This actor extracts publicly available YouTube data. You are responsible for using the data in compliance with applicable laws, YouTube terms, privacy rules, and your own internal policies. Do not use scraped data for spam, harassment, or unlawful profiling.