Search YouTube
youtube_searchSearch YouTube videos across multiple queries and languages, returning merged results with transcript highlights showing where each video discusses your topic, plus timestamped links.
Instructions
Search YouTube videos and get back ready-to-use results with transcript highlights: the passages where each video actually talks about your topic, with timestamped links.
Best for: finding videos on a topic, finding what creators say about something, collecting examples (hooks, claims, tutorials) across many videos. Returns: one merged, de-duplicated list across all queries. Each video has metadata (channel, views, date, duration, views/day), YouTube's matched snippet and key moments, plus transcript highlights for the top results.
Query tips:
Send several queries in ONE call to cover the topic: synonyms, angles and languages, e.g. ["AI productivity workflow", "how I use AI to save time at work", {"query": "productividad con IA", "hl": "es", "gl": "ES"}].
Write queries the way a creator would title the video, not as keyword soup.
Use filters (uploaded, publishedAfter, minViews, duration, shorts) instead of asking for more results.
If highlights are not enough, call youtube_fetch on the best videos (it can return only a time range, e.g. the first 30 s for a hook, or only passages matching a query).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | relevance (default), views (server-side), or date: newest first among the fetched results; YouTube dropped server-side date sort, so pair it with uploaded. | |
| limit | No | Results per query before merging (default 10, max 50). | |
| shorts | No | Default exclude. | |
| queries | Yes | 1–12 queries, run in one call and merged. Strings, or {query, hl, gl} for a language/region-specific query. | |
| duration | No | Server-side: short <4 min, medium 4–20 min, long >20 min. | |
| minViews | No | ||
| uploaded | No | Server-side upload-date window. Prefer this over publishedAfter when it fits. | |
| highlights | No | How many top results get transcript highlights (default 5, 0 = off, max 25). Each downloads one transcript; YouTube rate-limits transcripts per IP, so spend them where they matter. | |
| captionsOnly | No | Only videos with subtitles/CC (server-side filter). | |
| highlightQuery | No | What to highlight in transcripts, if different from the search queries (e.g. search 'AI productivity', highlight 'biggest mistake'). | |
| maxDurationSec | No | ||
| minDurationSec | No | ||
| publishedAfter | No | YYYY-MM-DD or YYYY-MM. Applied after search on YouTube's relative dates ('3 weeks ago'), so it is approximate (±1 unit). | |
| publishedBefore | No | YYYY-MM-DD or YYYY-MM, approximate like publishedAfter. | |
| transcriptLangs | No | Preferred transcript languages in order, e.g. ['es','en']. Default: the video's original language. | |
| highlightsPerVideo | No | Passages per video (default 3, max 8). |