# New Videos by Search — YouTube Data

> Emit new event for each new YouTube video matching the search criteria.

- Key: `youtube_data_api-new-videos-by-search`
- Type: Trigger (Polling)
- Version: 0.0.11
- App: YouTube Data (`youtube_data_api`) — https://pipedream.com/apps/youtube-data-api.md
- This page (HTML): https://pipedream.com/apps/youtube-data-api/triggers/new-videos-by-search
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/youtube_data_api/sources/new-videos-by-search/new-videos-by-search.mjs

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `q` | `string` | No | Search for new videos that match these keywords. |
| `channelId` | `string` | No | The channelId parameter specifies a unique YouTube channel ID. E.g. UChkRx83xLq2nk55D8CRODVz |
| `videoDuration` | `string` | No | Filter the results based on video duration |
| `videoDefinition` | `string` | No | Filter the results to only include either high definition (HD) or standard definition (SD) videos |
| `videoCaption` | `string` | No | Indicates whether the API should filter video search results based on whether they have captions |
| `videoLicense` | `string` | No | Filter the results to only include videos with a particular license |
| `regionCode` | `string` | No | The regionCode parameter instructs the API to return results for the specified country. The parameter value is an ISO 3166-1 alpha-2 country code. For example: US, GB, BR |
| `videoCategoryId` | `string` | No | Select the video's category Options are loaded from the connected account. |
| `location` | `string` | No | The location parameter, in conjunction with the locationRadius parameter, defines a circular geographic area and also restricts a search to videos that specify, in their metadata, a geographic location that falls within that area. The parameter value is a string that specifies latitude/longitude coordinates e.g. 37.42307,-122.08427. |
| `locationRadius` | `string` | No | The parameter value must be a floating point number followed by a measurement unit. Valid measurement units are m, km, ft, and mi. For example, valid parameter values include 1500m, 5km, 10000ft, and 0.75mi. The API does not support locationRadius parameter values larger than 1000 kilometers. |
| `maxResults` | `integer` | No | The maximum number of items that should be returned in the result set. Acceptable values are 0 to 50, inclusive. Default is 20 |
| `timer` | `$.interface.timer` | Yes | Pipedream will poll the YouTube API on this schedule |

## Returns

Events emitted by YouTube Data.

## Run it

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const deployed = await pd.triggers.deploy({
  id: "youtube_data_api-new-videos-by-search",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    youtube_data_api: { authProvisionId: "apn_xxxxxxx" },
    q: "Search Query",
    channelId: "Channel ID",
  },
  webhookUrl: "https://example.com/webhooks/youtube-data-api",
})

console.log(deployed.id)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/triggers/deploy \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "youtube_data_api-new-videos-by-search",
    "webhook_url": "https://example.com/webhooks/youtube-data-api",
    "configured_props": {
      "youtube_data_api": { "authProvisionId": "apn_xxxxxxx" },
      "q": "Search Query",
      "channelId": "Channel ID"
    }
  }'
```

**MCP**

MCP servers expose YouTube Data actions as on-demand tools.

New Videos by Search is an event source, so your application deploys it with the Connect SDK or API and then either receives each event at a webhook URL or retrieves events on demand with the trigger events API.

## Event delivery

Every event is sent to the HTTP endpoint you choose when you deploy the source. Or: no webhook required — your app or agent can fetch recent events from the [trigger events API](https://pipedream.com/docs/connect/api-reference/list-trigger-events.md) instead.

---

- App: https://pipedream.com/apps/youtube-data-api.md · All apps: https://pipedream.com/apps
