YouTube Transcript & Subtitles Scraper - No API Key Required
Pricing
Pay per usage
YouTube Transcript & Subtitles Scraper - No API Key Required
Extract transcripts, subtitles, and captions from YouTube videos at scale. No API key needed.
Pricing
Pay per usage
Rating
0.0
(0)
Developer

George Kioko
Actor stats
0
Bookmarked
4
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
YouTube Transcript Scraper & Subtitles Extractor - No API Key Required
Extract YouTube video transcripts, subtitles, and closed captions at scale. No YouTube Data API key needed. No authentication, no quota limits. Works with individual videos, playlists, entire channels, and YouTube Shorts.
Perfect for AI/LLM pipelines, RAG systems, ChatGPT plugins, content repurposing, video SEO analysis, and academic research. Output is optimized for feeding directly into ChatGPT, Claude, Gemini, LangChain, LlamaIndex, and other AI tools.
Why use this YouTube Transcript Scraper?
| Feature | This Scraper | YouTube Data API | Manual Copy-Paste |
|---|---|---|---|
| API key needed? | No | Yes | No |
| Batch processing? | Up to 5,000 videos | 100/day quota | One at a time |
| Transcript text? | Yes | No (metadata only) | Yes |
| Timestamps? | Yes | No | Partial |
| Playlist/Channel? | Yes | Limited | No |
| AI-ready format? | Yes | No | No |
| Cost per 1,000 | $4 | Free (no transcripts) | Hours of work |
What data do you get?
YouTube Transcript Data
- Full transcript text - Single concatenated string, ready for LLM input, RAG chunking, or vector embeddings
- Timestamped segments - Each segment with start time, duration, and formatted timestamp for video indexing
- Word count and character count - Know your content size before processing
- Language detection - Identifies manual captions vs YouTube auto-generated subtitles
- All available languages - Lists every caption track available on the video
YouTube Video Metadata
- Video title, full description, channel name, channel ID
- View count, publish date, video duration in seconds
- Category, keywords/tags (up to 30)
- Thumbnail URL (highest resolution)
- Live stream detection
- YouTube Shorts support
Key Features
- No API Key Required - Extracts transcripts directly without YouTube Data API credentials. Zero setup. No OAuth. No quotas.
- Batch Processing - Pass hundreds of YouTube video URLs, playlist URLs, or channel URLs. Process them all in a single run.
- YouTube Playlist Scraper - Automatically extracts all video IDs from any YouTube playlist and downloads their transcripts.
- YouTube Channel Scraper - Extracts recent videos from any YouTube channel (@handle or /channel/ URL) and gets all transcripts.
- YouTube Shorts Transcripts - Transcripts from YouTube Shorts work just like regular videos.
- Multi-Language Support - Request transcripts in English, Spanish, French, German, Japanese, Korean, Portuguese, or any available language. Auto-falls back to YouTube's auto-generated captions.
- AI-Ready Output - The
full-textoutput format produces a clean text string optimized for LLM context windows, RAG retrieval, and vector embeddings. - Timestamped Segments - Each transcript segment includes start time and duration. Build video chapter indexes, jump to specific timestamps, or create video summaries.
- Pay Per Result - Only pay for transcripts actually extracted. No flat monthly fee. No minimum. Start at $0.004 per transcript.
Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
urls | Array of strings | Yes | YouTube video URLs, playlist URLs, channel URLs, or raw video IDs |
language | String | No | Preferred language code: "en", "es", "fr", "de", "ja", "ko", "pt", etc. Default: "en" |
outputFormat | Enum | No | "full-text" (best for AI/ChatGPT), "segments" (timestamped), or "both". Default: "both" |
includeTimestamps | Boolean | No | Include start time and duration in segments. Default: true |
maxVideos | Integer | No | Maximum videos to process per run, 1-5000. Default: 50 |
includeMetadata | Boolean | No | Include video title, views, channel, description, tags. Default: true |
proxyConfiguration | Object | No | Apify proxy settings. Recommended for music videos, VEVO content, and large batches. |
Output Example
{"videoId": "dQw4w9WgXcQ","videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","channelName": "Rick Astley","channelId": "UCuAXFkgsw1L7xaCfnd5JJOw","language": "en","languageName": "English","isAutoGenerated": false,"hasTranscript": true,"transcriptText": "We're no strangers to love You know the rules and so do I A full commitment's what I'm thinking of...","wordCount": 395,"charCount": 2089,"segments": [{"text": "We're no strangers to love","start": 18.64,"duration": 3.24,"startFormatted": "0:18"},{"text": "You know the rules and so do I","start": 22.64,"duration": 4.32,"startFormatted": "0:22"}],"segmentCount": 61,"viewCount": 1747332072,"publishDate": "2009-10-24T23:57:33-07:00","lengthSeconds": 213,"category": "Music","keywords": ["rick astley", "Never Gonna Give You Up", "rickroll"],"thumbnail": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg","availableLanguages": [{"code": "en", "name": "English", "isAutoGenerated": false},{"code": "en", "name": "English (auto-generated)", "isAutoGenerated": true},{"code": "de-DE", "name": "German (Germany)", "isAutoGenerated": false},{"code": "ja", "name": "Japanese", "isAutoGenerated": false},{"code": "pt-BR", "name": "Portuguese (Brazil)", "isAutoGenerated": false},{"code": "es-419", "name": "Spanish (Latin America)", "isAutoGenerated": false}],"scrapedAt": "2026-03-02T21:34:36.000Z"}
Pricing
Pay Per Event pricing - only pay for successful results.
| Event | Price | Description |
|---|---|---|
| Actor start | $0.005 | One-time fee per run |
| Transcript extracted | $0.004 | Per video with successful transcript |
$4 per 1,000 transcripts. Videos without captions are not charged. Compare to manual transcription ($1/minute) or speech-to-text APIs ($0.006-$0.024/minute).
Use Cases
AI & Machine Learning
- RAG Pipelines - Feed YouTube transcripts into Pinecone, Weaviate, ChromaDB, or Qdrant for retrieval-augmented generation
- LLM Fine-tuning - Build domain-specific training datasets from YouTube educational content, tutorials, and lectures
- ChatGPT Plugins - Create video Q&A bots that answer questions about YouTube content
- Vector Embeddings - Convert transcripts to embeddings for semantic search and similarity matching
Content & Marketing
- Content Repurposing - Convert YouTube videos into blog posts, newsletters, Twitter threads, LinkedIn posts, or podcast show notes
- Video SEO Analysis - Analyze what top YouTube creators talk about. Extract keywords, topics, and content structures
- Competitor Analysis - Monitor competitor YouTube channels and analyze their content strategy at scale
- Social Media Content - Extract key quotes and insights from YouTube interviews and talks
Research & Analysis
- Academic Research - Transcribe lectures, conference talks, TED talks, and educational content for research papers
- Market Research - Analyze product reviews, unboxing videos, and consumer sentiment at scale
- Podcast Transcription - Many podcasts publish on YouTube. Get transcripts without audio processing tools
- Media Monitoring - Track brand mentions and topics across YouTube content
Development & Integration
- Video Summarization - Feed transcripts to GPT-4, Claude, or Gemini for automatic video summaries
- Subtitle Generation - Create subtitle files for video editing and accessibility
- Knowledge Base Building - Build searchable knowledge bases from YouTube tutorial libraries
- Content Moderation - Analyze video content for compliance and moderation
Supported URL Formats
# Individual videoshttps://www.youtube.com/watch?v=dQw4w9WgXcQhttps://youtu.be/dQw4w9WgXcQhttps://www.youtube.com/shorts/VIDEO_IDhttps://www.youtube.com/embed/VIDEO_ID# Playlists (extracts all video transcripts)https://www.youtube.com/playlist?list=PLxxxxxx# Channels (extracts recent video transcripts)https://www.youtube.com/@ChannelHandlehttps://www.youtube.com/channel/UCxxxxxxxxhttps://www.youtube.com/c/ChannelName# Raw video IDsdQw4w9WgXcQ
API Usage
Use the Apify API to run this scraper programmatically from any language or platform:
curl "https://api.apify.com/v2/acts/george.the.developer~youtube-transcript-scraper/runs" \-X POST \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_API_TOKEN" \-d '{"urls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ","https://www.youtube.com/playlist?list=PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf"],"language": "en","outputFormat": "full-text","maxVideos": 100}'
Python Example
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("george.the.developer/youtube-transcript-scraper").call(run_input={"urls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"language": "en","outputFormat": "full-text",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["transcriptText"])
JavaScript / Node.js Example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('george.the.developer/youtube-transcript-scraper').call({urls: ['https://www.youtube.com/watch?v=dQw4w9WgXcQ'],language: 'en',outputFormat: 'full-text',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0].transcriptText);
Integrations
Works with all Apify integrations out of the box:
- LangChain / LlamaIndex - Direct Apify integration for AI/RAG pipelines
- Zapier - Automate transcript processing workflows, trigger on new videos
- Make (Integromat) - Build content repurposing automations
- Google Sheets - Export transcripts directly to spreadsheets
- Webhooks - Get notified when extraction completes
- REST API - Full programmatic access from any language
- Slack / Discord - Send transcript summaries to channels
- Airtable - Store and organize transcripts in your databases
FAQ
How does this work without a YouTube API key? This scraper uses YouTube's internal InnerTube API to access caption tracks and transcript data. No YouTube Data API key, OAuth credentials, or authentication is needed. This is the same mechanism YouTube's own player uses to load subtitles.
What if a video doesn't have captions?
The scraper detects which videos have captions and which don't. Most YouTube videos have auto-generated English captions. Videos without captions are reported with hasTranscript: false and their metadata is still returned. You are not charged for videos without transcripts.
Can I get transcripts in multiple languages?
Yes! Set the language parameter to your preferred language code (e.g., "es" for Spanish, "ja" for Japanese). The scraper lists all available languages per video in the availableLanguages field. Run multiple passes with different language codes to get translations.
Is this good for AI/LLM input?
Absolutely. The "full-text" output format produces a single clean text string that's ideal for LLM context windows, RAG chunking, and vector embeddings. Many users feed this directly into ChatGPT, Claude, LangChain, and LlamaIndex.
How many videos can I process? Up to 5,000 videos per run. For larger batches, use the Apify scheduler to run multiple batches automatically, or call the API programmatically.
Why do some music videos fail without proxy? Some music videos (VEVO, official music channels) have additional restrictions when accessed from datacenter IPs. Enable the proxy configuration to access these videos reliably. Most educational, tutorial, and non-music videos work without proxy.
What's the difference between manual and auto-generated captions?
Manual captions are uploaded by the video creator and tend to be more accurate. Auto-generated captions are created by YouTube's speech recognition and may contain errors. The isAutoGenerated field tells you which type you're getting.
Changelog
- v1.0 (March 2026) - Initial release. InnerTube API integration, multi-language support, playlist/channel resolution, PPE pricing.
Support
Having issues? Open an issue on this actor's page. We typically respond within 24 hours.