Export public YouTube video and Shorts metadata from video URLs, Shorts URLs, youtu.be links, embed links, or raw video IDs.
Use this actor when you need a repeatable CSV, JSON, Excel, or API export of public YouTube video details for content research, channel analysis, video monitoring, catalog enrichment, or AI-agent workflows.
At a glance
- Input: YouTube video URLs, Shorts URLs, youtu.be links, embed URLs, or video IDs.
- Output: One dataset row per unique video with title, description, channel, dates, duration, public metrics when available, thumbnails, keywords, and status.
- Works with Shorts: Shorts URLs are accepted and marked with
isShort. - No login required: The actor reads public video pages and public oEmbed fallback data.
- Best for: Video metadata exports, channel audits, content inventories, and YouTube API alternative workflows.
What can it do?
- Export YouTube video details: Get public titles, descriptions, video IDs, canonical URLs, thumbnails, and keywords.
- Collect channel context: Save channel names, channel IDs, and channel URLs when YouTube exposes them.
- Track public metrics: Export view counts, like counts, comment counts, duration, publish dates, and live/Shorts flags when available.
- Handle unavailable videos: Save per-video error rows instead of failing the whole run.
- Use as a YouTube video API alternative: Run from the Apify UI, API, schedules, webhooks, or the official Apify MCP server.
Common workflows
- Content inventory: Build a clean spreadsheet of video URLs, titles, descriptions, channels, and publish dates.
- Competitor video research: Monitor public video metadata and engagement fields across a list of competitor URLs.
- Shorts analysis: Separate Shorts from regular videos and compare title, channel, and metric patterns.
- Dataset enrichment: Add video metadata to rows collected by a YouTube search, playlist, or channel scraper.
- AI-agent research: Let an agent fetch structured video context before summarizing, classifying, or comparing videos.
Input example
{
"videoUrls": [
{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" },
{ "url": "https://www.youtube.com/shorts/0zM3nApSvMg" }
],
"videoIds": ["9bZkp7q19f0"],
"maxConcurrency": 3,
"includeRawMetadata": false
}
Output example
{
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"videoId": "dQw4w9WgXcQ",
"type": "video",
"title": "Rick Astley - Never Gonna Give You Up (Official Music Video)",
"description": "Official video...",
"channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
"channelName": "Rick Astley",
"channelUrl": "https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw",
"publishedAt": "2009-10-25",
"durationSeconds": 213,
"viewCount": 1780000000,
"likeCount": null,
"commentCount": null,
"thumbnailUrls": ["https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg"],
"keywords": ["Rick Astley"],
"isLiveContent": false,
"isShort": false,
"scrapedAt": "2026-07-03T10:00:00.000Z",
"status": "ok"
}
Tips for best results
- Start with 5-20 URLs before running a large list.
- Mix
videoUrlsandvideoIdsonly when you need both; duplicates are deduplicated by video ID. - Keep
includeRawMetadataoff for normal exports because it makes dataset rows larger. - Use
statusanderrorMessageto separate unavailable, private, deleted, or invalid videos. - Expect some metric fields to be
null; YouTube does not expose every count for every video.
Limits and caveats
- The actor exports metadata. It does not download videos, scrape comments, or extract transcripts.
- Private, age-restricted, deleted, or region-blocked videos may return partial data or an error row.
- Like and comment counts are only available when YouTube exposes them in public page metadata.
- YouTube page structure can change, so large monitoring workflows should keep a small scheduled test run.
API usage
curl "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" }],
"maxConcurrency": 3
}'
MCP and AI agents
You can run this actor through the official Apify MCP server at https://mcp.apify.com.
For a focused single-actor tool, use:
https://mcp.apify.com?tools=fetch_cat/youtube-video-details-scraper
Agent-friendly inputs are videoUrls, videoIds, maxConcurrency, and includeRawMetadata. The output dataset has defined fields and table views so agents can reason about video metadata rows without guessing the schema.
Support
If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.
Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.