YouTube Video Details & Insights
Pricing
from $1.89 / 1,000 results
YouTube Video Details & Insights
Scrape YouTube channels, videos and shorts: views, description, comments, links and public insights. No official API key required.
Pricing
from $1.89 / 1,000 results
Rating
0.0
(0)
Developer
Ghost Rider
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
15 days ago
Last modified
Categories
Share
Apify actor that scrapes public YouTube channel videos, Shorts, and direct watch links. It collects metadata (views, description, comment count, duration, published date), extracts links and keywords from descriptions, and adds computed insights. No official YouTube API key is required.
Features
- Mix up to 50 inputs in one run: channel URLs,
@handles,UCchannel IDs, channel names, or direct watch/Shorts URLs - Fetch videos only, Shorts only, or both from a channel
- Up to 1000 latest items per channel
- Fast mode for bulk channel lists (channel list plus watch-page description and comment count)
- Full mode for extra metadata normalization and insights
- Direct video/Shorts URLs always use full mode and return a single item
- Built-in insights: engagement hint, comments per 1,000 views, sponsored/contact keywords, external links, content type
- Optional Apify proxy (Residential recommended) to reduce rate limits on large runs
Input
| Field | Type | Default | Description |
|---|---|---|---|
inputs | string[] | — | Bulk list (max 50 unique entries). Channel URL, @handle, UC ID, channel name, or watch/Shorts URL. |
channelInput | string | — | Optional single input. Appended to inputs when both are set. |
contentType | videos | shorts | both | both | What to fetch for channel inputs. Ignored for direct video/Shorts URLs. |
maxVideos | integer (1–1000) | 10 | Latest items to process per channel. Ignored for direct links (always 1). |
scrapeMode | fast | full | fast | Fast: channel list plus description and comment count. Full: extra metadata normalization and insights. Direct links always use full mode. |
proxyConfiguration | object | Apify Residential | Proxy used for YouTube requests. |
At least one of inputs or channelInput is required.
Example input
{"inputs": ["https://www.youtube.com/@YouTube","https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"contentType": "both","maxVideos": 10,"scrapeMode": "fast","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Output
Results are written to the default dataset.
Video items (type: "video") include:
- Identity:
videoId,title,url,channelId,channelTitle,channelHandleResolved - Stats:
views,viewsText,commentCount,commentCountText,publishedAt,duration,durationSeconds - Text:
description,shortDescription,keywords,hashtags,linksFromDescription - Insights:
engagementHint(high/medium/low/unknown),commentsPer1000Views,hasExternalLinks,hasSponsoredKeywords,hasContactKeywords,contentType(short/long/live/unknown),notableKeywords scrapeWarningswhen a field could not be enriched
Channel summary items (type: "summary") are added after channel inputs (not after direct video URLs):
channelId,channelTitle,channelHandlescrapeMode,requestedVideos,fetchedVideos,generatedAt,scrapeWarnings
Failed inputs produce an error dataset item with the message and input, so the rest of the run can continue.
Local development
Requires Node.js 20+.
npm installnpm run checknpm start
Pass input via Apify local storage (storage/key_value_stores/default/INPUT.json) or the Apify CLI. The actor reads input with Actor.getInput().
| Script | Purpose |
|---|---|
npm start | Run the actor with tsx |
npm run build | Compile TypeScript to dist/ |
npm run check | Type-check without emitting files |
Notes
- Failed channel or video inputs are skipped and recorded as error items; other inputs still run.
- Fast mode still opens each watch page for description and comment count. Full mode is similar in speed but normalizes more metadata.
- Residential proxy is recommended for large bulk runs to reduce YouTube rate limiting.