Video Performance Analytics
youtube_video_performanceRetrieve detailed analytics for any YouTube video including views, watch time, retention, subscriber impact, and engagement. Optionally get a day-by-day breakdown.
Instructions
Retrieve detailed analytics for a single YouTube video, including views, watch time, retention, subscriber impact, engagement, and more. Optionally break down by day.
Args:
videoId(required): The YouTube video ID, e.g."dQw4w9WgXcQ".startDate(optional): Inclusive start date inYYYY-MM-DDformat. Defaults to 28 days ago.endDate(optional): Inclusive end date inYYYY-MM-DDformat. Defaults to today.dimension(optional):"none"(default, aggregate) or"day"(per-day breakdown).response_format(optional):"markdown"(default) or"json".
Returns (JSON shape):
{
"columns": ["views", "estimatedMinutesWatched", "averageViewDuration", "averageViewPercentage",
"subscribersGained", "subscribersLost", "likes", "dislikes", "comments", "shares"],
"rows": [[5000, 12000, 144, 55.3, 30, 2, 200, 5, 40, 15]]
}When dimension is "day", the first column is the date string.
Examples:
"How did video dQw4w9WgXcQ perform last month?" →
videoId: "dQw4w9WgXcQ"with date args."Day-by-day views for my latest video" →
videoId: "...", dimension: "day".
Errors:
400: invalid video ID format or unsupported metric/dimension pair.
403: insufficient scope — re-run
npm run auth.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| videoId | Yes | YouTube video ID to analyze, e.g. "dQw4w9WgXcQ". | |
| startDate | No | Inclusive start date in YYYY-MM-DD format. Defaults to 28 days ago. | |
| endDate | No | Inclusive end date in YYYY-MM-DD format. Defaults to today. | |
| dimension | No | Time grouping: "none" (default) for aggregate totals, "day" for per-day rows. | none |
| response_format | No | Output format: "markdown" (default) for a human-readable table, "json" for the structured payload. | markdown |