{
  "openapi": "3.0.1",
  "info": {
    "title": "Video Breakdown AI – Hook Analysis, Shot List & Script",
    "description": "AI video analysis for any TikTok or YouTube video: hook analysis, shot-by-shot storyboard, measured cut pacing, products shown, organic vs. affiliate vs. brand-ad intent, sound and full script. Find trending YouTube videos too. $0.03 per video. For UGC ad and viral video research.",
    "version": "1.0",
    "x-build-id": "kbrs5Ct3OixOfIaeI"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tubetext~video-breakdown-ai/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tubetext-video-breakdown-ai",
        "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/tubetext~video-breakdown-ai/runs": {
      "post": {
        "operationId": "runs-sync-tubetext-video-breakdown-ai",
        "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/tubetext~video-breakdown-ai/run-sync": {
      "post": {
        "operationId": "run-sync-tubetext-video-breakdown-ai",
        "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": {
          "urls": {
            "title": "Video URLs",
            "type": "array",
            "description": "YouTube videos, Shorts, playlists and channels (e.g. youtube.com/@name or youtube.com/@name/shorts), TikTok videos and photo slideshows (incl. tiktok.com/t/… share links), public Instagram Reels, and public videos from other sites (Reddit, Facebook, Dailymotion, direct .mp4 links…). One per line. Optional if you use a dataset, search or trending input below.",
            "items": {
              "type": "string"
            }
          },
          "datasetId": {
            "title": "Or: dataset with video links (chain another Actor)",
            "type": "string",
            "description": "A dataset from another Actor run, e.g. a TikTok trending, hashtag or profile scraper (pick it, or paste its ID via API). The video links in it are broken down; 'Sort dataset by' decides which come first and 'Max videos per source' how many. Read-only access to this one dataset is requested."
          },
          "datasetSortBy": {
            "title": "Sort dataset by",
            "enum": [
              "views",
              "original"
            ],
            "type": "string",
            "description": "How to pick videos from the dataset when it has more than 'Max videos per source'.",
            "default": "views"
          },
          "searchQueries": {
            "title": "Or: find YouTube videos by keyword",
            "type": "array",
            "description": "YouTube search terms, e.g. 'skincare routine'. Each search takes the top videos for the time range and sort below (up to 'Max videos per source').",
            "items": {
              "type": "string"
            }
          },
          "searchPublishedWithin": {
            "title": "Search: published within",
            "enum": [
              "hour",
              "today",
              "week",
              "month",
              "year",
              "any"
            ],
            "type": "string",
            "description": "Only videos uploaded within this time range (YouTube's own upload-date filter).",
            "default": "week"
          },
          "searchSortBy": {
            "title": "Search: sort by",
            "enum": [
              "views",
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "'Most viewed' re-sorts the results by their actual view count.",
            "default": "views"
          },
          "trendingCountries": {
            "title": "Or: today's trending YouTube videos",
            "type": "array",
            "description": "Two-letter country codes, e.g. us, jp, de, br, in, kr, fr, gb. Takes the top of each country's daily trending list (source: kworb.net; YouTube retired its own trending page).",
            "items": {
              "type": "string"
            }
          },
          "maxVideosPerSource": {
            "title": "Max videos per source (channel, playlist, dataset, search, trending)",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "For channel, playlist, dataset, search and trending inputs: how many videos to take from each (each is billed like a single video). Single video links are not affected.",
            "default": 10
          },
          "channelSort": {
            "title": "Channel videos: newest or most viewed",
            "enum": [
              "newest",
              "popular"
            ],
            "type": "string",
            "description": "For channel links (including /shorts and /streams tabs): take the newest videos, or the channel's most viewed ones.",
            "default": "newest"
          },
          "outputLanguage": {
            "title": "Output language",
            "enum": [
              "English",
              "Same as video",
              "Spanish",
              "Portuguese",
              "French",
              "German",
              "Italian",
              "Dutch",
              "Polish",
              "Turkish",
              "Russian",
              "Arabic",
              "Hindi",
              "Indonesian",
              "Vietnamese",
              "Thai",
              "Japanese",
              "Korean",
              "Chinese (Simplified)",
              "Chinese (Traditional)"
            ],
            "type": "string",
            "description": "Language of the analysis (summary, hook, scenes, actions, notes). 'Same as video' follows the video's own language.",
            "default": "English"
          },
          "translateQuotes": {
            "title": "Also translate spoken words and on-screen text",
            "type": "boolean",
            "description": "By default quotes stay in their original language. Turn on to translate them into the output language too (the full original transcript is still included).",
            "default": false
          },
          "includeTranscript": {
            "title": "Include full transcript",
            "type": "boolean",
            "description": "Adds 'transcript' and 'timestampedTranscript' (platform captions, or Whisper AI when people speak without captions).",
            "default": true
          },
          "maxVideoMinutes": {
            "title": "Max video length (minutes)",
            "minimum": 1,
            "maximum": 180,
            "type": "integer",
            "description": "Longer videos are skipped (not charged).",
            "default": 60
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many videos to analyze in parallel.",
            "default": 5
          },
          "proxyMode": {
            "title": "Proxy for YouTube downloads",
            "enum": [
              "datacenter",
              "residential"
            ],
            "type": "string",
            "description": "Datacenter (default): base price. Residential: YouTube videos are fetched through residential IPs first, which pass YouTube's bot checks far more often (useful for popular videos and large batches), billed extra per started MB of residential traffic: typically 5-15 MB per video (about $0.08-0.23 at $0.015/MB). Other platforms are not affected.",
            "default": "datacenter"
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}