YouTube Transcript & Metadata Scraper Extractor avatar

YouTube Transcript & Metadata Scraper Extractor

Pricing

Pay per usage

Go to Apify Store
YouTube Transcript & Metadata Scraper Extractor

YouTube Transcript & Metadata Scraper Extractor

Verified 99.4% Success Rate. Scrape & extract high-quality transcripts and metadata from YouTube videos using the Transcript Downloader API. The actor supports auto language detection, batch processing & optional comment extraction. Great for research, podcasting, content repurposing & SEO analysis.

Pricing

Pay per usage

Rating

5.0

(2)

Developer

Transcript Downloader

Transcript Downloader

Maintained by Community

Actor stats

0

Bookmarked

36

Total users

3

Monthly active users

11 days ago

Last modified

Share

πŸ“ Transcript Downloader - YouTube Transcript & Metadata Scraper Extractor

This Apify actor fetches full transcripts, timestamps, video metadata, and optionally comments from public YouTube videos using the Transcript Downloader API. Ideal for content repurposing, accessibility, SEO enrichment, or video analysis at scale.


✨ Features

  • πŸ” Batch processing: Handle multiple YouTube videos at once
  • 🌍 Language support: Use ISO codes or auto for detection
  • πŸ’¬ Comment extraction: Fetch most relevant and most recent comments
  • πŸ“Š Metadata included: Title, description, view count, likes, channel info, etc.
  • βš™οΈ Concurrency control: Adjust maxConcurrency for optimized performance
  • πŸ”„ Automatic retries: Handles API errors and retryable failures
  • 🧠 Error tracking: All failures logged in output

πŸ”§ Input Parameters

The actor accepts the following input:

ParameterTypeRequiredDefaultDescription
videoIdsarrayβœ… Yes-List of YouTube video IDs (11 characters each)
apiTokenstringβœ… Yes-Your Transcript Downloader API bearer token
languagestringNoautoISO language code for transcript (e.g., en, es, fr)
includeCommentsbooleanNofalseWhether to fetch video comments
maxConcurrencynumberNo5Max concurrent requests (range: 1-10)

πŸ“₯ Sample Input

{
"videoIds": ["dQw4w9WgXcQ", "jNQXAC9IVRw"],
"apiToken": "your-api-token",
"language": "en",
"includeComments": true,
"maxConcurrency": 5
}

πŸ“€ Output Format

Each video will produce a dataset item with the following structure:

{
"videoId": "dQw4w9WgXcQ",
"videoMetadata": {
"title": "Example Title",
"description": "Video description...",
"publishedAt": "2023-08-20T15:32:00Z",
"duration": "5:12",
"viewCount": 120456,
"likeCount": 3456,
"commentCount": 123,
"channelName": "Channel Name",
"channelUrl": "https://www.youtube.com/channel/abc123"
},
"transcriptsWithTimeStamps": [
{
"dur": "3.5",
"text": "Welcome to this tutorial...",
"start": "0.0"
}
],
"fullTranscript": "Welcome to this tutorial...",
"comments": {
"mostRelevant": [
{
"author": "User123",
"text": "This helped me so much!"
}
],
"mostRecent": [
{
"author": "User456",
"text": "Just watched it!"
}
]
},
"downloadInfo": {
"id": "123DDJNRUND",
"youtube_video_id": "dQw4w9WgXcQ",
"type": "captions",
"cost": "1.600",
"status": "success",
"created_at": "2025-06-16T21:34:43.000Z"
}
}

πŸš€ How to Use

  1. Get your API token from Transcript Downloader
  2. Open the actor in the Apify Console
  3. Add YouTube video IDs and required input
  4. Run the actor and access results in the dataset

❌ Error Handling

The actor gracefully handles common API errors:

Status CodeMeaning
401Insufficient credits
403Invalid API token
404Video or transcript not found
429Rate limit exceeded
503Service temporarily unavailable

Failed attempts are captured in the dataset with error info.


❓ Common Issues

Transcript did not appear in the metadata

  • If the channel's title is in a different language than the actual content, sometimes the auto language detection does not work.
  • βœ… Try setting the language parameter explicitly to the language being spoken.
  • ⚠️ Also note: some videos may not have a native transcript available at all.

⚠️ Rate Limiting & Performance

API Rate Limits

ScopeLimitWindow
Per User (API Token)90 requests1 minute
Per IP (unauthenticated)90 requests1 minute

When rate limits are exceeded, the API returns 429 Too Many Requests. The actor handles this automatically with built-in retry logic.

Transcript Download Cooldown

EndpointLimitCooldown PeriodScope
Single Transcript Download1 request5 minutesPer video

If you request a transcript for the same video within the 5-minute cooldown, the API returns 429 with a "Download again in X minute(s)" message. For batch processing of unique videos, this does not apply.

YouTube API Quotas

Video metadata requests consume YouTube API quota (1 unit per video). Daily quota resets at midnight UTC. When quota is exhausted, the API returns a 429 error until reset.

Retry Behavior

The actor automatically retries on transient errors (429, 500, 503) with exponential backoff (base delay 1s, max delay 60s, up to 3 attempts). It does not retry on client errors (401, 403, 404) since those require user action.

Response Headers

The API returns rate limit headers you can monitor in logs:

HeaderDescription
X-RateLimit-LimitMax requests allowed in window
X-RateLimit-RemainingRequests remaining in current window
Retry-AfterSeconds to wait before retrying (on 429)

Other Limitations

  • πŸ“Ό YouTube video IDs must be exactly 11 characters
  • βš™οΈ maxConcurrency must be 1–10

πŸ§ͺ Example Run

{
"videoIds": ["AyOjAEn36b8"],
"apiToken": "your-api-token",
"language": "auto",
"includeComments": false
}

πŸ’³ Pricing & Billing

The Transcript Downloader API used by this actor requires a valid API token. API usage is billed separately and is based on processing time and file size.

πŸ“Š We charge on a per transcript/metadata basis. Visit our site to checkout pricing. View full details and subscription plans on our pricing page


πŸ™‹ Support

Need help? Visit Transcript Downloader Support. We respond within 24 business hours.


πŸ“„ License

This project is licensed under the ISC License.