YouTube Video Stats Scraper — Views, Likes, Duration by URL avatar

YouTube Video Stats Scraper — Views, Likes, Duration by URL

Pricing

from $15.00 / 1,000 video scrapeds

Go to Apify Store
YouTube Video Stats Scraper — Views, Likes, Duration by URL

YouTube Video Stats Scraper — Views, Likes, Duration by URL

Get YouTube video stats and metadata by URL or video ID — view count, likes, duration, publish date, title, description, category, keywords, channel and caption languages. Bulk video lookup, no API key, no login, no quota. Filter by views or duration. Charged only for videos actually returned.

Pricing

from $15.00 / 1,000 video scrapeds

Rating

0.0

(0)

Developer

Nicholas Cheng

Nicholas Cheng

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

9 hours ago

Last modified

Share

YouTube Video Stats Scraper

Give it YouTube links or video IDs, get one row of real numbers per video. View count, duration, publish date, likes, title, full description, category, keywords, channel, and which caption languages exist. No API key, no OAuth, no login, no quota to apply for. Accepts watch links, Shorts links, youtu.be links, embed links, or bare 11-character IDs.

You are charged only for videos that actually came back. A private, deleted, or region-blocked video produces an explanatory row and costs nothing.

InputVideo URLs or IDs — any format YouTube itself accepts
OutputOne row per video, numbers as numbers
Price$0.015 per video — the same on every Apify plan
API keyNot needed. This does not use the YouTube Data API, so it does not consume your quota
ChannelsNot fetched. This Actor is the videos-only mode of the YouTube Video & Channel Scraper; use that one to list a channel's recent videos

What you get

{
"itemType": "video",
"videoId": "aircAruvnKk",
"url": "https://www.youtube.com/watch?v=aircAruvnKk",
"title": "But what is a neural network? | Deep learning chapter 1",
"description": "Full text of the video description, not truncated.",
"durationSeconds": 1120,
"viewCount": 23951183,
"likesLabel": "like this video along with 512,000 other people",
"publishedAt": "2017-10-05T00:00:00-07:00",
"channelId": "UCYO_jab_esuFRV4b17AJtAw",
"channelName": "3Blue1Brown",
"channelUrl": "https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw",
"channelSubscribersLabel": "7.4M subscribers",
"keywords": ["neural networks", "deep learning", "machine learning"],
"category": "Education",
"isLive": false,
"thumbnail": "https://i.ytimg.com/vi/aircAruvnKk/maxresdefault.jpg",
"availableCaptions": [
{ "language": "en", "name": "English", "isAutoGenerated": false }
]
}

viewCount and durationSeconds are real numbers, not display strings — you can sort and filter on them without parsing "1.2M" first. likesLabel is a string on purpose: YouTube no longer exposes an exact like count to logged-out clients, and inventing a number from a rounded label would be making data up.

availableCaptions lists which caption tracks exist and in which languages. It does not include the caption text — see below.


Input

{
"videoUrls": [
"https://www.youtube.com/watch?v=aircAruvnKk",
"https://youtu.be/dQw4w9WgXcQ",
"https://www.youtube.com/shorts/…",
"jNQXAC9IVRw"
],
"minViews": 10000
}
OptionDefaultNotes
videoUrlsWatch, Shorts, youtu.be, embed links, or bare IDs. De-duplicated
minViews0Drop videos below this view count
minDurationSeconds / maxDurationSeconds0Keep only videos in a length range — e.g. maxDurationSeconds: 60 for Shorts
publishedAfterISO date; older videos are dropped
titleContainsKeep only titles containing any of these phrases (case-insensitive)
maxItems0Hard cap on rows for the run

Videos that fail a filter are not delivered and not charged. They are counted under filteredOut in the run summary.


Pricing

$0.015 per video, on every Apify plan — Free, Bronze, Silver, Gold, Platinum, Diamond. Check the Pricing tab: all six columns are identical. The price a listing advertises in its title is not always the price a free-plan run pays; here it is.

What you are not charged for

What happens here
Unavailable videosPrivate, deleted, region-blocked, or mistyped IDs produce one row marked chargedForThis: false. Nothing is billed.
Filtered-out videosA video that fails minViews or any other filter is not written and not billed.
Empty or placeholder rowsIf the video data did not come back, no row is written.
The free planSame code path, same fields, same limits. No demo mode, no row cap, no nulls in place of data.

What this Actor cannot do

  • No transcripts or subtitles. YouTube serves caption text only to clients that pass a proof-of-origin check; this Actor does not attempt to defeat it. You get the list of caption languages, not the text.
  • No channel listings. For "the latest videos from these channels", use the YouTube Video & Channel Scraper — same code, same prices, plus a $0.005 channel event.
  • No exact like count. YouTube stopped exposing it to logged-out clients; you get YouTube's own rounded label.
  • No comments, no search.

How it stays working

Video pages are loaded through a rotating residential connection — an ordinary browser-like request from an ordinary address, not a bypass of anything. YouTube's page structure is read at runtime; if a video's data does not come back, the row is marked unavailable rather than filled with nulls.


Integrating

curl -X POST "https://api.apify.com/v2/acts/nick.cheng~youtube-video-stats/run-sync-get-dataset-items?token=<TOKEN>" \
-H 'Content-Type: application/json' \
-d '{"videoUrls":["aircAruvnKk","dQw4w9WgXcQ"]}'

Official clients exist for JavaScript and Python, and results export as JSON, CSV, or Excel.