YouTube Scraper avatar

YouTube Scraper

Pricing

Pay per usage

Go to Apify Store
YouTube Scraper

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

kane liu

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

3 hours ago

Last modified

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

ParameterTypeDefaultDescription
searchQueriesarray of stringsKeywords to search on YouTube. Each query runs independently and returns up to maxResults videos.
channelUrlsarray of stringsYouTube channel URLs to scrape. Supports /@handle, /channel/ID, and /c/name formats.
videoUrlsarray of stringsIndividual video URLs for targeted detail or transcript extraction.
maxResultsinteger50Maximum videos to return per search query or channel (1–5000).
scrapeDetailsbooleanfalseFetch full video metadata (exact publish date, category, like count, full description) for each result. Slower but more complete.
includeTranscriptbooleanfalseExtract full transcript/subtitles with timestamps. Works for any video with captions (auto-generated or manual).
transcriptLanguagestring"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

FieldTypeAvailable inDescription
videoIdstringall modesYouTube video ID
titlestringall modesVideo title
urlstringall modesFull YouTube video URL
channelNamestringall modesChannel display name
channelIdstringall modesYouTube channel ID
channelUrlstringall modesChannel URL
viewCountintegerall modesTotal view count
durationstringsearch / channelHuman-readable duration (e.g. "1:08:23")
durationSecondsintegerall modesDuration in seconds
publishedTextstringsearch / channelRelative publish time (e.g. "5 years ago")
publishedAtstringdetails modeExact ISO 8601 publish date (e.g. "2020-11-18T08:05:43-08:00")
descriptionstringall modesVideo description — snippet for search results, full text when details are enabled
thumbnailUrlstringall modesHighest-quality thumbnail URL
categorystringdetails modeVideo category (e.g. "Education", "Science & Technology")
isLivebooleanall modesWhether the video is an active live stream
transcriptarray of objectstranscript modeFull transcript as an array of { "start": float, "duration": float, "text": string } entries
transcriptLanguagestringtranscript modeLanguage code of the transcript that was returned
transcriptTextstringtranscript modeFull 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

ModeApproximate 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 transcript field.
  • Language fallback — if the requested transcriptLanguage is not available, the actor returns the first available language and reports it in transcriptLanguage.
  • 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.

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.