{
  "openapi": "3.0.1",
  "info": {
    "title": "YouTube Full Channel,Playlists,Shorts,Live...",
    "description": "Extracts metadata and scripts from all YT content, identifying smart keywords like #hashtags and @channelnames. It supports playlists, shorts, live, podcasts, courses, channels, videos, and batch requests.",
    "version": "1.1",
    "x-build-id": "mnchlKnuxX1L2mHn8"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dz_omar~Youtube-Scraper-Pro/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dz_omar-Youtube-Scraper-Pro",
        "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/dz_omar~Youtube-Scraper-Pro/runs": {
      "post": {
        "operationId": "runs-sync-dz_omar-Youtube-Scraper-Pro",
        "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/dz_omar~Youtube-Scraper-Pro/run-sync": {
      "post": {
        "operationId": "run-sync-dz_omar-Youtube-Scraper-Pro",
        "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",
        "required": [
          "rawYouTubeUrls",
          "proxyConfig"
        ],
        "properties": {
          "rawYouTubeUrls": {
            "title": "YouTube Content URLs Or Keyword || Videos, Shorts, Channels, Playlists, Courses, Podcasts, Live",
            "type": "array",
            "description": "## Supported Input Formats\n\n### 🔗 URL Examples:\n- Videos: `https://www.youtube.com/watch?v=...`\n- Shorts: `https://www.youtube.com/shorts/...`\n- Hashtags: `https://www.youtube.com/hashtag/bug_bounty`\n- Channels: `@ChannelName` or full channel URLs\n- Playlists: Both standalone and embedded playlist IDs\n\n### 🛠 Processing Notes:\n- Batch processing enabled by default\n- Automatic content-type detection\n- Duplicate URL filtering\n- Continuation token persistence for large jobs",
            "default": [
              "https://www.youtube.com/watch?v=hPwT3nqPIK0"
            ],
            "items": {
              "type": "string"
            }
          },
          "BASE_DELAY_MS": {
            "title": "Base Delay Duration",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum delay time (in milliseconds) between requests to avoid rate limiting. A random additional delay will be added to this value.",
            "default": 100
          },
          "MAX_RETRIES": {
            "title": "Maximum Retry Attempts",
            "minimum": 0,
            "type": "integer",
            "description": "Number of times to retry failed requests before giving up. Set to 0 to disable retries.",
            "default": 1
          },
          "outputFormat": {
            "title": "Transcript Output Format",
            "enum": [
              "srt",
              "vtt",
              "txt",
              "xml"
            ],
            "type": "string",
            "description": "## 📝 Select Transcript Format\n\nChoose the subtitle format for downloaded transcripts:\n\n- **SubRip (SRT)**: Standard format compatible with most video players (default)\n- **WebVTT (VTT)**: Web-friendly format with CSS styling support for HTML5 videos\n- **Plain Text (TXT)**: Raw transcript text without timestamps\n- **XML**: Original YouTube transcript structure with full metadata\n\n💡 **Recommendations:**\n- Use SRT for general compatibility\n- Choose VTT for web embedding\n- Select TXT for NLP/text analysis\n- Keep XML for full technical details"
          },
          "targetLanguage": {
            "title": "Transcript Language",
            "type": "string",
            "description": "Preferred transcript language as an ISO code (e.g. `en`, `es`, `fr`, `ar`). When the requested language isn't natively available, YouTube's translation is used when possible. Only applies when transcripts are requested.",
            "default": "en"
          },
          "requireTranscriptInfoOnly": {
            "title": "Only Transcript Results",
            "type": "boolean",
            "description": "If true: Only processes and returns videos that have transcripts available (original behavior). If false (default): Returns basic video metadata even when transcripts are unavailable, with a 'hasTranscript' flag indicating availability.",
            "default": false
          },
          "storeTranscript": {
            "title": "Store Transcript Files",
            "type": "boolean",
            "description": "Enable to store transcript files (SRT/VTT/XML/TXT) in Apify storage"
          },
          "PROCESS_ENTIRE_CHANNEL": {
            "title": "Process Entire Channel",
            "type": "boolean",
            "description": "Toggle to extract transcripts from all videos in the channel instead of individual selections.",
            "default": false
          },
          "maxResults": {
            "title": "Max Results Per Category",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of items to process per content category (leave empty for unlimited)",
            "default": 1
          },
          "selectedFilter": {
            "title": "Content Filter",
            "enum": [
              "Latest",
              "Popular",
              "Oldest"
            ],
            "type": "string",
            "description": "Filter channel content by sorting criteria when processing channel URLs",
            "default": "Popular"
          },
          "SPECIFIC_CATEGORIES": {
            "title": "Content Categories",
            "type": "array",
            "description": "Select which content types to process from channels (e.g., Videos, Shorts, Live streams, Podcasts, etc.)",
            "items": {
              "type": "string",
              "enum": [
                "Videos",
                "Shorts",
                "Live",
                "Podcasts",
                "Playlists",
                "Courses"
              ],
              "enumTitles": [
                "Videos",
                "Shorts",
                "Live",
                "Podcasts",
                "Playlists",
                "Courses"
              ]
            }
          },
          "proxyConfig": {
            "title": "Proxy",
            "type": "object",
            "description": "Configure proxy settings to use during the scan. Utilizing proxies can help you avoid IP bans, bypass WAF (Web Application Firewall) restrictions, and access specific geographical regions. This ensures smooth crawling across various environments and enhances the overall efficiency and reliability of your scanning activities.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}