
YouTube Transcript & Metadata Scraper
Pricing
Pay per usage

YouTube Transcript & Metadata Scraper
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:
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
videoIds | array | ✅ Yes | - | List of YouTube video IDs (11 characters each) |
apiToken | string | ✅ Yes | - | Your Transcript Downloader API bearer token |
language | string | No | auto | ISO language code for transcript (e.g., en , es , fr ) |
includeComments | boolean | No | false | Whether to fetch video comments |
maxConcurrency | number | No | 5 | Max 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
- Get your API token from Transcript Downloader
- Open the actor in the Apify Console
- Add YouTube video IDs and required input
- Run the actor and access results in the dataset
❌ Error Handling
The actor gracefully handles common API errors:
Status Code | Meaning |
---|---|
401 | Insufficient credits |
403 | Invalid API token |
404 | Video or transcript not found |
429 | Rate limit exceeded |
503 | Service 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.