# YouTube Music Video Scraper 🎵 (`easyapi/youtube-music-video-scraper`)

Extract video information from YouTube Music search results including titles, views, duration, channel details, and thumbnails. Perfect for music data analysis, content monitoring, and market research.

- **URL**: https://beta-securitybyobscurity.apify.com/easyapi/youtube-music-video-scraper.md
- **Developed by:** [EasyApi](https://beta-securitybyobscurity.apify.com/easyapi) (community)
- **Categories:** Social media, Integrations, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$19.99/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.
You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

# README

## YouTube Music Video Scraper 🎵

Powerful scraper that extracts comprehensive video information from YouTube Music search results. Get detailed data about music videos, including titles, views, duration, channel information, and more.

### 🎯 Use Cases

- Music trend analysis and research
- Content monitoring and tracking
- Artist performance analytics
- Market research for music industry
- Playlist and content curation
- Competitive analysis

### ✨ Features

- 🔍 Search-based data extraction
- 📊 Detailed video metrics (views, duration)
- 📱 High-quality thumbnail URLs
- 🎨 Channel information and links
- ⚡ Fast and efficient processing
- 🛡️ Built-in anti-blocking measures
- 🔄 Automatic pagination handling

### 🔢 Output Data Structure

For each video, you'll get:

- Video title
- Video ID and URL
- Thumbnail images (multiple resolutions)
- Video duration
- View count
- Channel details (name, ID, URL)
- Timestamp of data collection

### 💡 Input Parameters

- `keywords`: Array of search terms to scrape
- `maxItems`: Maximum number of results to collect

### 📝 Notes

- Respects YouTube Music's terms of service
- Results may vary based on regional availability
- Rate limiting measures are implemented

#### Input Example

A full explanation of an input example in JSON.

```json
{
    "keywords": [
        "u2"
    ],
    "maxItems": 70
}
```

#### Output sample

The results will be wrapped into a dataset which you can always find in the **Storage** tab. Here's an excerpt from the data you'd get if you apply the input parameters above:

And here is the same data but in JSON. You can choose in which format to download your data: JSON, JSONL, Excel spreadsheet, HTML table, CSV, or XML.

```json
[
    {
        "keyword": "u2",
        "data": {
            "title": "U2 Greatest Hits Full Album Live Best Of U2 U2 Best Songs",
            "videoId": "sE1B7_3H6lo",
            "thumbnails": [
                {
                    "url": "https://i.ytimg.com/vi/sE1B7_3H6lo/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nG34OaM3qFetpOqT6mQR6JOtr_CA",
                    "width": 400,
                    "height": 225
                }
            ],
            "duration": "2:04:07",
            "views": "106K views",
            "channel": {
                "name": "Rock Music",
                "id": "UC7hQKANZ31lMxu3cp_3FDqQ",
                "url": "https://music.youtube.com/channel/UC7hQKANZ31lMxu3cp_3FDqQ"
            },
            "url": "https://music.youtube.com/watch?v=sE1B7_3H6lo"
        },
        "scrapedAt": "2025-02-09T12:28:50.152Z"
    },
    ...
]
```

### Related Actors

- 🎵 [YouTube Music Song Scraper](https://apify.com/easyapi/youtube-music-song-scraper) - Extract comprehensive song details from YouTube Music search results
- 🎵 [YouTube Music Albums Scraper](https://apify.com/easyapi/youtube-music-albums-scraper) - Scrape album data including titles, artists and playlist URLs
- 🎵 [YouTube Music Artist Scraper](https://apify.com/easyapi/youtube-music-artist-scraper) - Get detailed artist information including subscriber counts and channel data
- 🎵 [YouTube Music Playlist Scraper](https://apify.com/easyapi/youtube-music-playlist-scraper) - Extract playlist details with creator info and song counts
- 🎵 [All-in-One YouTube Music Scraper](https://apify.com/easyapi/all-in-one-youtube-music-scraper) - Comprehensive scraper for songs, videos, albums, artists and playlists
- 🎥 [YouTube Video Data Scraper](https://apify.com/easyapi/youtube-video-data-scraper) - Extract comprehensive metadata from YouTube videos
- 📊 [YouTube Video Statistics Scraper](https://apify.com/easyapi/youtube-video-statistics-scraper) - Get detailed video stats including views, likes and comments
- 🎥 [YouTube Channel Shorts Scraper](https://apify.com/easyapi/youtube-channel-shorts-scraper) - Extract Shorts content from any YouTube channel
- 🔍 [Youtube Search Scraper](https://apify.com/easyapi/youtube-search-scraper) - Get search results without logging into YouTube
- 📺 [YouTube Trending Videos/Shorts Scraper](https://apify.com/easyapi/youtube-trending-videos-shorts-scraper) - Extract trending videos and shorts from YouTube
- 🎮 [YouTube Gaming Trends Scraper](https://apify.com/easyapi/youtube-gaming-trends-scraper) - Scrape trending gaming videos from YouTube Gaming section
- 🎬 [YouTube Movies Trending Scraper](https://apify.com/easyapi/youtube-movies-trending-scraper) - Get trending movie trailers and content
- 📝 [YouTube Description Extractor](https://apify.com/easyapi/youtube-description-extractor) - Extract complete video descriptions automatically
- 🎯 [YouTube Tags Extractor](https://apify.com/easyapi/youtube-tags-extractor) - Extract and analyze tags from any YouTube video
- 📊 [YouTube Channel Statistics Scraper](https://apify.com/easyapi/youtube-channel-statistics-scraper) - Get comprehensive channel statistics and metrics
- 🎥 [YouTube Channel ID Extractor](https://apify.com/easyapi/youtube-channel-id-extractor) - Convert YouTube channel URLs to channel IDs
- 🎯 [YouTube Hashtag Video & Shorts Scraper](https://apify.com/easyapi/youtube-hashtag-video-shorts-scraper) - Extract videos and Shorts by hashtag

# Actor input Schema

## `keywords` (type: `array`):

List of keywords to search for on YouTube Music

## `maxItems` (type: `integer`):

Maximum number of videos to scrape per keyword

## Actor input object example

```json
{
  "keywords": [
    "u2"
  ],
  "maxItems": 50
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("easyapi/youtube-music-video-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("easyapi/youtube-music-video-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call easyapi/youtube-music-video-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=easyapi/youtube-music-video-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "YouTube Music Video Scraper 🎵",
        "description": "Extract video information from YouTube Music search results including titles, views, duration, channel details, and thumbnails. Perfect for music data analysis, content monitoring, and market research.",
        "version": "0.0",
        "x-build-id": "6kB9IGMH4KeQNTlVC"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/easyapi~youtube-music-video-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-easyapi-youtube-music-video-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/easyapi~youtube-music-video-scraper/runs": {
            "post": {
                "operationId": "runs-sync-easyapi-youtube-music-video-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/easyapi~youtube-music-video-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-easyapi-youtube-music-video-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "keywords"
                ],
                "properties": {
                    "keywords": {
                        "title": "Search Keywords",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "List of keywords to search for on YouTube Music",
                        "default": [
                            "u2"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Maximum Items",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of videos to scrape per keyword",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
