YouTube Video Details Scraper avatar

YouTube Video Details Scraper

Pricing

Pay per event

Go to Apify Store
YouTube Video Details Scraper

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

Hanna Nosova

Maintained by Community

Actor 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:

  1. Paste or upload video URLs.
  2. Run the actor.
  3. Export clean JSON, CSV, Excel, XML, or API results.
  4. 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?

FieldDescription
urlCanonical YouTube watch URL
videoIdYouTube video ID
typevideo, short, or unknown
titlePublic video title when available
descriptionPublic description when available
channelIdChannel ID when available
channelNameChannel or author name
channelUrlPublic channel URL
publishedAtPublish date/time when available
durationSecondsVideo length in seconds
viewCountPublic view count when exposed
likeCountPublic like count when exposed
commentCountPublic comment count when exposed
thumbnailUrlsAvailable thumbnail image URLs
keywordsPublic keyword tags when exposed
isLiveContentWhether the item is live content when exposed
isShortWhether the input/result appears to be a Short
scrapedAtTimestamp when the row was created
statusok or error
errorMessagePer-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_ID
  • https://youtu.be/VIDEO_ID
  • https://www.youtube.com/shorts/VIDEO_ID
  • https://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

  1. Open the actor on Apify.
  2. Add your YouTube URLs or video IDs.
  3. Keep maxConcurrency at the default for the first run.
  4. Click Start.
  5. Open the dataset when the run finishes.
  6. 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 null when YouTube does not expose them publicly.
  • Use status and errorMessage to 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 ApifyClient
client = 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.

You may also need:

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.