YouTube Video Scraper
Pricing
$0.39 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
2 days 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
errorrows 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
rawpayload 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
| Group | Fields |
|---|---|
| Identity | videoId, url, isShort |
| Content | title, description, thumbnail, length (seconds), publishedTime |
| Channel | author, channelId |
| Engagement | views, likeCount |
| Diagnostics | type (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
- Open YouTube Video Scraper on Apify
- Paste
videoIds(start with one public video) - 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-jscp .env.example .envnpm install# INPUT at storage/key_value_stores/default/INPUT.jsonnode src/main.js
Input parameters
| Parameter | Required | Description |
|---|---|---|
videoIds | Yes | YouTube 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.
| Field | Meaning |
|---|---|
videoId | Stable 11-character ID (join key) |
length | Duration in seconds |
views / likeCount | Engagement signals (nullable when unavailable) |
isShort | Whether 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
videoIdused 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.
Related Actors
| Actor | Use it for |
|---|---|
| YouTube Search Scraper | Discover IDs by keyword |
| YouTube Channel Videos Scraper | List uploads, then enrich here |
| YouTube Subtitles Scraper | Transcripts for the same IDs |
| YouTube Related Videos Scraper | Recommendation neighbors |
Use only on public video data in line with YouTube’s terms and applicable law.