
YouTube Video Transcript
Pricing
$5.00 / 1,000 results

YouTube Video Transcript
This Apify Actor extracts full transcripts (with timestamps) and metadata from YouTube videos, including title, description, upload date, views, likes, channel info, and duration
5.0 (11)
Pricing
$5.00 / 1,000 results
12
55
51
Last modified
4 days ago
YouTube Video or Channel Transcript and Metadata Extractor
Overview
Unlock the power of YouTube video data with this Apify Actor! Effortlessly fetch transcript/subtitles and rich metadata (title, channel, view count, and more) for any YouTube video or videos from a channel. Perfect for researchers, content creators, and analysts who need structured video data without the hassle of direct scraping. Save time and get reliable, structured data straight to your Apify dataset!
Input
Provide either a YouTube video URL (for single video) or a channel URL (to fetch multiple videos). The Actor requires the following fields, defined in input_schema.json. Provide exactly one of youtube_url or channel_url; the backend will validate and ignore inapplicable fields:
Field | Type | Description | Required |
---|---|---|---|
youtube_url | String | The URL of the YouTube video (e.g., https://www.youtube.com/watch?v=dQw4w9WgXcQ). Use for single video fetch, paired with language. | No (mutually exclusive with channel_url) |
language | String | The transcript language (e.g., en). Only applicable with youtube_url. | No |
channel_url | String | The URL of the YouTube channel (e.g., https://www.youtube.com/@taostats or https://www.youtube.com/channel/UCxxxxxxxxxxxxxxxxxxxxxx). Use to fetch videos from the channel, paired with max_videos, start_date, and end_date. | No (mutually exclusive with youtube_url) |
max_videos | Integer | Maximum number of videos to fetch from the channel (default: 10, range: 5-15). Only applicable with channel_url. | No |
start_date | String | Start date for filtering channel videos (format: YYYY-MM-DD). Only applicable with channel_url; backend uses 30 days ago if blank. Ensure end_date >= start_date. | No |
end_date | String | End date for filtering channel videos (format: YYYY-MM-DD). Only applicable with channel_url; backend uses today if blank. Ensure end_date >= start_date. | No |
Example Input (Single Video):
{"youtube_url": "https://www.youtube.com/watch?v=6EeDKyS7pV8","language": "en"}
Example Input (Channel Videos):
{"channel_url": "https://www.youtube.com/@taostats","max_videos": 10,"start_date": "2025-08-17","end_date": "2025-09-16"}
Output
The Actor saves data to the Apify dataset in a structured JSON format, as defined in dataset_schema.json. For single video, output is an array with one item; for channel, it's an array of video items. The output includes:
Field | Type | Description |
---|---|---|
video_id | String | The unique identifier of the YouTube video. |
title | String | The title of the YouTube video. |
channel_name | String | The name of the YouTube channel. |
channel_id | String | The unique identifier of the YouTube channel. |
timestamp | Integer | The Unix timestamp of when the video was published. |
published_at | String | The UTC date and time of video upload (format: YYYY-MM-DD HH:MM:SSZ). |
view_count | Integer | The number of views the video has received. |
transcript | Array | An array of transcript segments, each with text, start, duration, language, and language_code. |
url | String | The URL of the YouTube video. |
language | String | The primary language of the transcript (e.g., en for English). |
duration_seconds | Integer | The total duration of the video in seconds. |
Sample Output (TED Talk Video in English):
[{"channel_id": "UCAuUUnT6oDeKwE6v1NGQxug","channel_name": "TED","comment_count": 10953,"duration_seconds": 1159,"language": "en","like_count": 388218,"timestamp": 1559575676,"title": "Sleep Is Your Superpower | Matt Walker | TED","transcript": [{"duration": 1.5,"language": "English (auto-generated)","language_code": "en","start": 0.83,"text": "Thank you very much."},{"duration": 4,"language": "English (auto-generated)","language_code": "en","start": 2.37,"text": "Well, I would like\nto start with testicles."},...{"duration": 1.17,"language": "English (auto-generated)","language_code": "en","start": 1141.58,"text": "Great job, Matt."},{"duration": 2.21,"language": "English (auto-generated)","language_code": "en","start": 1142.75,"text": "MW: You're very welcome.\nThank you very much."}],"published_at": "2019-06-03T15:27:56Z","url": "https://www.youtube.com/watch?v=5MuIMqhT8DM","video_id": "5MuIMqhT8DM","view_count": 15062630,"geo_restrict": null,"status": "success","message": "Successfully fetched the transcript for the video with ID '5MuIMqhT8DM'"}]
Why Use This Actor?
- Efficiency: Get YouTube video or channel data in seconds via your internal API.
- Flexibility: Works with any API endpoint that returns structured JSON data, supporting single videos or channel fetches.
- Reliability: Built-in validation and logging ensure robust performance.
- Scalability: Easily integrate with Apify's ecosystem for data processing and export.
On this page
Share Actor: