YouTube Video Scraper - Metadata, Tags, Chapters & Captions avatar

YouTube Video Scraper - Metadata, Tags, Chapters & Captions

Pricing

from $1.00 / 1,000 results

Go to Apify Store
YouTube Video Scraper - Metadata, Tags, Chapters & Captions

YouTube Video Scraper - Metadata, Tags, Chapters & Captions

Every long-form video and Short on a channel, each with the full metadata record: description, tags, category, duration in seconds, chapters, caption languages, and exact view and like counts.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

seungkyu cho

seungkyu cho

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 hours ago

Last modified

Share

YouTube Video Scraper

Give it a channel. Get back every video on it — long-form and Shorts — with the full metadata record for each one, not the thin summary a listing page shows.

Description, tags, category, exact view and like counts, duration in seconds, chapters, available caption languages. The fields you'd otherwise open 200 tabs to collect.

What a row looks like

{
"recordType": "videoDetail",
"channelName": "Marques Brownlee",
"channelUrl": "https://www.youtube.com/@mkbhd",
"listedType": "LONG_FORM",
"videoId": "kYfNvmF0Bqw",
"videoUrl": "https://www.youtube.com/watch?v=kYfNvmF0Bqw",
"title": "The Best Smartphone Camera 2025",
"description": "Full blind camera test results...",
"durationSeconds": 1043,
"viewCount": 4821904,
"likeCount": 79605,
"category": "Science & Technology",
"keywords": ["smartphone", "camera test", "blind test"],
"chapters": [{ "title": "Intro", "startSeconds": 0 }],
"availableCaptionLanguages": ["en", "es", "ko"],
"isLive": false,
"isUpcoming": false,
"isFamilySafe": true,
"thumbnails": [{ "url": "https://i.ytimg.com/...", "width": 1280 }],
"scrapedAt": "2026-08-26T04:20:11.882Z"
}

Not every field exists on every video — livestreams, Shorts and age-restricted uploads each expose a different subset. Missing values come back null, never as errors.

Input

FieldMeaning
channelUrls@handle, /channel/UC…, /c/…, or a bare handle
videoTypeALL, LONG_FORM, or SHORTS
maxItemsPerChannelPer-channel budget — ALL splits it across both tabs
minUploadDate / maxUploadDateYYYY-MM-DD window
maxDaysOldRolling window, in days
proxyConfigurationResidential by default — see below
{
"channelUrls": ["https://www.youtube.com/@mkbhd"],
"videoType": "ALL",
"maxItemsPerChannel": 200,
"maxDaysOld": 365
}

Two things this gets right that are easy to get wrong

Shorts actually come back. The fast HTTP path doesn't recognise the Shorts tab layout and parses zero videos from it. Treating that as "this channel has no Shorts" is the obvious bug, and it's a quiet one — you get a successful run with nothing in it. Here, a tab that yields zero always falls back to a full browser scroll, and a run that ends up empty fails rather than reporting success.

Records aren't hollow. YouTube gives datacenter IPs a stripped response: the listing still works, but per-video detail comes back nearly empty, so rows land with an ID and little else — no title, no description, no view count. Requests go through a residential proxy by default, which is the difference between a 10-field shell and the 24-field record above.

Good for

  • Channel audits and content inventories
  • Competitive tracking across a set of channels
  • Building a searchable index of a back catalogue
  • Feeding recommendation or trend models with real metadata

Notes

  • maxItemsPerChannel is a per-channel budget. With videoType: ALL the long-form and Shorts tabs share it, rather than each taking the full amount.
  • Residential proxy traffic is billed by Apify on top of compute.
  • Set proxyUrls to use your own proxies instead of Apify's.

Which one do I need?

You wantUse
The full metadata record for every video on a channel (tags, chapters, captions, exact counts)this actor
The channel profile, its video list and the comments underneath, togetherYouTube Channel Scraper
Only the comments, from a list of video URLsYouTube Comments Scraper

More actors from this author

Questions and problems

Open an issue on the Issues tab of this actor, with the run ID.