nvNeuralVerge
Social media

YouTube Search API and MCP — Find Videos by Keyword with Filters

Send a keyword and this source searches YouTube and returns matching videos, shorts and live streams as data: title, description and its links, views, likes, comment count, duration, hashtags, publish date, optional subtitles, and the channel with its subscriber count.

You send
A keyword, with optional date, type, length and feature filters
You get back
Matching videos, shorts and streams with stats and channel subscribers
Coverage
Public YouTube videos, shorts and live streams.
Price
5 points per returned result, up to 1,000 of each type per request — $5 per 1,000
Billed per video, short or stream actually returned, capped by your limits. A search that matches nothing costs nothing.
Comparison

Ways to get this data

Three approaches teams use today, and where each one runs into trouble.

ApproachWhat it takesCostTrade-off
Searching by handType a term, scroll, copy titles and numbersFree, and slowFine for a look, not for tracking a set of terms
The YouTube Data APIA Google Cloud project, API key and quotaFree within a daily quotaSearch calls are expensive against the quota, and results need a second call for stats
NeuralVergeOne request per keyword$5 per 1,000, misses not billedResults follow YouTube's ranking for an anonymous visitor in one region
Response

What you get back

Every field in the example response below.

FieldTypeDescription
total_itemsnumberHow many videos came back.
items[].idstringYouTube's video ID.
items[].urlstringDirect link to the video.
items[].typestringvideo, shorts or stream.
items[].titlestringVideo title.
items[].descriptionstringFull description text.
items[].description_linksarrayLinks in the description, resolved to their real targets.
items[].hashtagsarrayHashtags on the video.
items[].datestringWhen the video was published (ISO 8601).
items[].durationstringLength as HH:MM:SS.
items[].view_countnumberViews at read time.
items[].likesnumberLikes at read time.
items[].comments_countnumberComment count.
items[].comments_turned_offbooleanWhether comments are disabled.
items[].is_paid_contentbooleanWhether the video declares a paid promotion.
items[].subtitlesarraySubtitle tracks, when download_subtitles is on.
items[].channelobjectThe channel: name, handle, subscribers, total videos, total views, description, links, joined date, verified.
Response

Example response

A real response, as returned.

{
  "session_id": "6803169b-e36b-47e8-bd1d-f3646797f9d1",
  "kind": "youtube_search",
  "query": "crm software review",
  "max_results": 1,
  "max_results_shorts": 0,
  "max_results_streams": 0,
  "download_subtitles": false,
  "partial": false,
  "machine": {
    "total_items": 1,
    "items": [
      {
        "id": "RIRyuq-AKOU",
        "url": "https://www.youtube.com/watch?v=RIRyuq-AKOU",
        "type": "video",
        "title": "Best CRM Software for Small Business for 2026 (Top 5 Tested & Compared)",
        "description": "This videos offers insights into the best crm for small business options, helping you navigate the world of customer relationship management with ease. …",
        "hashtags": [],
        "date": "2025-10-29T20:37:38.000Z",
        "duration": "00:11:21",
        "view_count": 50993,
        "likes": 537,
        "comments_count": 39,
        "comments_turned_off": false,
        "is_paid_content": false,
        "subtitles": [],
        "channel": {
          "id": "UCSPh1bFTdDalKnZPgQoOYUg",
          "name": "LYFE Accounting",
          "username": "LYFEAccounting",
          "url": "https://www.youtube.com/@LYFEAccounting",
          "subscribers": 596000
        },
        "order": 0,
        "found_on_url": "https://www.youtube.com/results?search_query=crm+software+review&sp=EgIQAQ%3D%3D"
      }
    ],
    "errors": []
  },
  "total_points": 5
}
Integration

How to run it

The same lookup works from the app, the API, or as a tool an agent can call mid-task.

This endpoint is synchronous: the call blocks until the lookup completes and returns the records directly. If a lookup hits its time budget before finishing, the response comes back with partial: true and whatever it collected so far — re-run with smaller limits for a complete result. query is required. Optional: max_results, max_results_shorts, max_results_streams (0-1,000; defaults 10, 0, 0), sorting_order (rating, date or views), date_filter (hour, today, week, month, year), video_type (video or movie), length_filter (under4, between420, plus20), features (e.g. hd, 4k, subtitles, live, creative_commons), download_subtitles, subtitles_language, subtitles_format.

curl -X POST https://api.neuralverge.ai/functions/v1/run-youtube-search \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "crm software review", "max_results": 20, "date_filter": "year", "length_filter": "between420", "sorting_order": "views" }'
Use cases

What teams use it for

Where this field shows up in an actual workflow.

Category video landscape

See who makes video about your category and how much it gets watched.

Creator discovery

Find channels that rank for your terms, with their subscriber counts attached.

Competitor mentions

Search a competitor's name to find reviews, tutorials and comparisons.

Agent research step

Let an agent find the right videos before it reads their comments or subtitles.

Coverage & limits

Coverage, freshness and limits

What this source covers, how fresh it is, and where it stops.

Coverage

Public YouTube videos, shorts and live streams.

Freshness

Read at request time.

Handling

This source returns what a channel published publicly, stamped with the URL it was read from and a session id you can trace.

What it will not do
  • —Results follow YouTube's ranking for an anonymous visitor, not a logged-in user's personalised results.
  • —Channel details on search results are lighter than on a channel lookup — total videos and total views can be null.
  • —Subtitles only come back when the video has them.
FAQ

Questions, answered

Yes — every Data Source endpoint, including this one, is synchronous: the lookup runs inside the request and the result comes back in the same response, no polling. If a lookup hits its time budget before finishing, the response comes back with partial: true and whatever records it collected so far — re-run with smaller limits to get a complete result instead of a partial one.

Related

Related sources

Try youtube search on your own data

One request format across every source in the catalog.

Get started