# Google Video Search Scraper (`googleapi/google-video-search-scraper`) Actor

Collect public Google Video Search result cards and source links.

- **URL**: https://apify.com/googleapi/google-video-search-scraper.md
- **Developed by:** [Google API](https://apify.com/googleapi) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

Search public Google Video results and collect information from visible video cards. Each dataset item represents a video result and can include its title, provider, channel, date, duration, description snippet, engagement counts, thumbnail, and key moments when shown.

The Actor does not open video pages or fetch full descriptions from video providers.

### How to use

1. Enter one or more search terms, or provide public Google Video Search URLs.
2. Set the starting page, page limit, and total video limit.
3. Choose whether to include thumbnails and related search terms.
4. Run the Actor and view or export the video records.

Example:

```json
{
  "queries": ["mechanical keyboard"],
  "page": 1,
  "maxPages": 1,
  "maxItems": 25,
  "includeThumbnails": true,
  "includeRelatedSearches": true
}
```

### Input

| Input | Description | Default |
|---|---|---:|
| `queries` / `query` | One or more video-search terms. | — |
| `startUrls` | Public Google Video Search URLs with a query and video-search mode. `urls` is an alias. | — |
| `page` / `maxPages` | Starting search page and maximum pages per query. | 1 / 1 |
| `maxItems` | Maximum unique video records across the run. | 25 |
| `acceptLanguage` | Preferred language for Google Video Search results. | `en-US,en;q=0.8` |
| `includeThumbnails` | Include visible public thumbnail links and accessible labels. | `true` |
| `includeRelatedSearches` | Include visible related video-search terms. | `true` |
| `proxyConfiguration` | Optional proxy configuration for the standard browser fallback. | — |

### Output

Each row includes the required `title` and `videoUrl`. Other fields may include:

- **Provider and channel:** provider label, channel name, and channel link.
- **Publication:** exact text shown by Google and a date when explicitly available. Relative dates remain text; any estimated date is marked as estimated.
- **Video details:** duration, description snippet, video ID, and format where recognized.
- **Engagement:** displayed view/like counts and numeric values. Expanded counts from rounded labels such as `24K` are marked estimated.
- **Media and navigation:** thumbnail URL, key moments, and related search terms.

Example dataset item:

```json
{
  "title": "Example mechanical keyboard review",
  "videoUrl": "https://www.youtube.com/watch?v=example123",
  "provider": "YouTube",
  "channel": "Example Tech",
  "publishedText": "2 weeks ago",
  "publishedAtPrecision": "week",
  "durationText": "12:34",
  "durationSeconds": 754,
  "description": "A visible video description snippet.",
  "videoId": "example123",
  "viewCountText": "24K views",
  "viewCount": 24000,
  "viewCountIsEstimated": true,
  "thumbnailUrl": "https://example.com/thumbnail.jpg",
  "relatedSearches": ["mechanical keyboard review"]
}
```

The Output tab shows the available result fields. Run summary information is available with the run output in Apify.

### Limits and responsible use

Google may vary video results by query, language, and time. More pages and results increase run time. The Actor does not sign in or bypass access checks.

Use public video information responsibly and follow applicable privacy requirements and Google terms. This Actor is not affiliated with Google.

# Actor input Schema

## `startUrls` (type: `array`):

Public Google Video Search URLs containing q and udm=7. Existing udm=vids and tbm=vid URLs remain supported.

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

Compatibility alias for startUrls using string URLs.

## `query` (type: `string`):

One search term.

## `queries` (type: `array`):

Search terms converted to public Google Video Search URLs.

## `page` (type: `integer`):

One-based first page for generated query searches.

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

Maximum number of unique public video cards across requested pages.

## `maxPages` (type: `integer`):

Bounded number of public result pages requested for each query.

## `includeThumbnails` (type: `boolean`):

Include public thumbnail URLs and accessible labels when supplied by the source.

## `includeRelatedSearches` (type: `boolean`):

Include visible People also search for terms when supplied by Google.

## `requestTimeoutSecs` (type: `integer`):

Maximum time to wait for each public page request.

## `timeoutSecs` (type: `integer`):

Compatibility alias for requestTimeoutSecs.

## `timeoutMs` (type: `integer`):

Compatibility timeout value in milliseconds.

## `requestDelayMs` (type: `integer`):

Polite delay between public page requests.

## `maxRetries` (type: `integer`):

Retries for transient public request failures; access boundaries are never retried.

## `maxResponseBytes` (type: `integer`):

Maximum size in bytes accepted for a public HTML response.

## `acceptLanguage` (type: `string`):

Optional standard Accept-Language value for public search results.

## `proxyConfiguration` (type: `object`):

Optional Apify proxy configuration used only by the standard browser fallback.

## Actor input object example

```json
{
  "page": 1,
  "maxItems": 25,
  "maxPages": 1,
  "includeThumbnails": true,
  "includeRelatedSearches": true,
  "requestTimeoutSecs": 30,
  "requestDelayMs": 250,
  "maxRetries": 1,
  "maxResponseBytes": 2000000,
  "acceptLanguage": "en-US,en;q=0.8"
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `runSummary` (type: `string`):

No description

## `outputCounts` (type: `string`):

No description

## `runHealth` (type: `string`):

No description

# 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("googleapi/google-video-search-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("googleapi/google-video-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).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 googleapi/google-video-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,googleapi/google-video-search-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/XH2wZuDgtaWhdQqxD/builds/69eLIahuZd7Vsvf0R/openapi.json
