YouTube Video Scraper avatar

YouTube Video Scraper

Pricing

$0.39 / 1,000 results

Go to Apify Store
YouTube Video Scraper

YouTube Video Scraper

YouTube video scraper for Apify — get YouTube video metadata (title, channel, views, duration, description, likes, thumbnails) from watch URLs, Shorts, or IDs. Bulk Dataset export. Not a video downloader.

Pricing

$0.39 / 1,000 results

Rating

5.0

(1)

Developer

Scrape Mamba

Scrape Mamba

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

YouTube Video Scraper — Get Video Metadata at Scale

Turn YouTube watch URLs, Shorts links, or video IDs into clean, exportable metadata — titles, channels, views, duration, descriptions, likes, and thumbnails — ready for analysis, CRM, or warehouse loads.

Run YouTube Video Scraper on Apify · Built by ScrapeMamba · Metadata only (not a video downloader)


Why this Actor?

Most teams already have video IDs and need reliable enrichment: pass a list, get structured Dataset rows with a stable videoId join key, and move on.

  • Accepts watch URLs, Shorts, youtu.be, and bare 11-character IDs
  • Deduplicates IDs before fetching
  • Isolates failures as error rows so one bad ID does not kill the run
  • Built for bulk ID lists
  • Fits cleanly next to Search, Channel Videos, Related, and Subtitles Actors in the same suite

Key features

  • Bulk YouTube video metadata from URLs or IDs
  • Flat fields ready for CSV/Excel plus a full raw payload for deeper attributes
  • Per-item error handling for unavailable or invalid videos
  • Works with Shorts and long-form videos
  • Programmatic runs via Apify API / Client SDKs

What you can scrape

GroupFields
IdentityvideoId, url, isShort
Contenttitle, description, thumbnail, length (seconds), publishedTime
Channelauthor, channelId
Engagementviews, likeCount
Diagnosticstype (video / error), raw, error

Use cases

  • Enrich discovery results — After Search or Channel Videos, hydrate IDs with full metadata
  • Competitor content audits — Compare titles, lengths, and view counts across a URL list
  • Influencer / lead research — Score videos before outreach
  • Dataset building — Produce a clean video dimension table keyed by videoId
  • Content research — Pull descriptions and publish signals for topic analysis

Example output

{
"type": "video",
"videoId": "dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video)",
"author": "Rick Astley",
"channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
"views": 1600000000,
"likeCount": 17000000,
"length": 213,
"publishedTime": "2009-10-25",
"description": "The official video for “Never Gonna Give You Up”…",
"thumbnail": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"isShort": false
}

Failed items look like { "type": "error", "videoId": "…", "error": "…" } so ETL can filter and retry.


How to use

  1. Open YouTube Video Scraper on Apify
  2. Paste videoIds (start with one public video)
  3. Start the run → export the Dataset (JSON / CSV / Excel) or pull via API

Input example

{
"videoIds": [
"https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"https://www.youtube.com/shorts/abc123xyz01"
]
}

API (Node.js)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('scrapemamba/youtube-video-scraper').call({
videoIds: ['https://www.youtube.com/watch?v=dQw4w9WgXcQ'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Local run

cd youtube-video-scraper-js
cp .env.example .env
npm install
# INPUT at storage/key_value_stores/default/INPUT.json
node src/main.js

Input parameters

ParameterRequiredDescription
videoIdsYesYouTube video URLs or 11-character IDs. Free users are limited to 200 videos per run; paying users are uncapped.

Output

Each successful row is type: "video" with mapped metadata plus a raw object for extra attributes. Use mapped columns for BI; keep raw when you need fields not yet flattened.

FieldMeaning
videoIdStable 11-character ID (join key)
lengthDuration in seconds
views / likeCountEngagement signals (nullable when unavailable)
isShortWhether the item is treated as a Short

Why choose this Actor

  • Enrichment-first design — Built for ID lists, not keyword discovery
  • Suite-ready join keys — Same videoId used by Subtitles, Related, and Search Actors
  • Graceful bulk runs — Bad IDs become error rows; good IDs still land
  • No media downloads — Focused on public metadata you can warehouse safely

Pricing

$0.39 per 1,000 results on Apify (Dataset rows produced by the run). Free users process at most the first 200 videos per run. Confirm current packaging on the Store page.


FAQ

How do I scrape YouTube video metadata with this Actor?

Pass URLs or IDs in videoIds, start the run, and export the Dataset — or call the Actor via Apify API/Client.

Does it download videos?

No. Public metadata and thumbnails only.

How many videos can I process in one run?

Paying users can pass large lists (IDs are deduped before fetch). Free users are limited to the first 200 videos per run. Split very large catalogs across scheduled runs for clearer monitoring.

Can I mix watch URLs and Shorts?

Yes. Both normalize to videoId; duplicates collapse to one fetch.

Why are some rows type: "error"?

Unavailable, private, or invalid IDs are isolated so the rest of the batch continues. Filter and retry selectively.

Can I schedule enrichment weekly?

Yes. Save an Actor task (or generate Input dynamically), attach an Apify Schedule, and optionally a webhook into your warehouse.


ActorUse it for
YouTube Search ScraperDiscover IDs by keyword
YouTube Channel Videos ScraperList uploads, then enrich here
YouTube Subtitles ScraperTranscripts for the same IDs
YouTube Related Videos ScraperRecommendation neighbors

Use only on public video data in line with YouTube’s terms and applicable law.