{
  "openapi": "3.0.1",
  "info": {
    "title": "Video Transcript & Summary — YouTube, TikTok, Instagram, X",
    "description": "Transcripts with timestamps for YouTube, TikTok, Instagram Reels and X videos, from captions or speech recognition. Arabic dialects and English, optional translation and AI summary with chapters and keywords.",
    "version": "0.1",
    "x-build-id": "xzo1WROSUORIAgs1O"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/almoutasem_nabil~video-transcript-summary/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-almoutasem_nabil-video-transcript-summary",
        "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/almoutasem_nabil~video-transcript-summary/runs": {
      "post": {
        "operationId": "runs-sync-almoutasem_nabil-video-transcript-summary",
        "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/almoutasem_nabil~video-transcript-summary/run-sync": {
      "post": {
        "operationId": "run-sync-almoutasem_nabil-video-transcript-summary",
        "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": [
          "videoUrls"
        ],
        "properties": {
          "videoUrls": {
            "title": "Video URLs",
            "minItems": 1,
            "type": "array",
            "description": "Video links to transcribe. YouTube channel and playlist URLs are expanded to their most recent videos (see 'Max videos per channel'). Supported: youtube.com/watch, youtu.be, YouTube Shorts, tiktok.com, instagram.com and x.com video links.",
            "items": {
              "type": "string"
            }
          },
          "maxVideosPerSource": {
            "title": "Max videos per channel or playlist",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "How many recent videos to take from each channel or playlist URL. Ignored for links to a single video.",
            "default": 20
          },
          "language": {
            "title": "Spoken language",
            "enum": [
              "auto",
              "ar",
              "en",
              "fr",
              "es",
              "de",
              "tr",
              "ur",
              "hi"
            ],
            "type": "string",
            "description": "Hint for speech recognition and for choosing among caption tracks. 'auto' detects the language, but naming it ('ar' or 'en') noticeably improves accuracy on Arabic dialects.",
            "default": "auto"
          },
          "includeTimestamps": {
            "title": "Include timestamps",
            "type": "boolean",
            "description": "Return the timed 'segments' array alongside the plain transcript. Turn off for smaller items when you only want the text.",
            "default": true
          },
          "translateTo": {
            "title": "Translate to",
            "type": "string",
            "description": "ISO code of a language to translate the transcript into, for example 'en' or 'ar'. Leave empty for no translation. On YouTube this uses the platform's own caption translation, so it is fast and adds no speech-recognition cost."
          },
          "summarize": {
            "title": "AI summary",
            "type": "boolean",
            "description": "Add a one-line summary, bullet points, chapters with timestamps, keywords, the hook and the call to action. Arabic summaries are written in Modern Standard Arabic while the transcript keeps the dialect as spoken.",
            "default": false
          },
          "summaryLanguage": {
            "title": "Summary language",
            "type": "string",
            "description": "ISO code for the summary language. Leave empty to summarize in the language of the transcript."
          },
          "maxDurationMinutes": {
            "title": "Max video length",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "Videos longer than this are skipped and reported as an error item rather than transcribed. This is the main control on cost, because speech recognition is billed per minute.",
            "default": 60
          },
          "forceAsr": {
            "title": "Always use speech recognition",
            "type": "boolean",
            "description": "Ignore published captions and transcribe the audio instead. Slower and billed per minute, but worth it when a platform's auto-captions mis-hear heavy dialect.",
            "default": false
          },
          "enableInstagram": {
            "title": "Enable Instagram Reels",
            "type": "boolean",
            "description": "Instagram publishes no captions, so every Reel costs speech recognition, and Instagram blocks datacenter traffic often. Off by default; turn on together with residential proxies.",
            "default": false
          },
          "enableX": {
            "title": "Enable X (Twitter) videos",
            "type": "boolean",
            "description": "X publishes no captions, so every video costs speech recognition, and access is unreliable without residential proxies. Off by default.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many videos are processed in parallel. Lower this if a platform starts rate-limiting you.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxies for the requests. Apify datacenter proxies are enough for YouTube and TikTok; switch to residential for Instagram and X.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}