YouTube Scraper + AI Transcript & Summary
Pricing
from $2.50 / 1,000 video results
YouTube Scraper + AI Transcript & Summary
Fast, low-cost YouTube scraper for videos, search results, channels, Shorts, live streams, playlists, comments, replies, subtitles, and transcripts. Extract structured data, engagement metrics, and filtered search results at scale.
Pricing
from $2.50 / 1,000 video results
Rating
5.0
(3)
Developer
API Geek
Maintained by CommunityActor stats
4
Bookmarked
8
Total users
6
Monthly active users
5 days ago
Last modified
Categories
Share
YouTube Scraper + Subtitles & AI Summary
A fast, reliable, and cost-effective YouTube data extraction API for Apify. Scrape YouTube Videos, Shorts, Live Streams, Channels, Playlists, Comments, Replies, and Filtered Search with native Subtitle Downloads, AI Transcripts, and AI Video Summaries.
⚡ Key Features
- ⚡ Fast & Lightweight: High-performance YouTube data collection optimized for speed and reliability.
- 💬 Native Subtitles & Captions: Download video subtitles/closed captions in multiple formats (
text,json,srt,vtt) directly to Apify Key-Value Store. Supports auto-generated and manual caption tracks. - 📝 AI Video Summary: Generate concise factual summaries and key topics for videos. Automatically uses native subtitles as the primary text source for faster and more cost-effective processing.
- 🎙️ Optional AI Transcript: Optional speech-to-text transcription. Uses native subtitles when present (with zero STT audio charges) or audio transcription fallback when explicitly enabled.
- 🔍 Full YouTube Search: Search by keywords with YouTube filters (sorting, date posted, video duration, HD, 4K, live streams, and captions).
- 📹 Rich Video Metadata: Extract detailed video records including views, likes, comments count, subscriber count, duration, hashtags, keywords, and live stream status.
- 📱 Shorts & Live Streams: First-class support for YouTube Shorts and Live Streams across channels and search queries.
- 📺 Channels & Playlists: Scrape entire channels and playlists with positional index tracking.
- 💬 Comments & Replies: Scrape top-level comments and nested reply threads sorted by Top or Newest.
- 🏷️ Hashtag Discovery: Discover and extract videos matching any
#hashtag.
💳 Simple & Transparent Pricing (Pay-Per-Event)
This Actor uses predictable Pay-Per-Event (PPE) pricing. Platform usage costs are included in the event pricing so you never get surprise compute bills.
| Event Type | Event Code | Unit Price | Price / 1,000 Units | Description |
|---|---|---|---|---|
| Actor Start | apify-actor-start | $0.00005 / run | $0.05 / 1,000 runs | Base run initialization |
| Video Result | video-result | $0.0025 / item | $2.50 / 1,000 videos | Video, Short, or Stream item |
| Subtitle Download | subtitle-result | $0.001 / item | $1.00 / 1,000 subtitles | Downloaded subtitle file saved to KVS |
| Comment / Reply | comment-result | $0.0015 / item | $1.50 / 1,000 comments | Top-level comment or reply item |
| AI Summary | ai-summary | $0.005 / summary | $5.00 / 1,000 summaries | AI summary & key topics |
| AI Transcript | ai-transcript | $0.007 / started audio-min | $7.00 / 1,000 audio-mins | Charged only when audio STT is executed. 0 STT charge when native subtitles are used. |
Pricing Examples
- 100 Video Results:
$0.00005 (start) + 100 × $0.0025 = $0.25005 - 100 Videos with Subtitle Downloads:
$0.00005 (start) + 100 × $0.0025 (video) + 100 × $0.001 (subtitle) = $0.35005 - 1 Video with AI Summary (using native subtitles):
$0.00005 (start) + $0.0025 (video) + $0.005 (summary) = $0.00755(No audio minute fees) - 1 Video with AI Summary & Audio STT Fallback (3 min video):
$0.00005 (start) + $0.0025 (video) + 3 × $0.007 (transcript) + $0.005 (summary) = $0.02855
🛠️ Input Parameters
General & Search Settings
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | Array of Objects | [] | YouTube URLs to scrape (Video, Short, Channel, Playlist, Search, or Hashtag). |
searchQueries | Array of Strings | [] | Search keywords or phrases to scrape. |
maxResults | Integer | 20 | Maximum number of results to return per query, URL, or channel. |
sortingOrder | String Enum | "relevance" | Sort search results: relevance, date, viewCount, rating. |
dateFilter | String Enum | null | Filter search by upload date: hour, today, week, month, year. |
videoType | String Enum | "video" | Filter search by type: video, channel, playlist, movie. |
lengthFilter | String Enum | null | Filter search by duration: short (<4 min), medium (4–20 min), long (>20 min). |
isHD | Boolean | false | Filter search results for high-definition (HD) videos. |
is4K | Boolean | false | Filter search results for 4K resolution videos. |
isLive | Boolean | false | Filter search results for active live streams. |
hasSubtitles | Boolean | false | Search Filter: Restrict search results to videos that have subtitles/closed captions. |
Subtitle Options
| Parameter | Type | Default | Description |
|---|---|---|---|
downloadSubtitles | Boolean | false | Download native YouTube subtitle/caption files to the Key-Value Store for each scraped video. |
subtitlesLanguage | String | "en" | Preferred subtitle language code (e.g. "en", "es", "id", "fr"). |
subtitlesFormat | String Enum | "text" | Subtitle output format: text (plain text), json (timestamped cues), srt (SubRip .srt), or vtt (WebVTT .vtt). |
Comments & Enrichment
| Parameter | Type | Default | Description |
|---|---|---|---|
maxComments | Integer | 0 | Maximum top-level comments to scrape per video (0 = disabled). |
maxRepliesPerComment | Integer | 0 | Maximum nested replies per top-level comment. |
commentSort | String Enum | "TOP" | Sort comments by TOP or NEWEST. |
enrichVideoMetadata | Boolean | false | Fetch additional engagement metadata (likes, comments count, views, subscriber count). |
AI Features & Decision Logic
| Parameter | Type | Default | Description |
|---|---|---|---|
aiSummary | Boolean | false | Generate an AI summary and key topics. Uses available native subtitle text directly for fast, efficient processing. |
aiTranscript | Boolean | false | Explicit opt-in: Generate transcript text. If native subtitles exist, uses native subtitles with 0 STT fees. If subtitles are unavailable, enables audio transcription fallback. |
aiLanguage | String | null | Target language code for AI processing (e.g. "en", "es", "de"). |
maxAiVideos | Integer | 10 | Maximum number of videos to process with AI per run (max: 100). |
maxAiDurationMinutes | Integer | 60 | Maximum duration (in minutes) of an individual video eligible for AI processing. |
maxAiMinutesPerRun | Integer | 60 | Maximum combined duration limit across all AI-processed videos in a run. |
AI Decision Logic & Optionality:
- Native Subtitles as Primary Text Source: When
aiSummary: trueis requested and native subtitles exist, the summary is generated directly from native subtitles without downloading audio or charging speech-to-text fees.- STT Fallback Requires Explicit Opt-In: Audio transcription fallback is strictly disabled unless
aiTranscript: trueis explicitly configured. If native subtitles are unavailable andaiTranscript: false, AI Summary is skipped gracefully with zero audio extraction or unexpected fees.
📋 Sample Input
{"startUrls": [{ "url": "https://www.youtube.com/watch?v=BV4ab2l0Re4" }],"downloadSubtitles": true,"subtitlesLanguage": "en","subtitlesFormat": "srt","aiSummary": true,"aiTranscript": false,"maxResults": 1}
📄 Sample Output (Public Dataset Item)
{"type": "VIDEO","id": "BV4ab2l0Re4","url": "https://www.youtube.com/watch?v=BV4ab2l0Re4","title": "How to Add Subtitles to YouTube Videos for FREE (+ Closed Captions)","description": "Learn how to add subtitles and closed captions to your YouTube videos easily...","thumbnailUrl": "https://i.ytimg.com/vi/BV4ab2l0Re4/hqdefault.jpg","channelId": "UC4QobU6STFB0P71PMvOGN5A","channelName": "Content Creator","channelUrl": "https://www.youtube.com/channel/UC4QobU6STFB0P71PMvOGN5A","subscriberCount": 150000,"viewCount": 163503,"likesCount": 4200,"publishedAt": "2024-03-15T12:00:00.000Z","duration": "08:42","durationSeconds": 522,"isShort": false,"isLive": false,"liveStatus": "NONE","commentsCount": 350,"subtitlesAvailable": true,"subtitleTracks": [{"languageCode": "en","languageName": "English","isAutoGenerated": false}],"subtitle": {"languageCode": "en","languageName": "English","isAutoGenerated": false,"format": "srt","storageKey": "SUBTITLE_BV4ab2l0Re4_en_srt"},"aiSummary": {"status": "SUCCESS","source": "native-subtitle","summary": "This tutorial explains the complete step-by-step process of adding subtitles and closed captions to YouTube videos using free tools.","keyTopics": ["Subtitles & Captions","YouTube Studio Upload","SRT and VTT formatting"],"storageKey": "AI_SUMMARY_BV4ab2l0Re4"},"scrapedAt": "2026-08-21T08:38:06.126Z"}
💾 Accessing Subtitles & AI Content from Key-Value Store
Downloaded subtitles, full AI transcripts, and AI summaries are saved in the Actor run's default Key-Value Store:
- Subtitles: Stored under
SUBTITLE_{videoId}_{languageCode}_{format}(e.g.SUBTITLE_BV4ab2l0Re4_en_srt). - AI Transcripts: Stored under
AI_TRANSCRIPT_{videoId}containing full timestamped segments and metadata. - AI Summaries: Stored under
AI_SUMMARY_{videoId}containing executive summary text and key topic tags.
You can retrieve these records directly via the Apify Console Key-Value Store tab or via the Apify API client.