# YouTube: music videos of the 2010s

**Use case:** 

One row per video: views, likes, likes per thousand views, length, publish date, category, tags, the list of caption languages and the number of countries it is available in. This sheet holds a decade of music videos, so the publish date column spans years and the like ratio can be compared across a single genre rather than across the whole site.

## Input

```json
{
  "videos": [
    "https://www.youtube.com/watch?v=09R8_2nJtjg",
    "https://www.youtube.com/watch?v=CevxZvSJLk8",
    "https://www.youtube.com/watch?v=fRh_vgS2dFE",
    "https://www.youtube.com/watch?v=lp-EO5I60KA",
    "https://www.youtube.com/watch?v=DyDfgMOUjCI"
  ],
  "maxVideos": 50,
  "monitoringMode": false,
  "monitorMode": "any-change",
  "resetMonitoringState": false,
  "minViews": 0,
  "maxViews": 0,
  "minLengthSeconds": 0,
  "maxLengthSeconds": 0,
  "publishedAfter": "",
  "requireCaptions": false,
  "excludeLive": false,
  "keywords": [],
  "keywordMatch": "any",
  "excludeKeywords": [],
  "useProxy": true
}
```

## Output

```json
{
  "videoId": {
    "label": "Video Id",
    "format": "string"
  },
  "title": {
    "label": "Title",
    "format": "string"
  },
  "viewCount": {
    "label": "View Count",
    "format": "string"
  },
  "likeCount": {
    "label": "Like Count",
    "format": "string"
  },
  "viewDelta": {
    "label": "View Delta",
    "format": "string"
  },
  "channelTitle": {
    "label": "Channel Title",
    "format": "string"
  },
  "publishedAt": {
    "label": "Published At",
    "format": "string"
  },
  "lengthSeconds": {
    "label": "Length Seconds",
    "format": "string"
  },
  "source": {
    "label": "Source",
    "format": "string"
  },
  "status": {
    "label": "Status",
    "format": "string"
  },
  "scrapedAt": {
    "label": "Scraped At",
    "format": "string"
  },
  "input": {
    "label": "Input",
    "format": "string"
  },
  "videoUrl": {
    "label": "Video Url",
    "format": "string"
  },
  "description": {
    "label": "Description",
    "format": "string"
  },
  "channelId": {
    "label": "Channel Id",
    "format": "string"
  },
  "channelUrl": {
    "label": "Channel Url",
    "format": "string"
  },
  "subscriberCountText": {
    "label": "Subscriber Count Text",
    "format": "string"
  },
  "likesPerThousandViews": {
    "label": "Likes Per Thousand Views",
    "format": "string"
  },
  "publishedAtRaw": {
    "label": "Published At Raw",
    "format": "string"
  },
  "category": {
    "label": "Category",
    "format": "string"
  },
  "keywords": {
    "label": "Keywords",
    "format": "string"
  },
  "isLiveContent": {
    "label": "Is Live Content",
    "format": "string"
  },
  "isFamilySafe": {
    "label": "Is Family Safe",
    "format": "string"
  },
  "allowRatings": {
    "label": "Allow Ratings",
    "format": "string"
  },
  "hasCaptions": {
    "label": "Has Captions",
    "format": "string"
  },
  "captionLanguages": {
    "label": "Caption Languages",
    "format": "string"
  },
  "availableCountryCount": {
    "label": "Available Country Count",
    "format": "string"
  },
  "thumbnailUrl": {
    "label": "Thumbnail Url",
    "format": "string"
  },
  "playabilityStatus": {
    "label": "Playability Status",
    "format": "string"
  },
  "playabilityReason": {
    "label": "Playability Reason",
    "format": "string"
  },
  "isFirstCheck": {
    "label": "Is First Check",
    "format": "string"
  },
  "previousCheckedAt": {
    "label": "Previous Checked At",
    "format": "string"
  },
  "previousViewCount": {
    "label": "Previous View Count",
    "format": "string"
  },
  "likeDelta": {
    "label": "Like Delta",
    "format": "string"
  },
  "changedFields": {
    "label": "Changed Fields",
    "format": "string"
  },
  "searchUrl": {
    "label": "Search Url",
    "format": "string"
  },
  "note": {
    "label": "Note",
    "format": "string"
  }
}
```

## About this Actor

This example demonstrates how to use [YouTube Video Data Scraper - Views, Likes & Change Monitor](https://apify.com/neverempty/youtube-video-data-scraper.md) with a specific input configuration. Visit the [Actor detail page](https://apify.com/neverempty/youtube-video-data-scraper.md) to learn more, explore other use cases, and run it yourself.


## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
This Task's input is already configured above — use it as-is rather than inventing a new one.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For full API examples (JavaScript, Python, CLI, MCP, OpenAPI), see this Task's Actor page: https://apify.com/neverempty/youtube-video-data-scraper.md

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).
