YouTube Video Detail Scraper [FAST] | Stats & Insights
Pricing
from $4.00 / 1,000 results
YouTube Video Detail Scraper [FAST] | Stats & Insights
Get full details on any YouTube video. Pull views, likes, comments, description, keywords, and channel info, plus engagement insights such as like rate and engagement rate. Batch many URLs for content and SEO research. Transparent pricing: pay $0.005 per video, only on success. Failures are free.
Pricing
from $4.00 / 1,000 results
Rating
0.0
(0)
Developer
Apizy
Maintained by CommunityActor stats
3
Bookmarked
16
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Features
Share
YouTube Video Detail Scraper
Collect public YouTube video metadata, views, likes, comment counts, channel information, and engagement insights from video URLs or IDs. Process a batch through lightweight HTTP requests and export clean JSON for research, reporting, and automation.
The video result event is charged only for unique videos successfully saved in the Dataset. Unavailable videos, failed requests, and duplicate inputs have no additional video result charge.
What does YouTube Video Detail Scraper do?
YouTube Video Detail Scraper reads public YouTube page data over HTTP and turns available metadata into a structured dataset. Browser rendering and a YouTube API key are not required.
It can extract:
- Video title, description, URL, publish date, and upload date
- View count, like count, and comment count as numbers, plus the raw comment count
- Duration as a readable string, in seconds, and in milliseconds
- Category, keywords, thumbnail URL, and family safety status
- Channel name, channel ID, and channel URL
- Per-video engagement insights: like rate, comment rate, engagement rate, like-to-comment ratio, estimated watch hours, views per day, and duration category
- Optionally, country availability codes when YouTube supplies them
Why Scrape YouTube Video Details?
A video's metadata tells a story that goes beyond the surface numbers. Likes, comments, and duration together reveal how audiences actually respond to content, not just how many people watched, but how many cared enough to react.
Here are some ways you could use this data:
- Analyze engagement quality on your own or competitor videos
- Compare like rates and comment rates across videos in the same niche
- Build datasets for content strategy, SEO research, or keyword analysis
- Track how a video's stats evolve over multiple runs
- Feed structured video metadata into dashboards, spreadsheets, or AI pipelines
How to Use
Enter video URLs or IDs. The Actor processes a batch with controlled concurrency, reuses channel metadata, and retries temporary source errors. Run time depends on batch size and YouTube availability.
- Click Try for free
- Enter one or more YouTube video URLs
- Optionally enable Include Available Countries to include country availability codes when supplied by YouTube
- Click Run
- When done, preview or download your data from the Dataset tab
Input
{"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"]}
Batch input
{"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ","https://www.youtube.com/watch?v=QrT4S9i3agE","https://youtu.be/WOzcFkld6_g"],"includeAvailableCountries": false}
Input Fields
| Field | Type | Default | Description |
|---|---|---|---|
videoUrls | array | none | YouTube video URLs or video IDs (required). Supports watch?v=, youtu.be/, and raw 11-char IDs |
includeAvailableCountries | boolean | false | If true, adds a list of up to 249 country codes where the video is available |
Output
Each video is saved as one item in the Dataset. The run summary goes to the Key-Value Store under OUTPUT.
Video item
{"videoId": "dQw4w9WgXcQ","title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","description": "The official video for \"Never Gonna Give You Up\" by Rick Astley...","publishedAt": "2009-10-24","uploadedAt": "2009-10-24","category": "Music","duration": "3:33","durationSeconds": 213,"durationMs": 213000,"isLive": false,"isUnlisted": false,"isFamilySafe": true,"keywords": ["rick astley", "Never Gonna Give You Up", "rick roll"],"views": 1786979563,"likes": 19185631,"commentCount": 2400000,"commentCountRaw": "2.4M","thumbnailUrl": "https://i.ytimg.com/vi_webp/dQw4w9WgXcQ/maxresdefault.webp","channel": {"channelId": "UCuAXFkgsw1L7xaCfnd5JJOw","name": "Rick Astley","url": "http://www.youtube.com/@RickAstleyYT"},"insight": {"ageInDays": 6090,"viewsPerDay": 293428,"likeRate": 1.0736,"commentRate": 0.1343,"engagementRate": 1.2079,"likeToCommentRatio": 7.99,"estimatedWatchHours": 105729624.14,"durationCategory": "1–5 min"},"scrapedAt": "2026-06-27T17:55:01.413Z"}
availableCountries is only included when includeAvailableCountries is set to true in the input.
Run summary
{"summary": {"total": 3,"successCount": 3,"failedCount": 0,"totalCharged": 0.015,"startedAt": "2026-06-28T10:00:00.000Z","finishedAt": "2026-06-28T10:00:06.000Z","totalDurationSeconds": 6}}
Output Fields
Video data
| Field | Type | Description |
|---|---|---|
videoId | string | YouTube video ID (11-character string) |
title | string | Full video title |
videoUrl | string | Direct link to the video |
description | string | Full video description text |
publishedAt | string | Publish date in YYYY-MM-DD format |
uploadedAt | string | Upload date in YYYY-MM-DD format (may differ from publish date) |
category | string | YouTube category (e.g. Music, Gaming, Education) |
duration | string | Duration in M:SS or H:MM:SS format |
durationSeconds | integer | Duration in seconds |
durationMs | integer | Duration in milliseconds |
isLive | boolean | true if the video is or was a live stream |
isUnlisted | boolean | true if the video is unlisted |
isFamilySafe | boolean | true if YouTube marks the video as family safe |
keywords | array | Tags set by the video creator |
views | integer | View count |
likes | integer | Like count |
commentCount | integer | Comment count, normalized from the raw string (e.g. 2.4M → 2400000) |
commentCountRaw | string | Raw comment count as shown by YouTube (e.g. "2.4M") |
thumbnailUrl | string | Highest-quality thumbnail URL available |
channel.channelId | string | YouTube channel ID |
channel.name | string | Channel display name |
channel.url | string | Link to the channel page |
availableCountries | array | ISO country codes where the video is available (only if enabled in input) |
scrapedAt | string | ISO timestamp of when the data was scraped |
Scalar fields that YouTube does not expose are returned as null; unavailable tags and country codes are empty arrays. Public metadata can still be delivered when a video player requests login. Category, upload date, flags, and tags may then be absent. Duration recovery uses the channel's current listing and may not cover older uploads.
Insight (nested inside each video item)
| Field | Type | Description |
|---|---|---|
ageInDays | integer | Days since the video was published |
viewsPerDay | integer | Average views per day since publish date |
likeRate | float | (likes / views) x 100, percentage of viewers who liked |
commentRate | float | (comments / views) x 100, percentage of viewers who commented |
engagementRate | float | ((likes + comments) / views) x 100, combined engagement signal |
likeToCommentRatio | float | likes / comments, high means quiet appreciation, low means debate |
estimatedWatchHours | float | views x durationSeconds / 3600; theoretical full-length viewing hours, not measured watch time |
durationCategory | string | One of: < 1 min, 1–5 min, 5–15 min, 15–30 min, 30+ min |
Pricing
The video result event costs $0.005 per unique delivered video. Failed or unavailable videos are not saved as result rows. Repeating the same video as a URL and an ID produces one row and one video result event.
| Delivered videos | Video result events |
|---|---|
| 1 | $0.005 |
| 10 | $0.05 |
| 50 | $0.25 |
| 100 | $0.50 |
A delivered row may contain null for fields that YouTube does not expose. These rows retain their normal video result charge.
Run summary and unavailable videos
The Dataset contains video results. The Key-Value Store record OUTPUT contains summary, results, and issues. Read issues for invalid inputs, unavailable videos, source errors, and unavailable fields.
summary.status | Meaning |
|---|---|
completed | Videos were saved. Optional fields may be unavailable; see partialMetadataCount and issues. |
partial | Some videos were saved, but source errors or the spending limit prevented completion. |
empty | None of the supplied videos had public metadata available. The run succeeds with an explanation. |
invalid_input | The supplied URLs, IDs, or input structure were invalid. The run succeeds with an explanation. |
failed | A technical error prevented delivery or persistence. The run fails; any already saved rows remain in the Dataset. |
The summary also reports duplicate inputs, unavailable videos, source errors, and saved result counts. Technical error rows are never mixed into the video Dataset.
Notes
- Supported inputs:
watch?v=,youtu.be/,/shorts/,/embed/,/live/, and raw 11-character video IDs. - Numeric counts can be rounded estimates if YouTube displays an abbreviated value such as
2.4M. They are returned as numbers, not numeric strings. - Unknown scalar fields and insights requiring those fields are
null. UnknownisLive,isUnlisted, andisFamilySafeflags are alsonull. estimatedWatchHoursassumes each view watched the entire video; it is not actual audience watch time.includeAvailableCountriesis off by default. It does not guarantee that YouTube exposes a complete availability list.- Requests are paced. HTTP 429 pauses the shared YouTube queue, respects
Retry-After, and reduces request concurrency. Repeated rate limits stop further attempts; already saved results remain available. - Invalid inputs and unavailable videos are skipped with explanations in
OUTPUT.issues.
More Actors You Might Like
Built by the same team and backed by the same transparent pricing philosophy: no hidden attempts, no wasted credits, no charge for failed results.
| Actor | Description |
|---|---|
| YouTube Video Scraper | Scrape all videos from a channel with views, durations, thumbnails, and per-video insights. |
| YouTube Comment Scraper | Scrape comments from any video with author details, like counts, reply counts, and engagement flags. |
| YouTube Channel Scraper [FAST] | Fast channel profiles with subscribers, engagement, contact emails, and social links. |
| YouTube Transcript Scraper | Extract the full transcript from any YouTube video, with optional timestamps per segment. |
Get in Touch
Have questions, need custom scraping solutions, or want to integrate with your existing stack? We're here to help!
- Email: apizy.studio@gmail.com
We build custom scraping solutions tailored to your specific needs that are fast, reliable, and transparent.