Video Idea Generator

Video Idea Generator · Actions GPT

YouTube Search API Proxy

A Cloudflare Worker proxy API to search YouTube videos

  • GET /Search YouTube videos

    Fetches search results from YouTube.

Schéma original API
{
  "openapi": "3.1.0",
  "info": {
    "title": "YouTube Search API Proxy",
    "description": "A Cloudflare Worker proxy API to search YouTube videos",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://youtube-api.topmarketingai.com",
      "description": "Production server"
    }
  ],
  "paths": {
    "/": {
      "get": {
        "summary": "Search YouTube videos",
        "description": "Fetches search results from YouTube.",
        "operationId": "searchYouTube",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query for YouTube videos.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "hl",
            "in": "query",
            "required": false,
            "description": "Language code (2-letter lowercase, default 'en').",
            "schema": {
              "type": "string",
              "default": "en",
              "pattern": "^[a-z]{2}$"
            }
          },
          {
            "name": "gl",
            "in": "query",
            "required": false,
            "description": "Country code (2-letter uppercase, default 'US').",
            "schema": {
              "type": "string",
              "default": "US",
              "pattern": "^[A-Z]{2}$"
            }
          },
          {
            "name": "upload_date",
            "in": "query",
            "required": false,
            "description": "Filter videos by upload date ('l' - last hour, 't' - today, 'w' - week, 'm' - month, 'y' - year, default 'y').",
            "schema": {
              "type": "string",
              "enum": [
                "l",
                "t",
                "w",
                "m",
                "y"
              ],
              "default": "y"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response with YouTube video results.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "results": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "title": {
                            "type": "string",
                            "description": "Video title."
                          },
                          "description": {
                            "type": "string",
                            "description": "Video description."
                          },
                          "videoId": {
                            "type": "string",
                            "description": "YouTube video ID."
                          },
                          "viewCount": {
                            "type": "string",
                            "description": "View count text."
                          },
                          "publishTime": {
                            "type": "string",
                            "description": "Video published time."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request, missing or invalid parameters."
          },
          "401": {
            "description": "Unauthorized, missing API key."
          },
          "403": {
            "description": "Forbidden, invalid API key."
          },
          "500": {
            "description": "Internal server error."
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "VideoResult": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Video title."
          },
          "description": {
            "type": "string",
            "description": "Video description."
          },
          "videoId": {
            "type": "string",
            "description": "YouTube video ID."
          },
          "viewCount": {
            "type": "string",
            "description": "View count text."
          },
          "publishTime": {
            "type": "string",
            "description": "Video published time."
          }
        }
      }
    }
  }
}