{
  "openapi": "3.0.0",
  "info": {
    "title": "YouTube General Search API (V1)",
    "version": "1.0.0",
    "description": "Search YouTube through TIKHUB general search, returning mixed video, channel, playlist, and movie results with continuation tokens plus filters for upload date, type, duration, features, and sort order for discovery and monitoring."
  },
  "servers": [
    {
      "url": "https://api.justoneapi.com",
      "description": "prod-global (default)"
    },
    {
      "url": "http://47.117.133.51:30015",
      "description": "prod-cn (optional for Mainland China)"
    }
  ],
  "paths": {
    "/api/youtube/search/v1": {
      "get": {
        "tags": [
          "YouTube"
        ],
        "summary": "General Search",
        "description": "Search YouTube through TIKHUB general search, returning mixed video, channel, playlist, and movie results with continuation tokens plus filters for upload date, type, duration, features, and sort order for discovery and monitoring.",
        "operationId": "getApiYoutubeSearchV1",
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "description": "Access token for this API service.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "keyword",
            "in": "query",
            "description": "Search keyword. Required on the first request; leave empty when using a continuation token.",
            "required": false,
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "continuationToken",
            "in": "query",
            "description": "Pagination token returned by the previous response.",
            "required": false,
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "uploadDate",
            "in": "query",
            "description": "Filter results by upload date.\n\nAvailable Values:\n- `last_hour`: Uploaded within the last hour\n- `today`: Uploaded today\n- `this_week`: Uploaded this week\n- `this_month`: Uploaded this month\n- `this_year`: Uploaded this year",
            "required": false,
            "schema": {
              "type": "string",
              "description": "YouTube search upload date filter",
              "enum": [
                "last_hour",
                "today",
                "this_week",
                "this_month",
                "this_year"
              ]
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Filter results by result type.\n\nAvailable Values:\n- `video`: Video results\n- `channel`: Channel results\n- `playlist`: Playlist results\n- `movie`: Movie results",
            "required": false,
            "schema": {
              "type": "string",
              "description": "YouTube search result type filter",
              "enum": [
                "video",
                "channel",
                "playlist",
                "movie"
              ]
            }
          },
          {
            "name": "duration",
            "in": "query",
            "description": "Filter video results by duration. Supported request values: short, medium, long.\n\nAvailable Values:\n- `SHORT`: Short videos under 4 minutes\n- `MEDIUM`: Medium videos from 4 to 20 minutes\n- `LONG`: Long videos over 20 minutes",
            "required": false,
            "schema": {
              "type": "string",
              "description": "YouTube search video duration filter",
              "enum": [
                "SHORT",
                "MEDIUM",
                "LONG"
              ]
            }
          },
          {
            "name": "features",
            "in": "query",
            "description": "Feature filters separated by commas. Supported values: live, 4k, hd, subtitles, creative_commons, 360, vr180, 3d, hdr.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "YouTube search feature filter",
              "enum": [
                "live",
                "FOUR_K",
                "hd",
                "subtitles",
                "creative_commons",
                "THREE_SIXTY",
                "vr180",
                "THREE_D",
                "hdr"
              ]
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "description": "Sort order for search results.\n\nAvailable Values:\n- `relevance`: Sort by relevance\n- `upload_date`: Sort by upload date\n- `view_count`: Sort by view count\n- `rating`: Sort by rating",
            "required": false,
            "schema": {
              "type": "string",
              "description": "YouTube search sort order",
              "enum": [
                "relevance",
                "upload_date",
                "view_count",
                "rating"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "enum": [
                        "0",
                        "100",
                        "101",
                        "202",
                        "300",
                        "301",
                        "302",
                        "303",
                        "400",
                        "404",
                        "500",
                        "600",
                        "601"
                      ]
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "object"
                    },
                    "recordTime": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "requestId": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "x-order": "25000900",
        "x-api-version": "v1",
        "x-highlights": []
      }
    }
  },
  "components": {}
}