{
  "openapi": "3.0.1",
  "info": {
    "title": "YouTube Quote Miner",
    "description": "YouTube transcript keyword search and quote finder for content creators. Search entire channels for words, phrases, or quotes. Get exact timestamps, preview clips instantly, and download snippets. Find every mention of a topic across hundreds of videos in minutes.",
    "version": "0.1",
    "x-build-id": "IpXAXOGDMnIrQxEit"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lead_maker~youtube-transcript-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lead_maker-youtube-transcript-search",
        "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/lead_maker~youtube-transcript-search/runs": {
      "post": {
        "operationId": "runs-sync-lead_maker-youtube-transcript-search",
        "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/lead_maker~youtube-transcript-search/run-sync": {
      "post": {
        "operationId": "run-sync-lead_maker-youtube-transcript-search",
        "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": [
          "channelUrls",
          "keywords"
        ],
        "properties": {
          "channelUrls": {
            "title": "Channel URL(s)",
            "type": "string",
            "description": "Paste one or more YouTube channel URLs, separated by commas. Example: https://www.youtube.com/@veritasium, https://www.youtube.com/@3blue1brown"
          },
          "keywords": {
            "title": "Search Keywords or Phrases",
            "type": "string",
            "description": "What to look for in the video transcripts. Separate multiple terms with commas. Example: black hole, dark matter"
          },
          "maxVideos": {
            "title": "Max Videos per Channel",
            "minimum": 1,
            "type": "integer",
            "description": "Only search this many of the most recent videos. Leave empty to search the entire channel."
          },
          "excludeShorts": {
            "title": "Exclude YouTube Shorts",
            "type": "boolean",
            "description": "Skip YouTube Shorts (videos under 60 seconds).",
            "default": true
          },
          "language": {
            "title": "Transcript Language",
            "type": "string",
            "description": "Language code for transcripts (e.g., 'en', 'es', 'de'). Falls back to English if unavailable.",
            "default": "en"
          },
          "snippetPaddingSec": {
            "title": "Clip Padding",
            "minimum": 0,
            "maximum": 120,
            "type": "integer",
            "description": "How many seconds of extra video to include before and after each match. Gives you more context around the keyword.",
            "default": 15
          },
          "mergeGapSec": {
            "title": "Merge Nearby Mentions",
            "minimum": 0,
            "maximum": 300,
            "type": "integer",
            "description": "If the keyword is mentioned multiple times within this many seconds, combine them into one clip instead of creating separate ones. Set to 0 to keep every mention separate.",
            "default": 30
          },
          "minClipDurationSec": {
            "title": "Minimum Clip Length",
            "minimum": 0,
            "maximum": 600,
            "type": "integer",
            "description": "Skip clips shorter than this. Useful for filtering out brief, passing mentions and only keeping longer discussions.",
            "default": 0
          },
          "concurrency": {
            "title": "Speed (Concurrent Fetches)",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many video transcripts to fetch at the same time. Higher = faster but uses more proxy bandwidth. Default 5 is a good balance.",
            "default": 5
          },
          "contextLines": {
            "title": "Transcript Context",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many lines of transcript to show before and after each match in the results.",
            "default": 3
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}