Search YouTube
youtube_search_listSearch YouTube videos, channels, and playlists by free-text keyword (not hashtag — use youtube.search.hashtag.list for that). Returns a list (use cursor when paginated).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Alias for `query`. Prefer `query`. | |
| sort | No | Alias for `sortBy`. Prefer `sortBy`. | |
| trim | No | Ignored if this tool does not support it. | |
| type | No | Optional content type filter for search results. | |
| limit | No | Ignored if this tool does not support it. | |
| query | No | Search query text for YouTube content. | |
| cursor | No | Opaque pagination cursor returned by a previous response. | |
| offset | No | Ignored if this tool does not support it. | |
| region | No | Optional ISO 3166-1 country code for localized search results. | |
| sortBy | No | Optional sort order for search results. | |
| context | Yes | Describe the user's underlying goal in one sentence — not the tool you are calling. | |
| duration | No | Optional duration filter for video results. Applies to videos, not shorts. | |
| keywords | No | Alias for `query`. Prefer `query`. | |
| pageSize | No | Ignored if this tool does not support it. | |
| llm_model | Yes | The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" — never guess. | |
| maxResults | No | Ignored if this tool does not support it. | |
| uploadDate | No | Optional upload date filter for video results. | |
| max_results | No | Ignored if this tool does not support it. | |
| includeExtras | No | When true, returns richer per-video metadata when available. May increase response time. | |
| conversation_id | No | Echo the conversation_id from the server's previous response. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. |