YouTube Scraper
Pricing
Pay per usage
YouTube Scraper
YouTube scraper with transcript extraction. Search videos, scrape channels, get exact metadata, and extract subtitles/captions with timestamps. No API key, no browser. Fast HTTP-only.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
kane liu
Actor stats
0
Bookmarked
1
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Share
Extract YouTube video data at scale — search results, channel videos, full metadata, and transcripts with timestamps — all via fast HTTP-only extraction. No browser, no login, no API key required.
Features
- Search YouTube — scrape video results for any keyword with automatic pagination
- Channel scraping — get all videos from any YouTube channel by URL or @handle
- Video details — exact publish dates, categories, like counts, and full descriptions via internal YouTube APIs
- Transcript extraction — pull full subtitles and captions with timestamps; supports auto-generated and manually uploaded captions in any language
- Multi-language subtitles — specify a preferred language code; falls back gracefully to the first available language
- Fast and lightweight — HTTP-only extraction, no headless browser overhead
- Auto-deduplication — results are deduplicated by video ID across all input sources
- Combine modes — mix search queries, channel URLs, and video URLs in a single run
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQueries | array of strings | — | Keywords to search on YouTube. Each query runs independently and returns up to maxResults videos. |
channelUrls | array of strings | — | YouTube channel URLs to scrape. Supports /@handle, /channel/ID, and /c/name formats. |
videoUrls | array of strings | — | Individual video URLs for targeted detail or transcript extraction. |
maxResults | integer | 50 | Maximum videos to return per search query or channel (1–5000). |
scrapeDetails | boolean | false | Fetch full video metadata (exact publish date, category, like count, full description) for each result. Slower but more complete. |
includeTranscript | boolean | false | Extract full transcript/subtitles with timestamps. Works for any video with captions (auto-generated or manual). |
transcriptLanguage | string | "en" | Preferred transcript language code (e.g. "en", "es", "ja", "de"). Falls back to the first available language if the requested one is not found. |
At least one of searchQueries, channelUrls, or videoUrls is required.
Output Fields
| Field | Type | Available in | Description |
|---|---|---|---|
videoId | string | all modes | YouTube video ID |
title | string | all modes | Video title |
url | string | all modes | Full YouTube video URL |
channelName | string | all modes | Channel display name |
channelId | string | all modes | YouTube channel ID |
channelUrl | string | all modes | Channel URL |
viewCount | integer | all modes | Total view count |
duration | string | search / channel | Human-readable duration (e.g. "1:08:23") |
durationSeconds | integer | all modes | Duration in seconds |
publishedText | string | search / channel | Relative publish time (e.g. "5 years ago") |
publishedAt | string | details mode | Exact ISO 8601 publish date (e.g. "2020-11-18T08:05:43-08:00") |
description | string | all modes | Video description — snippet for search results, full text when details are enabled |
thumbnailUrl | string | all modes | Highest-quality thumbnail URL |
category | string | details mode | Video category (e.g. "Education", "Science & Technology") |
isLive | boolean | all modes | Whether the video is an active live stream |
transcript | array of objects | transcript mode | Full transcript as an array of { "start": float, "duration": float, "text": string } entries |
transcriptLanguage | string | transcript mode | Language code of the transcript that was returned |
transcriptText | string | transcript mode | Full transcript as a single concatenated plain-text string |
Usage Examples
Search YouTube
Search for videos matching one or more keywords. Pagination is handled automatically.
{"searchQueries": ["web scraping tutorial", "python automation"],"maxResults": 50}
Scrape Channel Videos
Get all videos from a YouTube channel. Use the channel's @handle, /channel/ID, or /c/name URL.
{"channelUrls": ["https://www.youtube.com/@freecodecamp","https://www.youtube.com/@TechWithTim"],"maxResults": 200}
Get Video Details
Fetch full metadata for specific videos — exact publish date, category, like count, and complete description.
{"videoUrls": ["https://www.youtube.com/watch?v=XVv6mJpFOb0","https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"scrapeDetails": true}
Extract Transcripts / Subtitles
Pull full transcripts with timestamps for any video that has captions (auto-generated or manually uploaded). This is a YouTube transcript extractor and YouTube subtitle extractor in one — no third-party captioning service required.
{"videoUrls": ["https://www.youtube.com/watch?v=XVv6mJpFOb0"],"includeTranscript": true,"transcriptLanguage": "en"}
Each transcript entry in the output looks like:
{"start": 12.4,"duration": 3.2,"text": "Welcome to this tutorial on web scraping."}
Search with Full Details and Transcripts
Combine all modes in one run — search for videos, enrich with exact metadata, and extract captions.
{"searchQueries": ["machine learning explained"],"maxResults": 20,"scrapeDetails": true,"includeTranscript": true,"transcriptLanguage": "en"}
Pricing
| Mode | Approximate throughput |
|---|---|
| Search only | ~50 videos per compute unit |
| Search + details | ~10 videos per compute unit |
| Search + details + transcript | ~8 videos per compute unit |
Transcript extraction is included at no extra cost — approximately $2 per 1,000 results, making this one of the most cost-effective YouTube scraping and transcript extraction solutions on Apify Store.
Notes
- No API key needed — this actor works entirely through publicly accessible YouTube endpoints. You do not need a Google/YouTube Data API key.
- No browser — pure HTTP extraction means faster runs and lower cost compared to browser-based scrapers.
- Transcript availability — transcripts are only available for videos where captions have been enabled by the creator or auto-generated by YouTube. Videos without any captions will return an empty
transcriptfield. - Language fallback — if the requested
transcriptLanguageis not available, the actor returns the first available language and reports it intranscriptLanguage. - Rate limits — the actor uses residential proxies automatically on the Apify platform. Running locally without proxies may result in temporary rate limiting on large runs.
- Public data only — all extracted data is publicly visible to any YouTube visitor without an account. No authentication or login is used.
Legal
This actor extracts publicly available data from YouTube. No login or authentication is used. All data is obtained from public pages and endpoints accessible to any internet user without an account.