YouTube Transcript Pro
Pricing
$1.00 / 1,000 results
YouTube Transcript Pro
Extract clean YouTube transcripts, closed captions, and rich video metadata into structured data. Perfect for AI pipelines, SEO, and content research. Cheap and no API key required!
Pricing
$1.00 / 1,000 results
Rating
0.0
(0)
Developer
Danny
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Extract YouTube video transcripts, subtitles, captions, and video metadata in a clean Apify dataset. YouTube Transcript Pro is built for researchers, content teams, SEO workflows, AI pipelines, and anyone who needs YouTube spoken content as structured text at a competitive price.
Provide a YouTube video URL, choose the transcript language, and the Actor returns timestamped transcript segments, a plain text transcript, available caption languages, and useful video metadata such as title, uploader, views, duration, thumbnails, and publication date.
Simple pricing: $1.00 per 1,000 results.
Key Features
- Extract complete YouTube transcripts from public caption tracks
- Get both timestamped transcript segments and one plain text transcript
- Choose a preferred transcript language from a readable dropdown, while the Actor receives clean codes such as
en,de,es, orpt-BR - Automatically falls back to an available caption track when the requested language is not available
- Supports creator-provided captions and auto-generated captions when YouTube exposes them
- Collects video metadata including title, description, uploader details, views, duration, thumbnails, and publish date
- Works with common YouTube URL formats, including watch URLs, youtu.be links, Shorts, embedded URLs, and youtube-nocookie URLs
- Saves results as structured JSON that can be exported from Apify as JSON, CSV, Excel, XML, RSS, or HTML
- No YouTube API key required
Use Cases
- Content research: turn videos into text for review, analysis, and note-taking
- SEO and marketing: extract spoken keywords, topics, and competitor video metadata
- AI and automation: feed transcripts into summarizers, RAG systems, chatbots, or classification workflows
- Journalism and media monitoring: quickly search and reference spoken content
- Accessibility: create text versions of video content where captions are available
- Data analysis: build structured datasets from YouTube video captions
- Content repurposing: convert video transcripts into briefs, blog drafts, newsletters, or social posts
How to Use
- Open the Actor on Apify.
- Paste a YouTube video URL into
youtube_url. - Optionally choose a preferred transcript language from the dropdown.
- Click Start.
- Open the dataset and export the results in your preferred format.
Input
Provide a YouTube video URL. The language field is optional.
| Field | Type | Description | Required |
|---|---|---|---|
youtube_url | String | Full YouTube video URL. Supports regular videos, Shorts, youtu.be links, embedded URLs, live replay URLs, and youtube-nocookie URLs. | Yes for video runs |
language | String | Optional preferred transcript language. The Apify UI shows readable language names and sends the language code to the Actor. Defaults to en. You can also type a custom YouTube/BCP-47 code if needed. | No |
Example Input
{"youtube_url": "https://www.youtube.com/watch?v=CMNry4PE93Y","language": "en"}
Output
The Actor stores one dataset item per processed video. A successful result includes transcript data, video metadata, language information, and status fields.
| Field | Type | Description |
|---|---|---|
video_id | String | YouTube video ID |
url | String | Normalized YouTube video URL |
title | String | Video title |
description | String | Video description |
channel_id | String | YouTube channel ID |
channel_name | String | Channel name |
channel_username | String | Channel handle or username when available |
channel_thumbnail | String | Channel thumbnail URL when available |
subscriber_count | Number | Subscriber count when visible |
view_count | Number | Video view count |
like_count | Number | Like count when visible |
comment_count | Number | Comment count when visible |
duration_seconds | Number | Video duration in seconds |
published_at | String | Video publication date when available |
timestamp | Number | Publication date as a Unix timestamp when available |
thumbnail | String | Video thumbnail URL |
transcript | Array | Timestamped transcript segments with text, start, end, and duration |
transcript_text | String | Full transcript as a single plain text field |
language | String | Language code used for the returned transcript |
available_languages | Array | Caption languages found for the video |
selected_language | String | Human-readable caption language selected by the Actor |
is_auto_generated | Boolean | Whether the selected transcript is auto-generated |
geo_restrict | String or null | Geographic restriction information when available |
status | String | success or error |
message | String | Human-readable status message |
error_code | String | Error code, included only for error results |
Some YouTube metadata fields can be hidden, disabled, or unavailable on the public video page. When that happens, the Actor keeps the output shape stable by returning an empty string, 0, or null depending on the field.
Sample Output
{"channel_id": "UCPlpJXGoNKFYAGgqse4mQ2g","channel_name": "CaptJax458","channel_thumbnail": "https://yt3.ggpht.com/ytc/AIdro_mBVSntnsFTVjkUyckIXNURw8ap8E9xPAdPpx6O_vwnrg=s800-c-k-c0x00ffffff-no-rj","channel_username": "CaptJax458","subscriber_count": 20000,"comment_count": 0,"duration_seconds": 18,"language": "en","like_count": 530179,"timestamp": 1181549064,"title": "Zombie Kid Likes Turtles","transcript": [{"duration": 4.641,"end": 5.04,"start": 0.399,"text": "back here live at the waterfront village"},{"duration": 4.159,"end": 6.879,"start": 2.72,"text": "with my friend the zombie jonathan"}],"transcript_text": "back here live at the waterfront village ...","published_at": "2007-06-11T08:04:24Z","url": "https://www.youtube.com/watch?v=CMNry4PE93Y","video_id": "CMNry4PE93Y","view_count": 76586974,"geo_restrict": null,"status": "success","message": "Successfully fetched the transcript for the video with ID 'CMNry4PE93Y'","available_languages": ["English (auto-generated)"],"selected_language": "English (auto-generated)","is_auto_generated": true,"description": "","thumbnail": "https://i.ytimg.com/vi/CMNry4PE93Y/hqdefault.jpg"}
Error Output
If the video cannot be processed, the Actor still writes a dataset item with status: "error" so your workflow can handle failures cleanly.
{"url": "https://www.youtube.com/watch?v=example","language": "en","status": "error","error_code": "transcript_not_available","message": "No transcript languages are available for this video."}
Common error codes include:
invalid_input: the input URL or settings are not validnot_found: the video is unavailable or cannot be foundtranscript_disabled: captions are disabled for the videotranscript_not_available: YouTube does not expose a transcript for the videolanguage_not_available: the requested transcript language is not availablerate_limited: YouTube temporarily limited transcript requestsapi_error: the transcript request failed unexpectedly
Pricing
YouTube Transcript Pro uses simple pay-per-result pricing:
- $1.00 per 1,000 results
- $0.001 per processed video result
- One saved dataset item counts as one result
- Each run processes one YouTube video URL
Example: processing 1,000 videos costs $1.00. Processing 10,000 videos costs $10.00.
Troubleshooting
Invalid URL
Use a public YouTube video URL, such as:
https://www.youtube.com/watch?v=VIDEO_IDhttps://youtu.be/VIDEO_IDhttps://www.youtube.com/shorts/VIDEO_IDhttps://www.youtube-nocookie.com/embed/VIDEO_ID
No Transcript Returned
Not every YouTube video has captions. Check that the video has subtitles or auto-generated captions available on YouTube. Private, deleted, restricted, or caption-disabled videos may return an error result.
Requested Language Not Returned
The Actor tries to use your requested language first. If it is not available, it selects another available caption track. Check available_languages, selected_language, and is_auto_generated in the output to see exactly what was returned.
Missing Likes, Comments, or Subscriber Counts
YouTube does not always expose every metric publicly. Some creators hide counts, comments can be disabled, and YouTube page data can vary by region or video type. Missing numeric fields are returned as 0.
FAQ
Does it work with YouTube Shorts?
Yes, if YouTube exposes captions for the Short.
Does it work with auto-generated captions?
Yes. The output includes is_auto_generated so you can tell whether the selected transcript came from YouTube auto-captions.
Do I need a YouTube API key?
No. The Actor reads public caption tracks and public video metadata.
What can I export?
You can export the dataset from Apify in formats such as JSON, CSV, Excel, XML, RSS, and HTML.