YouTube Transcript & Subtitles Scraper - No API Key Required avatar

YouTube Transcript & Subtitles Scraper - No API Key Required

Pricing

Pay per usage

Go to Apify Store
YouTube Transcript & Subtitles Scraper - No API Key Required

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

George Kioko

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

2 days ago

Last modified

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?

FeatureThis ScraperYouTube Data APIManual Copy-Paste
API key needed?NoYesNo
Batch processing?Up to 5,000 videos100/day quotaOne at a time
Transcript text?YesNo (metadata only)Yes
Timestamps?YesNoPartial
Playlist/Channel?YesLimitedNo
AI-ready format?YesNoNo
Cost per 1,000$4Free (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-text output 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

FieldTypeRequiredDescription
urlsArray of stringsYesYouTube video URLs, playlist URLs, channel URLs, or raw video IDs
languageStringNoPreferred language code: "en", "es", "fr", "de", "ja", "ko", "pt", etc. Default: "en"
outputFormatEnumNo"full-text" (best for AI/ChatGPT), "segments" (timestamped), or "both". Default: "both"
includeTimestampsBooleanNoInclude start time and duration in segments. Default: true
maxVideosIntegerNoMaximum videos to process per run, 1-5000. Default: 50
includeMetadataBooleanNoInclude video title, views, channel, description, tags. Default: true
proxyConfigurationObjectNoApify 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.

EventPriceDescription
Actor start$0.005One-time fee per run
Transcript extracted$0.004Per 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 videos
https://www.youtube.com/watch?v=dQw4w9WgXcQ
https://youtu.be/dQw4w9WgXcQ
https://www.youtube.com/shorts/VIDEO_ID
https://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/@ChannelHandle
https://www.youtube.com/channel/UCxxxxxxxx
https://www.youtube.com/c/ChannelName
# Raw video IDs
dQw4w9WgXcQ

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 ApifyClient
client = 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.