YouTube Transcript & Metadata Scraper avatar
YouTube Transcript & Metadata Scraper

Pricing

Pay per usage

Go to Store
YouTube Transcript & Metadata Scraper

YouTube Transcript & Metadata Scraper

Developed by

Transcript Downloader

Transcript Downloader

Maintained by Community

Extract high-quality transcripts and metadata from YouTube videos using the Transcript Downloader API. This actor supports auto language detection, batch processing, and optional comment extraction. Great for research, podcasting, content repurposing, and SEO analysis.

5.0 (1)

Pricing

Pay per usage

0

Total users

2

Monthly users

2

Runs succeeded

>99%

Last modified

10 hours ago

📝 Transcript Downloader - YouTube Transcript & Metadata Generator

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.


⚠️ Limitations

  • 🔁 API rate limit: 75 requests per minute
  • 📼 YouTube video IDs must be exactly 11 characters
  • 🔄 Retries up to 3 times per failed request
  • ⚙️ maxConcurrency must be 1–10

🧪 Example Run

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

📄 License

This project is licensed under the ISC License.