YouTube Metadata Scraper – Full Video Info & Formats
Pricing
from $7.00 / 1,000 successful video scrapes
YouTube Metadata Scraper – Full Video Info & Formats
Extract complete YouTube video metadata: title, description, views, likes, comments, all formats (URLs), subtitles, chapters, heatmap, thumbnails, channel stats, Open Graph data. No API key. Pay per result. Perfect for analytics and archiving.
Pricing
from $7.00 / 1,000 successful video scrapes
Rating
0.0
(0)
Developer
Scrape Pilot
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
📺 YouTube Metadata Scraper – Full Video Info, Formats, Subtitles & More
Extract complete YouTube video metadata – including all available formats, thumbnails, subtitles, chapters, heatmap, likes/comments, channel info, and Open Graph data. Powered by yt‑dlp with browser impersonation via curl_cffi. Perfect for video archiving, analytics, content research, and AI training datasets.
💡 What is the YouTube Metadata Scraper?
The YouTube Metadata Scraper is a professional Apify actor that retrieves every piece of public information from any YouTube video. It combines:
- yt‑dlp (the most advanced video extraction tool) to fetch all metadata fields, including:
- Video title, description, uploader, channel, upload date
- View count, like count, comment count
- All available video/audio formats (resolution, codec, bitrate, file size)
- Thumbnails (all sizes, including
maxresdefault) - Chapters, heatmap (engagement over time), subtitles (manual and auto‑generated)
- Live status, age restriction, language, availability
- curl_cffi + BeautifulSoup to extract additional HTML meta tags:
- Open Graph (
og:title,og:image, etc.) - Twitter Card data
- JSON‑LD structured data (including first comment)
- Canonical URL and page title
- Open Graph (
The output is a single, rich JSON object per video, pushed directly to the Apify dataset. No API key required – everything is public.
🚀 Key Features
| Feature | Description |
|---|---|
| Complete metadata | Title, description, uploader, channel, upload date, duration, language, age limit, live status. |
| Engagement stats | View count, like count, comment count (as reported by YouTube). |
| All formats | Every available resolution and codec (including audio‑only) with file size, bitrate, URL. |
| Thumbnails | All thumbnail sizes (from default to maxresdefault) with resolution and preference. |
| Subtitles & captions | Manual and auto‑generated subtitles for all languages (URLs to .vtt, .srt, .json3). |
| Chapters & heatmap | Video chapters (if any) and engagement heatmap (segmented viewer activity). |
| Rich HTML metadata | Open Graph, Twitter Card, JSON‑LD structured data, canonical URL. |
| No login required | Uses only public YouTube pages and APIs. |
| Residential proxy ready | Bypasses rate limits (optional; most runs work without proxy). |
| Clean JSON output | Every field is properly typed; missing fields are omitted. |
| Apify native integration | Seamless dataset storage, scheduling, and API access. |
📥 Input Parameters
The actor accepts a JSON object with the following fields:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | array of objects | Yes | – | List of YouTube video URLs (e.g., [{"url": "https://www.youtube.com/watch?v=..."}]). |
proxyConfiguration | object | No | – | Apify proxy configuration (residential recommended for large volumes). |
Example Input
{"startUrls": [{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"}],"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
📤 Output Fields
The actor pushes one dataset item per video URL. The output is a superset of yt‑dlp’s info dict plus an extra __html_meta__ field containing HTML‑parsed data. Below are the most important fields (the actual output is extremely comprehensive – see example output for a taste).
| Field | Type | Description |
|---|---|---|
id | string | YouTube video ID (e.g., dQw4w9WgXcQ). |
title | string | Full video title. |
fulltitle | string | Same as title (alias). |
description | string | Video description (plain text). |
duration | integer | Duration in seconds. |
duration_string | string | Human‑readable duration (e.g., 3:33). |
view_count | integer | Number of views. |
like_count | integer | Number of likes. |
comment_count | integer | Number of comments. |
upload_date | string | YYYYMMDD. |
timestamp | integer | Unix timestamp of upload. |
channel | string | Channel name. |
channel_id | string | YouTube channel ID. |
channel_url | string | URL of the channel page. |
channel_follower_count | integer | Number of subscribers. |
channel_is_verified | boolean | Verified badge. |
uploader | string | Uploader name (same as channel). |
uploader_id | string | Channel handle (e.g., @RickAstleyYT). |
uploader_url | string | Channel URL. |
availability | string | public, unlisted, private, etc. |
age_limit | integer | Age restriction (0 if none). |
categories | array | Video categories (e.g., ["Music"]). |
tags | array | Video tags. |
is_live | boolean | Currently live. |
was_live | boolean | Previously live. |
live_status | string | not_live, is_live, was_live. |
thumbnails | array | List of thumbnail objects (each with url, width, height, preference, id). |
thumbnail | string | Best‑quality thumbnail URL (usually maxresdefault). |
formats | array | All available video/audio formats. Each has format_id, ext, width, height, fps, vcodec, acodec, filesize, tbr, url, etc. |
chapters | array | If present: start_time, end_time, title. |
heatmap | array | Engagement over time (each segment: start_time, end_time, value 0–1). |
subtitles | object | Manual subtitles: language → list of formats (url, ext). |
automatic_captions | object | Auto‑generated captions (same structure). |
webpage_url | string | Canonical YouTube URL. |
extractor | string | Always "youtube". |
extractor_key | string | Always "Youtube". |
__html_meta__ | object | Extra HTML metadata: Open Graph, Twitter Card, JSON‑LD, canonical_url, page_title. |
Example Output (truncated)
[{"id": "dQw4w9WgXcQ","title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","view_count": 1781039352,"like_count": 19147046,"comment_count": 2400000,"upload_date": "20091025","duration": 213,"channel": "Rick Astley","channel_follower_count": 4510000,"channel_is_verified": true,"thumbnails": [{"url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg", "width": 1920, "height": 1080}],"formats": [{"format_id": "18","ext": "mp4","width": 640,"height": 360,"fps": 25,"vcodec": "avc1.42001E","acodec": "mp4a.40.2","filesize_approx": 11832459,"url": "https://rr1---sn-p5qs7nd7.googlevideo.com/..."}],"subtitles": {"en": [{"ext": "vtt", "url": "https://www.youtube.com/api/timedtext?..."}]},"__html_meta__": {"og:title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","og:image": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg","twitter:card": "player","page_title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster) - YouTube","__ld_json__": [{"@type": "VideoObject","name": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","comment": [{"text": "scanned a damn qr code", "author": {"name": "@vinsbdfs"}, "upvoteCount": 1578}]}]}}]
🛠 How to Use on Apify
- Create a task with this actor.
- Provide one or more YouTube video URLs in the
startUrlsfield. - (Optional) Enable residential proxies – recommended for bulk scraping (100+ videos) to avoid rate limiting.
- Run – the actor will fetch metadata for each URL and push one item per video to the Dataset.
- Export – download results as JSON, CSV, or Excel.
Running via API
curl -X POST "https://api.apify.com/v2/acts/your-username~youtube-metadata-scraper/runs" \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_API_TOKEN" \-d '{"startUrls": [{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"}]}'
💰 Pricing
| Model | Price |
|---|---|
| Pay‑per‑result | $0.007 per video (example – adjust as needed) |
Actual pricing may vary based on Apify’s consumption model. This actor respects the pay‑per‑event system; you are charged only for successfully scraped videos.
🎯 Use Cases
- Video analytics – Track engagement (views, likes, comments) over time.
- Content archiving – Store complete metadata and format URLs for backup.
- Subtitle extraction – Get subtitle files for language learning or transcription.
- Research & AI training – Build datasets of video titles, descriptions, tags, and engagement.
- Competitive monitoring – Watch competitor channels’ uploads and performance.
- Media forensics – Retrieve heatmaps and chapter data for detailed analysis.
❓ Frequently Asked Questions
1. Do I need a YouTube API key?
No. The actor uses yt-dlp and public web pages – no API key required.
2. Can I download the actual video file?
This actor only returns metadata and format URLs. To download the video, you can use the url from any format entry with your own HTTP client (e.g., wget). The URLs are temporary (expire after a few hours).
3. How fresh is the data?
The actor fetches the latest available information at the time of the run. View and like counts are real‑time.
4. Why do I need residential proxies?
YouTube may throttle datacenter IPs after many requests. For bulk scraping (>100 videos), residential proxies reduce the chance of 429 errors.
5. What does the heatmap field represent?
It indicates relative viewer engagement across the video timeline. Higher values mean more rewatching or activity in that segment. Values are normalized between 0 and 1.
6. Are subtitles always available?
Only if the video has manual subtitles or auto‑captions enabled. The actor returns whatever YouTube provides.
7. Does it work for age‑restricted videos?
Yes, for most public age‑restricted videos. However, some may require a logged‑in session (not supported).
8. Can I scrape playlists or channels?
This version is designed for single videos only. For playlists or channels, see our link.
🔍 SEO Keywords
YouTube metadata scraper, YouTube video info extractor, yt-dlp Apify, YouTube subtitles downloader, YouTube format URLs, YouTube engagement analytics, video metadata API, YouTube chapters heatmap, YouTube comment count, Apify YouTube actor
🔗 Related Actors
- YouTube Playlist & Channel Scraper – Extract videos from playlists or channels.
- YouTube Comments Scraper – Scrape comments and replies.
- Universal Video Downloader – Download videos from 1000+ sites including YouTube.
Start extracting complete YouTube metadata today – pay only for successful results.