YouTube Video Details Scraper
Pricing
Pay per event
YouTube Video Details Scraper
π¬ Enrich YouTube video and Shorts URLs with public titles, channels, dates, durations, views, thumbnails, and status rows.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
Share
Extract public metadata from YouTube videos and Shorts at scale.
This actor turns YouTube video URLs, Shorts URLs, youtu.be links, embed links, or direct video IDs into clean dataset rows with titles, descriptions, channels, dates, durations, view counts when available, thumbnails, keywords, and status information for each requested video.
Use it when you already have a list of YouTube links and need a reliable enrichment step for dashboards, lead lists, content audits, competitor research, or marketing reports.
What does YouTube Video Details Scraper do?
YouTube Video Details Scraper enriches a list of public YouTube videos.
It accepts:
- π¬ Standard watch URLs
- π± YouTube Shorts URLs
- π youtu.be short links
- π§© Embed URLs
- π Raw 11-character video IDs
It returns one dataset item per unique video ID.
Each item includes the canonical URL, title, description, channel details, publish date, duration, view count when public, thumbnail URLs, keywords, and whether the input looked like a Short.
Who is it for?
This scraper is useful for teams that work with YouTube URLs every day.
- π Social media analysts enriching campaign exports
- π§βπ» Data teams normalizing lists of video links
- π₯ Creators auditing their own video catalog references
- π Ecommerce teams tracking product mention videos
- π§ Market researchers comparing video performance
- π° Journalists validating public YouTube sources
- π€ Automation builders feeding YouTube metadata into agents
Why use this actor?
Manual YouTube metadata collection is slow and inconsistent.
This actor gives you a repeatable workflow:
- Paste or upload video URLs.
- Run the actor.
- Export clean JSON, CSV, Excel, XML, or API results.
- Connect the dataset to your BI, CRM, or automation tools.
You do not need to create a YouTube API key for basic public metadata enrichment.
What data can you extract?
| Field | Description |
|---|---|
url | Canonical YouTube watch URL |
videoId | YouTube video ID |
type | video, short, or unknown |
title | Public video title when available |
description | Public description when available |
channelId | Channel ID when available |
channelName | Channel or author name |
channelUrl | Public channel URL |
publishedAt | Publish date/time when available |
durationSeconds | Video length in seconds |
viewCount | Public view count when exposed |
likeCount | Public like count when exposed |
commentCount | Public comment count when exposed |
thumbnailUrls | Available thumbnail image URLs |
keywords | Public keyword tags when exposed |
isLiveContent | Whether the item is live content when exposed |
isShort | Whether the input/result appears to be a Short |
scrapedAt | Timestamp when the row was created |
status | ok or error |
errorMessage | Per-video error details when a URL cannot be processed |
How much does it cost to scrape YouTube video details?
The actor uses pay-per-event pricing.
- Small one-time run start event
- Per-result event for each successfully enriched video
Typical enrichment jobs are inexpensive because the actor performs lightweight HTTP requests and saves one row per video.
Before running a large job, test a small sample of 5-20 URLs to confirm the fields you need are public for your target videos.
Input
The main input is videoUrls.
Example:
{"videoUrls": [{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" },{ "url": "https://www.youtube.com/shorts/0zM3nApSvMg" }],"videoIds": ["9bZkp7q19f0"],"maxConcurrency": 3,"includeRawMetadata": false}
Input fields
videoUrls
A request-list array of public YouTube URLs.
Supported formats include:
https://www.youtube.com/watch?v=VIDEO_IDhttps://youtu.be/VIDEO_IDhttps://www.youtube.com/shorts/VIDEO_IDhttps://www.youtube.com/embed/VIDEO_ID
videoIds
Optional list of direct video IDs.
Use this when your source system already stores YouTube IDs instead of full URLs.
maxConcurrency
Controls how many videos are fetched in parallel.
The default is conservative for reliability.
If you see throttling or many temporary errors, reduce this value.
includeRawMetadata
Adds selected raw metadata objects to output rows.
Most users should keep this disabled.
Enable it only for debugging or advanced custom parsing.
Output
The actor writes results to the default dataset.
Each row represents one unique YouTube video ID.
Duplicate URLs or IDs are processed once.
Private, deleted, invalid, or unavailable videos do not stop the whole run. They are saved with status: "error" and an errorMessage so you can audit failures later.
Example output
{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","videoId": "dQw4w9WgXcQ","type": "video","title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","channelName": "Rick Astley","channelUrl": "https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw","publishedAt": "2009-10-24T23:57:33-07:00","durationSeconds": 213,"viewCount": 1780000000,"isShort": false,"status": "ok"}
How to scrape YouTube video details
- Open the actor on Apify.
- Add your YouTube URLs or video IDs.
- Keep
maxConcurrencyat the default for the first run. - Click Start.
- Open the dataset when the run finishes.
- Export the results or connect them to your workflow.
Tips for best results
- Start with 5-20 URLs before running a large batch.
- Use public, canonical video URLs when possible.
- Mix Shorts and normal videos freely.
- Keep concurrency low for very large jobs.
- Expect some metrics to be
nullwhen YouTube does not expose them publicly. - Use
statusanderrorMessageto filter unavailable videos.
YouTube Shorts support
The scraper accepts Shorts URLs directly.
For Shorts, isShort is set to true when the input URL uses the /shorts/ format or the page clearly indicates Shorts content.
Shorts can have fewer public metadata fields than standard videos, so some engagement fields may be null.
Handling unavailable videos
YouTube may hide or restrict some videos.
Examples include:
- Deleted videos
- Private videos
- Region-limited videos
- Age-restricted videos
- Videos temporarily blocked by YouTube checks
The actor handles these cases per video and continues processing the rest of your list.
Integrations
You can connect the output dataset to many workflows.
Common patterns:
- Send enriched video rows to Google Sheets.
- Load metadata into BigQuery, Snowflake, or Postgres.
- Trigger a Make or Zapier scenario after a run finishes.
- Feed video metadata into a content monitoring dashboard.
- Use the Apify API to enrich URLs collected by another actor.
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/youtube-video-details-scraper').call({videoUrls: [{ url: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' }],});console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('fetch_cat/youtube-video-details-scraper').call(run_input={'videoUrls': [{'url': 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'}],})print(run['defaultDatasetId'])
cURL
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~youtube-video-details-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"videoUrls":[{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"}]}'
MCP usage
Use this actor through Apify MCP from Claude Code, Claude Desktop, or another MCP-compatible client.
MCP URL:
https://mcp.apify.com/?tools=fetch_cat/youtube-video-details-scraper
Claude Code setup:
$claude mcp add apify-youtube-video-details "https://mcp.apify.com/?tools=fetch_cat/youtube-video-details-scraper"
Claude Desktop JSON configuration:
{"mcpServers": {"apify-youtube-video-details": {"url": "https://mcp.apify.com/?tools=fetch_cat/youtube-video-details-scraper"}}}
Example prompts:
- "Enrich these YouTube URLs and summarize the channels."
- "Create a CSV of titles, view counts, and publish dates for this video list."
- "Check which YouTube links in this report are unavailable."
Data quality notes
Public YouTube pages can expose different metadata for different videos.
Some fields may be missing because the creator, region, or YouTube page does not expose them in public metadata.
This is normal. Use nullable fields and the status column in downstream processing.
Limits
The actor is designed for URL-by-URL enrichment, not YouTube search discovery.
It does not crawl channels, search results, playlists, or comments.
For large files, deduplicate URLs before upload when possible. The actor also deduplicates by video ID internally.
Legality
This actor extracts publicly available metadata from public YouTube pages and public YouTube metadata responses.
You are responsible for ensuring your use complies with applicable laws, YouTube terms, privacy rules, and your organizationβs policies.
Do not use the actor for private, copyrighted, or restricted data you are not allowed to process.
Troubleshooting
Why are likes or comments null?
YouTube does not always expose likes or comment counts in public page metadata. The actor returns null instead of guessing.
Why did a video return an error row?
The video may be private, deleted, age-restricted, region-limited, malformed, or temporarily unavailable. Check errorMessage for details.
Why is channelId null for some rows?
When YouTube only exposes lightweight public metadata, the actor may return an author/channel URL but not the internal channel ID.
FAQ
Can I scrape YouTube Shorts?
Yes. Add Shorts URLs to videoUrls.
Do I need a YouTube API key?
No. This actor is intended for public metadata enrichment without a user-supplied YouTube API key.
Does the actor download videos?
No. It extracts metadata only.
Does it scrape comments?
No. It returns video-level metadata. Use a dedicated comments scraper for comments.
Related scrapers
You may also need:
- https://apify.com/fetch_cat/youtube-transcript-scraper
- https://apify.com/fetch_cat/youtube-comments-scraper
- https://apify.com/fetch_cat/youtube-channel-videos-scraper
- https://apify.com/fetch_cat/youtube-shorts-scraper
Support
If a public video URL does not work as expected, save the run ID and a small sample input.
Include both in your support request so the issue can be reproduced quickly.