
YouTube Transcript Extractor & Video Detail Scraper
Pricing
$4.00/month + usage

YouTube Transcript Extractor & Video Detail Scraper
Scrape full video metadata (title, description, channel info, publish date, view/like counts, tags, categories, thumbnails), channel details, and all engagement metrics. Plus: Download complete video transcripts in any available or auto-translated language, with clean plain-text output.
5.0 (1)
Pricing
$4.00/month + usage
0
Total users
55
Monthly users
15
Runs succeeded
98%
Last modified
5 days ago
YouTube Video Details Scraper
Unlock the power of in-depth YouTube video analytics with our Video Details Scraper. Extract comprehensive metadata, engagement metrics, and now full video transcripts in any language you want.
Overview
This actor allows you to scrape detailed information about YouTube videos, including title, description, view count, keywords, thumbnail URLs, and more. You can also download the full transcript of the video in any available language (original or auto-translated). It provides valuable insights for content creators, marketers, and researchers looking to analyze video performance, metadata, and spoken content.
Features
- Detailed Video Information: Extract comprehensive metadata about each video.
- Thumbnail URLs: Get links to various sizes of video thumbnails.
- Channel Details: Retrieve information about the video's channel.
- Engagement Metrics: Capture view counts and other relevant statistics.
- Keywords and Categories: Extract video tags and categories for better understanding of content.
- Transcripts in Any Language: Download the full transcript in the original or any supported/translated language.
- Customizable: Flexible configuration options to suit various scraping needs.
- Proxy Support: Built-in proxy configuration to enhance scraping reliability and avoid blocks.
- Scrape 35+ critical data points from any YouTube video, including:
🎯 Core Metrics
- View counts (live/archived)
- Engagement: Likes/Dislikes ratio, comment density
- Monetization: Ad placements, sponsor segments
- Performance: CTR %, retention graphs (when available)
📊 Engagement Analytics
- Real-time subscriber deltas
- Share tracking (platform-specific breakdown)
- Heatmap-style interaction patterns
- Audience demographics (age/gender distributions)
📜 Content Details
- Multilingual Transcripts
- Raw timestamped data
- Clean text-only versions
- 100+ language support (auto-translate enabled)
- Enhanced metadata:
- Chapters/markers analysis
- Hashtag performance metrics
- Cards/end screens inventory
🛠 Technical Features
- Automatic resolution of:
- All YouTube URL formats (including embeds/shorts)
- Video ID extraction from complex parameters
How to Use
- Set Up: Ensure you have an Apify account and access to the Apify platform.
- Configure Input: Set the YouTube video URL(s) you want to scrape details for (see Input Configuration section).
- (Optional) Adjust additional parameters like concurrency, proxy settings, and transcript language.
- Run the Scraper: Execute the scraper on the Apify platform.
- Data Collection: The scraper will output detailed data about the specified YouTube video(s), including transcripts.
Input Configuration
Here's an example of how to set up the input for the YouTube Video Details Scraper:
{"startUrls": [{"url": "https://www.youtube.com/watch?v=K07bw2bKI8U&t=985s&ab_channel=CohhCarnage"}],"maxConcurrency": 10,"minConcurrency": 1,"maxRequestRetries": 10,"proxy": {"useApifyProxy": true},"includeTranscript": true,"language": "en"}
Input Fields Explanation
startUrls
: Array of YouTube video URLs to scrape details from.maxConcurrency
: Maximum number of pages processed simultaneously (default: 10).minConcurrency
: Minimum number of pages processed simultaneously (default: 1).maxRequestRetries
: Number of retries for failed requests (default: 10).proxy
: Proxy configuration for enhanced scraping reliability.includeTranscript
: Whether to include the transcript of the video in the output.language
: Select the language for the transcript. If not available, will fall back to the default language.
Output Structure
The output data includes detailed information about each video. Here's a sample of the structure:
{"transcript": [{"text": "People often say to me, Julien, that I have a","startMs": "40","endMs": "3320","startTimeText": "0:00"},{"text": "great level in the final. Well in this","startMs": "1680","endMs": "5759","startTimeText": "0:01"},{"text": "video, I'm going to show you some","startMs": "3320","endMs": "7759","startTimeText": "0:03"},{"text": "super important techniques to become an","startMs": "5759","endMs": "11480","startTimeText": "0:05"},...],"transcript_only_text": "People often say to me, Julien, that I have a great level in the final. Well in this video, I'm going to show you some super important techniques to become an endgame god and get past 1300 hoo in chess. The first technique, of course, is to create a passed pawn. There you see the C5 pawn, it could very quickly go to queen. For what ? because it is supported by the rook on C1 and in addition this bishop H3 also controls the final destination square for the pawn to turn into a queen. But unfortunately, this pawn ....","videoId": "zHhIJPR0JXw","title": "8 tactiques pour gagner tes finales et passer 1300 Elo aux échecs !! (Partie 1)","lengthSeconds": "669","keywords": ["juliensong","chess","échecs","jeu d'échecs","jeu d'échec","julien song","julien song échecs"],"channelId": "UC3FXGTXQqx9cc2T7EDhslIQ","isOwnerViewing": false,"shortDescription": "👉 Rejoins la communauté et obtiens des conseils pour progresser aux échecs sur https://liens.juliensong.com !","isCrawlable": true,"thumbnail": {"thumbnails": [{"url": "https://i.ytimg.com/vi/zHhIJPR0JXw/hqdefault.jpg?sqp=-oaymwEmCKgBEF5IWvKriqkDGQgBFQAAiEIYAdgBAeIBCggYEAIYBjgBQAE=&rs=AOn4CLCF3TcZfQvL1NgqH1IlapyFY4hbvQ","width": 168,"height": 94},{"url": "https://i.ytimg.com/vi/zHhIJPR0JXw/hqdefault.jpg?sqp=-oaymwEmCMQBEG5IWvKriqkDGQgBFQAAiEIYAdgBAeIBCggYEAIYBjgBQAE=&rs=AOn4CLAPxdGDt4Yw4roHAJQRWoMn_8F4Bw","width": 196,"height": 110},{"url": "https://i.ytimg.com/vi/zHhIJPR0JXw/hqdefault.jpg?sqp=-oaymwEnCPYBEIoBSFryq4qpAxkIARUAAIhCGAHYAQHiAQoIGBACGAY4AUAB&rs=AOn4CLBBNhgBu8ok7j-yUsCiOH2DHx3txw","width": 246,"height": 138},{"url": "https://i.ytimg.com/vi/zHhIJPR0JXw/hqdefault.jpg?sqp=-oaymwEnCNACELwBSFryq4qpAxkIARUAAIhCGAHYAQHiAQoIGBACGAY4AUAB&rs=AOn4CLDpeZd7xoTMNMRDnNg5rwnQtx791Q","width": 336,"height": 188},{"url": "https://i.ytimg.com/vi_webp/zHhIJPR0JXw/maxresdefault.webp","width": 1920,"height": 1080}]},"allowRatings": true,"viewCount": "45641","author": "Julien Song","isPrivate": false,"isUnpluggedCorpus": false,"isLiveContent": false,"microformat": {"playerMicroformatRenderer": {"thumbnail": {"thumbnails": [{"url": "https://i.ytimg.com/vi/zHhIJPR0JXw/maxresdefault.jpg","width": 1280,"height": 720}]},"embed": {"iframeUrl": "https://www.youtube.com/embed/zHhIJPR0JXw?start=985","width": 1280,"height": 720},"title": {"simpleText": "8 tactiques pour gagner tes finales et passer 1300 Elo aux échecs !! (Partie 1)"},"description": {"simpleText": "👉 Rejoins la communauté et obtiens des conseils pour progresser aux échecs sur https://liens.juliensong.com !"},"lengthSeconds": "670","ownerProfileUrl": "http://www.youtube.com/@JulienSong","externalChannelId": "UC3FXGTXQqx9cc2T7EDhslIQ","isFamilySafe": true,"isUnlisted": false,"hasYpcMetadata": false,"viewCount": "45641","category": "Entertainment","publishDate": "2025-05-16T10:01:23-07:00","ownerChannelName": "Julien Song","uploadDate": "2025-05-16T10:01:23-07:00","isShortsEligible": false,"externalVideoId": "zHhIJPR0JXw","likeCount": "2442","canonicalUrl": "https://www.youtube.com/watch?v=zHhIJPR0JXw"}},"captions": {"playerCaptionsTracklistRenderer": {"captionTracks": [{"baseUrl": "https://www.youtube.com/api/timedtext?v=zHhIJPR0JXw&ei=gqo1aLfZNqSKsfIPv-K4EA&caps=asr&opi=112496729&xoaf=5&hl=hr&ip=0.0.0.0&ipbits=0&expire=1748372722&sparams=ip,ipbits,expire,v,ei,caps,opi,xoaf&signature=CF59F9732960052B69E2CB68698B03C71E4AD902.7F2796A9277B07D258F169962040E4EA0FA20853&key=yt8&kind=asr&lang=fr&variant=punctuated","name": {"simpleText": "Francuski (automatski generirano)"},"vssId": "a.fr","languageCode": "fr","kind": "asr","isTranslatable": true,"trackName": ""}],"audioTracks": [{"captionTrackIndices": [0],"audioTrackId": "fr-FR.4"},{"captionTrackIndices": [0],"audioTrackId": "en-US.10"}],"defaultAudioTrackIndex": 0}}}]
Output Fields Explanation
The scraper returns a comprehensive set of data points for each video. Here's a detailed breakdown of the output fields:
Transcript Data
transcript
: Array of transcript segments, each containing:text
: The spoken text for that segmentstartMs
: Start time in milliseconds from the beginning of the videoendMs
: End time in millisecondsstartTimeText
: Human-readable timestamp (e.g., "1:23")
transcript_only_text
: The complete transcript as a single, continuous plain text string, with timestamps removed for easy reading and processing.
Core Video Information
videoId
: Unique 11-character identifier for the YouTube video.title
: The full title of the video as displayed on YouTube.lengthSeconds
: Total duration of the video in seconds.keywords
: Array of relevant keywords and tags associated with the video.channelId
: Unique identifier for the channel that published the video.author
: Display name of the channel or content creator.shortDescription
: The full description of the video as shown on YouTube.isPrivate
: Boolean indicating if the video is set to private.isLiveContent
: Boolean indicating if the video is or was a live stream.viewCount
: Total number of views the video has received.
Thumbnails
thumbnail
: Object containing various sizes of thumbnail images for the video.thumbnails
: Array of objects, each containing:url
: Direct URL to the thumbnail imagewidth
: Width in pixelsheight
: Height in pixels
Additional Metadata
allowRatings
: Boolean indicating if viewers can rate (like/dislike) the video.isCrawlable
: Boolean indicating if the video is indexable by search engines.isOwnerViewing
: Boolean indicating if the video owner is viewing the video (typically false for scraped data).isUnpluggedCorpus
: Internal YouTube flag (usually false).
Microformat Data
microformat
: Object containing YouTube's internal metadata:playerMicroformatRenderer
: Contains:thumbnail
: Main thumbnail image detailsembed
: Embed configuration (iframe URL, dimensions)title
: Video titledescription
: Video descriptionlengthSeconds
: Video durationownerProfileUrl
: URL to the channel's profileexternalChannelId
: Channel IDisFamilySafe
: Boolean indicating family-friendly contentisUnlisted
: Boolean for unlisted videoshasYpcMetadata
: Boolean for YouTube Premium contentcategory
: Video category (e.g., "Education", "Gaming")publishDate
: ISO 8601 timestamp of when the video was publishedownerChannelName
: Channel nameuploadDate
: ISO 8601 timestamp of when the video was uploadedisShortsEligible
: Boolean for YouTube Shorts eligibilityexternalVideoId
: Video IDlikeCount
: Number of likes (when available)
Captions and Subtitles
captions
: Object containing caption information:playerCaptionsTracklistRenderer
: Contains:captionTracks
: Array of available caption tracks:baseUrl
: Endpoint to fetch captionsname
: Track namevssId
: Internal IDlanguageCode
: ISO 639-1 language codekind
: Type (e.g., "asr" for auto-generated)isTranslatable
: Boolean for translation supporttrackName
: Display name of the track
audioTracks
: Array of available audio tracksdefaultAudioTrackIndex
: Index of the default audio tracktranslationLanguages
: Array of supported translation languages:languageCode
: ISO 639-1 codelanguageName
: Object withsimpleText
containing the language name
Support
- For issues or feature requests, please use the Issues section of this actor.
- If you need customization or have questions, feel free to contact the author:
- Author's website: https://muhamed-didovic.github.io/
- Email: muhamed.didovic@gmail.com
Additional Services
- Request customization or whole dataset: muhamed.didovic@gmail.com
- If you need anything else scraped, or this actor customized, email: muhamed.didovic@gmail.com
- For API services of this scraper (no Apify fee, just usage fee for the API), contact: muhamed.didovic@gmail.com