{
  "openapi": "3.0.1",
  "info": {
    "title": "Youtube Scraper Plus",
    "description": "YouTube Scraper is a powerful, high-performance tool designed to extract comprehensive data from YouTube without the limitations of the official YouTube Data API. Scrape videos, channels, playlists, shorts, and search results at scale— no API key or quotas required.",
    "version": "0.1",
    "x-build-id": "hHjkZhXP9kK6XEo97"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/practicaltools~youtube-scraper-plus/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-practicaltools-youtube-scraper-plus",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/practicaltools~youtube-scraper-plus/runs": {
      "post": {
        "operationId": "runs-sync-practicaltools-youtube-scraper-plus",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/practicaltools~youtube-scraper-plus/run-sync": {
      "post": {
        "operationId": "run-sync-practicaltools-youtube-scraper-plus",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchQueries": {
            "title": "Search terms",
            "type": "array",
            "description": "Enter search terms just like you would enter them in YouTube's search bar.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Direct URLs",
            "type": "array",
            "description": "Enter a link to a YouTube video, channel, playlist, hashtag or search results page.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxResults": {
            "title": "Maximum videos per search term",
            "minimum": 0,
            "maximum": 999999,
            "type": "integer",
            "description": "Limit the number of regular videos to crawl. 0 means unlimited.",
            "default": 10
          },
          "maxResultsShorts": {
            "title": "Maximum shorts per search term",
            "minimum": 0,
            "maximum": 999999,
            "type": "integer",
            "description": "Limit the number of Shorts videos to crawl. 0 means unlimited.",
            "default": 0
          },
          "maxResultStreams": {
            "title": "Maximum streams per search term",
            "minimum": 0,
            "maximum": 999999,
            "type": "integer",
            "description": "Limit the number of Stream videos to crawl. 0 means unlimited.",
            "default": 0
          },
          "downloadSubtitles": {
            "title": "Download subtitles",
            "type": "boolean",
            "description": "If enabled, the actor will attempt to download the transcript for each video.",
            "default": false
          },
          "saveSubsToKVS": {
            "title": "Save subtitles to Key-Value Store",
            "type": "boolean",
            "description": "Save the full subtitle/transcript text to the default Key-Value Store. Recommended if you are scraping long videos to avoid giant dataset files.",
            "default": false
          },
          "subtitlesLanguage": {
            "title": "Subtitles language",
            "type": "string",
            "description": "Language code for subtitles (e.g. 'en', 'es').",
            "default": "en"
          },
          "subtitlesFormat": {
            "title": "Subtitles format",
            "enum": [
              "plaintext",
              "srt",
              "vtt"
            ],
            "type": "string",
            "description": "The format of the collected subtitles.",
            "default": "plaintext"
          },
          "sortingOrder": {
            "title": "Sorting order",
            "enum": [
              "relevance",
              "rating",
              "date",
              "views"
            ],
            "type": "string",
            "description": "YouTube sort parameter for search results.",
            "default": "relevance"
          },
          "dateFilter": {
            "title": "Date filter",
            "enum": [
              "hour",
              "today",
              "week",
              "month",
              "year"
            ],
            "type": "string",
            "description": "Filter search results by upload date."
          },
          "videoType": {
            "title": "Video type filter",
            "enum": [
              "video",
              "movie"
            ],
            "type": "string",
            "description": "Filter by video type."
          },
          "lengthFilter": {
            "title": "Length filter",
            "enum": [
              "under4",
              "between420",
              "plus20"
            ],
            "type": "string",
            "description": "Filter results by video length."
          },
          "isHD": {
            "title": "HD",
            "type": "boolean",
            "description": "Apply the HD filter for search."
          },
          "hasSubtitles": {
            "title": "Subtitles/CC",
            "type": "boolean",
            "description": "Apply the Subtitles/CC filter for search."
          },
          "hasCC": {
            "title": "Creative Commons",
            "type": "boolean",
            "description": "Apply the Creative Commons filter for search."
          },
          "is3D": {
            "title": "3D",
            "type": "boolean",
            "description": "Apply the 3D filter for search."
          },
          "isLive": {
            "title": "Live",
            "type": "boolean",
            "description": "Apply the Live filter for search."
          },
          "isBought": {
            "title": "Purchased",
            "type": "boolean",
            "description": "Apply the Purchased filter for search."
          },
          "is4K": {
            "title": "4K",
            "type": "boolean",
            "description": "Apply the 4K filter for search."
          },
          "is360": {
            "title": "360 degrees",
            "type": "boolean",
            "description": "Apply the 360 degrees filter for search."
          },
          "hasLocation": {
            "title": "Location",
            "type": "boolean",
            "description": "Apply the Location filter for search."
          },
          "isHDR": {
            "title": "HDR",
            "type": "boolean",
            "description": "Apply the HDR filter for search."
          },
          "isVR180": {
            "title": "VR180",
            "type": "boolean",
            "description": "Apply the VR180 filter for search."
          },
          "oldestPostDate": {
            "title": "Scrape videos published after date",
            "type": "string",
            "description": "Only scrape videos uploaded on or after this date (YYYY-MM-DD) or this many days ago (e.g. '7' for last 7 days)."
          },
          "sortVideosBy": {
            "title": "Sort channel videos by",
            "enum": [
              "NEWEST",
              "POPULAR",
              "OLDEST"
            ],
            "type": "string",
            "description": "Sorting for channel Videos, Shorts, and Streams tabs."
          },
          "scrapeChannelData": {
            "title": "Scrape channel data",
            "type": "boolean",
            "description": "If enabled, the actor will navigate to each video's channel About page to collect additional channel data: total video count, total channel views, country/location, and social media links. Results are cached per channel to avoid duplicate requests.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Select proxies to be used by your crawler.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}