# YouTube search

Search YouTube videos, channels, playlists and Shorts. Takes type, upload date, duration and more, all optional. Served by Litescrape.

Search YouTube videos, channels, playlists and Shorts. Fresh requests only; saved-query and conversation continuation tokens are not supported.

- Tool ID: `litescrape/youtube-search`
- Name in the catalog: YouTube Search
- Provider: [Litescrape](/providers/litescrape.md)
- Capability: [YouTube search](/tools/youtube/search.md)
- Price: $0.00015 per call
- Authentication: an authorised Agentik workspace is required for execution, including zero-price tools.

## Pricing contract

The provider’s price, with no markup. Billed for measured usage.


```json
{
  "model": "per_call",
  "amountUsd": 0.00015
}
```

Pricing source: [https://litescrape.com/pricing](https://litescrape.com/pricing). $0.15 per 1,000 successful HTTP 200 requests; every native endpoint costs one call. Failed requests are not billed. Prepaid credits expire after six months..

Price verification date: 2026-11-03.

## Complete input schema


```json
{
  "additionalProperties": false,
  "properties": {
    "type": {
      "anyOf": [
        {
          "enum": [
            "video",
            "shorts",
            "channel",
            "playlist",
            "movie"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Result type. Omit for mixed results. Movies appear in video_results.\n\nChannels and playlists cannot use upload_date, duration or features. Shorts cannot use duration. Movies cannot use live, subtitles, creative_commons or 3d features."
    },
    "upload_date": {
      "anyOf": [
        {
          "enum": [
            "today",
            "this_week",
            "this_month",
            "this_year"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Limit results by upload date."
    },
    "duration": {
      "anyOf": [
        {
          "enum": [
            "under_3_min",
            "between_3_and_20_min",
            "over_20_min"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Video duration: under 3 minutes, 3–20 minutes, or over 20 minutes."
    },
    "features": {
      "anyOf": [
        {
          "maxLength": 160,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Comma-separated features: live, 4k, hd, subtitles, creative_commons, 360, vr180, 3d, hdr, location. Combined features must all match."
    },
    "sort_by": {
      "anyOf": [
        {
          "enum": [
            "relevance",
            "popularity"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "YouTube ranking: relevance (default) or popularity. Popularity is not a strict numerical view-count sort.\n\nUses YouTube's current ranking choices. The removed upload-date/rating sorts and last-hour upload filter are not supported named values."
    },
    "q": {
      "anyOf": [
        {
          "maxLength": 2048,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Search query. Required for the first page; omit with page_token.\n\nRequired on the first page."
    },
    "hl": {
      "anyOf": [
        {
          "pattern": "^[a-zA-Z]{2,3}(?:-[a-zA-Z0-9]{2,8}){0,2}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "YouTube interface language, such as en or pt-BR. Defaults to en. Omit with page_token."
    },
    "gl": {
      "anyOf": [
        {
          "pattern": "^[A-Za-z]{2}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Two-letter country code. Defaults to US. Omit with page_token."
    },
    "sp": {
      "anyOf": [
        {
          "maxLength": 2048,
          "minLength": 1,
          "pattern": "^[a-zA-Z0-9_+/=%-]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Advanced YouTube filter token from a results URL. Use either sp or named filters, never both. Omit with page_token.\n\nUse either sp or named filters, never both. Raw or once-URL-encoded values from a YouTube results URL are accepted."
    }
  },
  "type": "object",
  "allOf": [
    {
      "anyOf": [
        {
          "required": [
            "q"
          ],
          "properties": {
            "q": {
              "not": {
                "enum": [
                  null,
                  ""
                ]
              }
            }
          }
        }
      ]
    }
  ]
}
```

## Published example

This is the provider tool’s published example. Replace example values with the user’s requested inputs, respecting the schema; do not execute an example merely to test a connection.


```json
{
  "tool_id": "litescrape/youtube-search",
  "input": {
    "q": "python tutorial",
    "type": "video"
  }
}
```

## Execute and retrieve

Inspect again before execution, explain the price and obtain the required authority. Use MCP run_tool or POST /v1/run with this tool ID, valid input and an idempotency key. Save the returned run ID and follow the actual state. If Agentik answers that the tool is temporarily unavailable, do not retry it blindly; use discovery to propose an alternative.

A partial or uncertain result can still have consumed provider resources. Consult [billing](/docs/billing.md), [idempotency](/docs/idempotency.md) and [asynchronous results](/docs/async.md).

[Provider documentation](https://litescrape.com/docs/reference#youtube-search-parameters)

[REST inspection](https://api.agentik.cc/v1/tools/litescrape/youtube-search) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/litescrape/youtube-search) · [Agent index](/llms.txt)
