# Youtube Metadata Scraper (`bluebird/youtube-data-scraper`) Actor

Scrape detailed youtube metadata from a list of URL, Fast en Simple!

- **URL**: https://apify.com/bluebird/youtube-data-scraper.md
- **Developed by:** [BlueBird](https://apify.com/bluebird) (community)
- **Categories:** Automation, SEO tools, Social media
- **Stats:** 63 total users, 0 monthly users, 0.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

$14.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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

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).


# README

### 🎥 What does Youtube metadata scraper do?
Youtube metadata scraper will enable you to extract metadata from a Youtube URL, providing you with valuable information such as the title, subtitles, uploader, view count, like count, and more.

**Are you looking for extra features? Feel free to message, we can add most features in 1-3 days for free!**

Youtube metadata scraper can scrape:
- 📝 Title
- 🎧 Subtitles
- 👤 Uploader
- 👁️ View count
- 👍 Like count
- And much more

### 🤔 Why scrape Youtube?
Youtube is one of the most popular video-sharing platforms with millions of users and a vast amount of data available. Scraping Youtube can provide valuable insights for various industries and use cases.

Here are just some of the ways you could use the scraped data:
- 🔍 Analyze trending topics
- 🆚 Monitor competitor videos
- 📊 Track engagement metrics
- 📚 Research content strategies

If you would like more inspiration on how scraping Youtube could help your business or organization, check out our [industry pages](https://apify.com/industries).

### 🛠️ How to scrape Youtube
It's easy to scrape Youtube with Youtube metadata scraper. Just follow these few steps and you'll get your data in a few minutes.

1. ✨ Click on Try for free.
2. 🔗 Enter the Youtube URL you want to scrape.
3. ▶️ Click on Run.
4. 📥 When Youtube metadata scraper has finished, preview or download your data from the Dataset tab.

### 💰 How much will it cost to scrape Youtube?
Apify gives you $5 free usage credits every month on the [Apify Free plan](https://apify.com/pricing). You can get a certain number of results per month from Youtube metadata scraper for free with the free plan!

But if you need to scrape more data regularly from Youtube, you should consider an Apify subscription. We recommend our [$49/month Starter plan](https://apify.com/pricing) - you can get a higher limit of results every month with the $49 monthly plan!

### 📊 Results
Here is a sample of the data that the Actor produces:
```json
    {
        "title": "SpaceX completes world first landing after rocket booster caught by mechanical arms",
        "id": "3GwQdrhp__k",
        "subtitles": {},
        "comment_count": 507,
        "chapters": null,
        "like_count": 2915,
        "channel": "Sky News",
        "channel_follower_count": 8060000,
        "channel_is_verified": true,
        "uploader": "Sky News",
        "uploader_id": "@SkyNews",
        "uploader_url": "https://www.youtube.com/@SkyNews",
        "upload_date": "20241013",
        "timestamp": 1728843268,
        "availability": "public",
        "original_url": "https://www.youtube.com/watch?v=3GwQdrhp__k",
        "webpage_url_basename": "watch",
        "webpage_url_domain": "youtube.com",
        "playlist": null,
        "playlist_index": null,
        "display_id": "3GwQdrhp__k",
        "fulltitle": "SpaceX completes world first landing after rocket booster caught by mechanical arms",
        "duration_string": "2:30",
        "release_year": null,
        "is_live": false,
        "was_live": false,
        "requested_subtitles": null,
        "filesize": 8010685,
        "source_preference": -1,
        "fps": 25,
        "audio_channels": 2,
        "height": 360,
        "quality": 6.0,
        "filesize_approx": 8010669,
        "url": "https://rr3---sn-uhvcpaxoa-guhe.googlevideo.com/videoplayback?expire=1729014097&ei=8VQOZ-rLCvPL6dsPqtGDgQQ&ip=31.187.165.43&id=o-AE8aq_h140vJ2o0wbmcBADYHBikopYBe64KUw1QOJkKd&itag=18&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1728992497%2C&mh=Hg&mm=31%2C29&mn=sn-uhvcpaxoa-guhe%2Csn-5hnednss&ms=au%2Crdu&mv=u&mvi=3&pl=20&rms=au%2Cau&bui=AXLXGFSMW3bnxyiZXpwsCqr79blyJ6eht9pm356r-_AQcnvJghVw8kik3TT4amcuc6vquZVf-obvfHaY&spc=54MbxVfLqCLRkvAPiFXqeg7DFF1y7X_XCM3bI9mYmfA8w6o11V7cDi6Pc6nEj54&vprv=1&svpuc=1&mime=video%2Fmp4&ns=7iUcX9ys4UHVG0jh3ROtTDsQ&rqh=1&gir=yes&clen=8010685&ratebypass=yes&dur=149.861&lmt=1728928713226741&mt=1728991542&fvip=2&fexp=51300761%2C51312688&c=MWEB&sefc=1&txp=4538434&n=yOMqn2U6Xd74WA&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&sig=AJfQdSswRgIhAJ82qtNL05M8ulMDc1omm0XngEpyxaf1oEI5lEbW2j-mAiEA7S3tls9DUy7BI2MaL95p8Yrha8HFwWNbEm_6noUZQMw%3D&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms&lsig=ACJ0pHgwRAIgXOxubrggEjQYqmAoVqObWKUeFH8h2CpFn6yMR49srbQCIC4wqK-T6p1LLYQT5cWQurCCSl1CJJIO8oJgoj7mvy_T",
        "width": 640,
        "language": "en",
        "language_preference": -1,
        "preference": null,
        "ext": "mp4",
        "vcodec": "avc1.42001E",
        "acodec": "mp4a.40.2",
        "dynamic_range": "SDR",
        "downloader_options": {
            "http_chunk_size": 10485760
        },
        "protocol": "https",
        "resolution": "640x360",
        "aspect_ratio": 1.78,
        "http_headers": {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36",
            "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
            "Accept-Language": "en-us,en;q=0.5",
            "Sec-Fetch-Mode": "navigate"
        },
        "video_ext": "mp4",
        "audio_ext": "none"
    }
````

### 💡 Tips for scraping Youtube

- 🔑 Use specific keywords in your search to get more relevant results.
- 📡 Monitor the Youtube API for any changes that may affect your scraping.

### 🛑 Is it legal to scrape Youtube?

Note that scraping Youtube may be subject to terms of service and copyright laws. Ensure you are compliant with Youtube’s policies and regulations when scraping data from the platform.

For more information on web scraping legality, read our blog post: is web scraping legal?.

# Actor input Schema

## `urls` (type: `array`):

List of youtube video URLs to scrape data from

## Actor input object example

```json
{
  "urls": [
    "https://www.youtube.com/watch?v=3GwQdrhp__k"
  ]
}
```

# 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("bluebird/youtube-data-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("bluebird/youtube-data-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 bluebird/youtube-data-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Youtube Metadata Scraper",
        "description": "Scrape detailed youtube metadata from a list of URL, Fast en Simple!",
        "version": "0.0",
        "x-build-id": "eY2hDZIpQfLOdHhSo"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/bluebird~youtube-data-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-bluebird-youtube-data-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/bluebird~youtube-data-scraper/runs": {
            "post": {
                "operationId": "runs-sync-bluebird-youtube-data-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/bluebird~youtube-data-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-bluebird-youtube-data-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": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "Youtube Video URLs",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "List of youtube video URLs to scrape data from",
                        "default": [
                            "https://www.youtube.com/watch?v=3GwQdrhp__k"
                        ],
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
