{
  "openapi": "3.0.1",
  "info": {
    "title": "YouTube Video Subtitles Scraper — Chapters, SRT & VTT Export",
    "description": "Extract video subtitles effortlessly with the YouTube Video Subtitles Scraper. Retrieve full transcripts, timestamps, and multiple language options from any YouTube video. Ideal for content analysis, research, accessibility, and translation projects. Fast, accurate, and easy to use at scale.",
    "version": "0.1",
    "x-build-id": "5eNSSf6mZGp3lcPGs"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapier~youtube-video-subtitles-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapier-youtube-video-subtitles-scraper",
        "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/scrapier~youtube-video-subtitles-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapier-youtube-video-subtitles-scraper",
        "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/scrapier~youtube-video-subtitles-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapier-youtube-video-subtitles-scraper",
        "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": {
          "videoLinks": {
            "title": "🎬 YouTube Video Links",
            "type": "array",
            "description": "One line per video. Accepts full watch links (`https://www.youtube.com/watch?v=VIDEO_ID`), short links (`https://youtu.be/VIDEO_ID`) and Shorts links. Each video is processed on its own and its row is written to the output table the moment it is ready.",
            "items": {
              "type": "string"
            }
          },
          "captionLanguage": {
            "title": "🌍 Preferred Caption Language",
            "type": "string",
            "description": "Language code to prefer for the transcript (examples: `en` English, `es` Spanish, `fr` French). When the exact language is not available, the actor falls back to any manual caption, then to auto-generated English, then to any auto-generated caption - the real source is always reported in `message`."
          },
          "maxWorkers": {
            "title": "⚙️ Maximum Concurrent Videos",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many videos are processed in parallel (1-10). Example: 4 processes up to 4 videos at once instead of one at a time. Rows are written to the output table as soon as each video finishes, regardless of input order.",
            "default": 4
          },
          "splitByChapters": {
            "title": "🧩 Split Transcript By Chapters",
            "type": "boolean",
            "description": "When on, every video with real chapter markers gets a `chapters[]` list - one entry per chapter, each with its own text slice, word count and timestamped link. Videos without chapters report `hasChapters: false` and `chapters: null`, never a fabricated single chapter."
          },
          "includeUntitledChapters": {
            "title": "🏷️ Include Untitled Chapters",
            "type": "boolean",
            "description": "When on, chapters that have no real title (or only a placeholder like \"Chapter 3\") are kept as their own entry with `title: null`. When off, such a chapter's text is folded into the chapter right before it, so every chapter in the output has a real title.",
            "default": true
          },
          "outputFormats": {
            "title": "📄 Text Export Formats",
            "uniqueItems": true,
            "type": "array",
            "description": "Pick which formats to generate: `srt` fills `srtText` (standard .srt grammar), `vtt` fills `vttText` (WebVTT), `plainText` fills `plainText` (the words with no timestamps), `timestampedJson` keeps the existing `transcript` array populated. Deselecting a format simply leaves that field `null` on the row - nothing is ever written to a file or storage.",
            "items": {
              "type": "string",
              "enum": [
                "srt",
                "vtt",
                "plainText",
                "timestampedJson"
              ],
              "enumTitles": [
                "SRT (srtText)",
                "WebVTT (vttText)",
                "Plain text (plainText)",
                "Timestamped JSON (transcript)"
              ]
            }
          },
          "startUrls": {
            "title": "🔁 YouTube URLs (legacy key)",
            "type": "array",
            "description": "Backward-compatible alias of `videoLinks` above. If both are filled, `videoLinks` is used and any extra items here are appended.",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "🔁 Language Code (legacy key)",
            "type": "string",
            "description": "Backward-compatible alias of `captionLanguage` above."
          },
          "proxyConfiguration": {
            "title": "🛡️ Proxy Configuration",
            "type": "object",
            "description": "Optional. Leave the default for normal use, or pick your own Apify Proxy option for larger runs."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}