{
  "openapi": "3.0.1",
  "info": {
    "title": "YouTube Video to Text",
    "description": "YouTube video to text in bulk: paste video links, a playlist or a channel and get each video's words as clean plain text for ChatGPT, Claude or notes. Any language, nothing to set up. No captions, no charge. $1.99 per 1,000 on the Free plan, from $0.99 on paid plans.",
    "version": "0.0",
    "x-build-id": "1YvmP4eQKA3dJRmkR"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nokia2k~youtube-video-to-text/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nokia2k-youtube-video-to-text",
        "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/nokia2k~youtube-video-to-text/runs": {
      "post": {
        "operationId": "runs-sync-nokia2k-youtube-video-to-text",
        "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/nokia2k~youtube-video-to-text/run-sync": {
      "post": {
        "operationId": "run-sync-nokia2k-youtube-video-to-text",
        "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": {
          "videoUrls": {
            "title": "📺 YouTube videos, playlists or channels",
            "type": "array",
            "description": "Paste YouTube links, one per line, or a whole list at once. A <b>video</b> link (regular, youtu.be, Shorts, live, embed or mobile) or an 11-character video ID gives you that video. A <b>playlist</b> link gives you the videos of the playlist, and a <b>channel</b> link (<code>https://www.youtube.com/@name</code>, or just <code>@name</code>) the channel's newest videos, up to the number set below. Search terms are not taken here. Duplicates are fetched once.",
            "items": {
              "type": "string"
            }
          },
          "maxVideosPerSource": {
            "title": "🔢 Videos per channel or playlist",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "How many videos to take from each channel or playlist. Start with a small number to see what you get, then raise it. You only pay for transcripts that are delivered.",
            "default": 50
          },
          "languages": {
            "title": "🌐 Transcript language",
            "type": "array",
            "description": "Leave it on <b>Original language</b> to get each video in the language it is spoken in: you do not need to know the language in advance. Or pick one or more languages in order of preference, and the first one the video has is used. You can also type any language code (<code>pt-BR</code>, <code>es-419</code>) or a language name (<code>Spanish</code>, <code>español</code>, <code>German</code>). Captions written by people are preferred over auto-generated ones. Every row tells you which language was returned and which other languages the video has.",
            "items": {
              "type": "string",
              "enumSuggestedValues": [
                "auto",
                "en",
                "es",
                "pt",
                "pt-BR",
                "fr",
                "de",
                "it",
                "nl",
                "ru",
                "uk",
                "pl",
                "tr",
                "ar",
                "hi",
                "bn",
                "ur",
                "id",
                "ms",
                "vi",
                "th",
                "fil",
                "ja",
                "ko",
                "zh",
                "zh-Hans",
                "zh-Hant",
                "fa",
                "he",
                "el",
                "sv",
                "no",
                "da",
                "fi",
                "cs",
                "sk",
                "hu",
                "ro",
                "bg",
                "sr",
                "hr",
                "sl",
                "lt",
                "lv",
                "et",
                "ca",
                "gl",
                "eu",
                "ta",
                "te",
                "mr",
                "gu",
                "kn",
                "ml",
                "pa",
                "ne",
                "si",
                "km",
                "my",
                "sw",
                "am",
                "af",
                "az",
                "kk",
                "uz",
                "ka",
                "hy",
                "sq",
                "mk",
                "is",
                "mn"
              ],
              "enumTitles": [
                "🎬 Original language of the video (recommended)",
                "English (en)",
                "Spanish (es)",
                "Portuguese (pt)",
                "Portuguese (Brazil) (pt-BR)",
                "French (fr)",
                "German (de)",
                "Italian (it)",
                "Dutch (nl)",
                "Russian (ru)",
                "Ukrainian (uk)",
                "Polish (pl)",
                "Turkish (tr)",
                "Arabic (ar)",
                "Hindi (hi)",
                "Bengali (bn)",
                "Urdu (ur)",
                "Indonesian (id)",
                "Malay (ms)",
                "Vietnamese (vi)",
                "Thai (th)",
                "Filipino (fil)",
                "Japanese (ja)",
                "Korean (ko)",
                "Chinese (zh)",
                "Chinese (Simplified) (zh-Hans)",
                "Chinese (Traditional) (zh-Hant)",
                "Persian (fa)",
                "Hebrew (he)",
                "Greek (el)",
                "Swedish (sv)",
                "Norwegian (no)",
                "Danish (da)",
                "Finnish (fi)",
                "Czech (cs)",
                "Slovak (sk)",
                "Hungarian (hu)",
                "Romanian (ro)",
                "Bulgarian (bg)",
                "Serbian (sr)",
                "Croatian (hr)",
                "Slovenian (sl)",
                "Lithuanian (lt)",
                "Latvian (lv)",
                "Estonian (et)",
                "Catalan (ca)",
                "Galician (gl)",
                "Basque (eu)",
                "Tamil (ta)",
                "Telugu (te)",
                "Marathi (mr)",
                "Gujarati (gu)",
                "Kannada (kn)",
                "Malayalam (ml)",
                "Punjabi (pa)",
                "Nepali (ne)",
                "Sinhala (si)",
                "Khmer (km)",
                "Burmese (my)",
                "Swahili (sw)",
                "Amharic (am)",
                "Afrikaans (af)",
                "Azerbaijani (az)",
                "Kazakh (kk)",
                "Uzbek (uz)",
                "Georgian (ka)",
                "Armenian (hy)",
                "Albanian (sq)",
                "Macedonian (mk)",
                "Icelandic (is)",
                "Mongolian (mn)"
              ]
            },
            "default": [
              "auto"
            ]
          },
          "combinedFile": {
            "title": "📚 Also give me everything as one Markdown file",
            "type": "boolean",
            "description": "Saves all transcripts of the run into one file, <code>ALL_TRANSCRIPTS.md</code>, with a heading, the channel, the date and the link for every video. Upload it to ChatGPT, Claude, NotebookLM or your knowledge base in one go. You find it in the run's <b>Storage &gt; Key-value store</b> tab. Large runs are split into files of about 8 MB. The price stays the same.",
            "default": false
          },
          "fallbackToAnyLanguage": {
            "title": "If my language is missing, give me the original language",
            "type": "boolean",
            "description": "When on, a video without captions in the languages you picked still returns its transcript in its original language, and the <code>language</code> and <code>message</code> fields tell you which one. Turn it off to skip those videos instead. Skipped videos are not charged.",
            "default": true
          },
          "captionType": {
            "title": "Caption type",
            "enum": [
              "any",
              "manual",
              "auto"
            ],
            "type": "string",
            "description": "Choose which captions are accepted. Auto-generated captions are produced by YouTube's speech recognition and have no punctuation in many languages.",
            "default": "any"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}