{
  "openapi": "3.0.1",
  "info": {
    "title": "Audio & Video Transcription – Speech to Text, Podcast to SRT",
    "description": "Speech to text with Whisper: transcribe audio, video and podcast RSS feeds to text, SRT and VTT subtitles. Speaker labels (diarization), 99 languages, translate to English, word timestamps. mp3, m4a, wav, mp4 links, Dropbox or Drive. $0.009 per minute, failed files free.",
    "version": "0.2",
    "x-build-id": "CS5ZfUOG4tnl7VmcT"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/gazidev~media-transcriber/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-gazidev-media-transcriber",
        "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/gazidev~media-transcriber/runs": {
      "post": {
        "operationId": "runs-sync-gazidev-media-transcriber",
        "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/gazidev~media-transcriber/run-sync": {
      "post": {
        "operationId": "run-sync-gazidev-media-transcriber",
        "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": {
          "mediaUrls": {
            "title": "Media file URLs",
            "type": "array",
            "description": "Direct links to audio or video files: mp3, m4a, wav, ogg, opus, flac, mp4, mov, webm, mkv and more. Podcast episode (enclosure) URLs, S3/CDN links, Dropbox and Google Drive share links (shared as 'Anyone with the link') and OneDrive links work. **YouTube, TikTok, Instagram, Spotify, Facebook, X, Vimeo and SoundCloud page links are rejected**: their terms of service forbid downloading. Only submit media you have the right to transcribe.",
            "default": [
              "https://archive.org/download/spc141_1503_librivox/spc141_spiderandfly_lcw_64kb.mp3"
            ],
            "items": {
              "type": "string"
            }
          },
          "podcastFeedUrls": {
            "title": "Podcast RSS feed URLs",
            "type": "array",
            "description": "Podcast RSS or Atom feeds. The newest `Max episodes per feed` episodes (audio/video enclosures) are transcribed.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxEpisodes": {
            "title": "Max episodes per feed",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many of the newest episodes to take from each feed.",
            "default": 3
          },
          "model": {
            "title": "Whisper model",
            "enum": [
              "tiny",
              "base",
              "small"
            ],
            "type": "string",
            "description": "`base` (default): good accuracy for clear speech; a 60-minute podcast takes roughly 10–15 minutes. `tiny`: about 2× faster, for clean single-speaker English. `small`: most accurate (accents, noise, non-English), about 3× slower than base, billed with the `minute-transcribed-small` event.",
            "default": "base"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "`auto` detects the spoken language from the first 30 seconds. Or force a Whisper language code to skip detection and avoid mistakes on short or noisy clips: `en`, `es`, `de`, `fr`, `pt`, `it`, `nl`, `pl`, `tr`, `ru`, `uk`, `ar`, `hi`, `ja`, `ko`, `zh`, `id`, `vi`, `sv`… (99 languages).",
            "default": "auto"
          },
          "task": {
            "title": "Task",
            "enum": [
              "transcribe",
              "translate"
            ],
            "type": "string",
            "description": "`transcribe`: text in the spoken language. `translate`: Whisper translates the speech to English text and subtitles (same price).",
            "default": "transcribe"
          },
          "wordTimestamps": {
            "title": "Word-level timestamps",
            "type": "boolean",
            "description": "Add a `words` list (start, end, word, probability) to every segment. Useful for karaoke-style captions, search and clip cutting. Adds about 10–20% processing time (same price).",
            "default": false
          },
          "speakerLabels": {
            "title": "Speaker labels (who spoke when)",
            "type": "boolean",
            "description": "Detects the different voices and labels every segment 'Speaker 1', 'Speaker 2'... (speaker diarization). Segments are split where the speaker changes; TXT gets one paragraph per turn, SRT gets [Speaker N] tags and VTT <v Speaker N> voice tags. Turn on word timestamps for the most precise turn boundaries. Charged per minute on top of transcription.",
            "default": false
          },
          "numSpeakers": {
            "title": "Number of speakers (optional)",
            "minimum": 0,
            "maximum": 12,
            "type": "integer",
            "description": "0 = detect automatically. Set it when you know it (e.g. 2 for an interview) for the best accuracy.",
            "default": 0
          },
          "initialPrompt": {
            "title": "Vocabulary hint (initial prompt)",
            "type": "string",
            "description": "Optional text that helps Whisper spell names and jargon, e.g. `Apify, Crawlee, Kubernetes, Dr. Nguyen`."
          },
          "vadFilter": {
            "title": "Skip silence (VAD)",
            "type": "boolean",
            "description": "Voice activity detection skips silent parts. Faster and fewer hallucinated words in pauses and music. Timestamps still match the original file.",
            "default": true
          },
          "maxDurationMinutes": {
            "title": "Max duration per file (minutes)",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "Longer files are cut at this length (or skipped, see below). You are billed only for the minutes actually transcribed.",
            "default": 60
          },
          "longFileHandling": {
            "title": "Files longer than max duration",
            "enum": [
              "truncate",
              "skip"
            ],
            "type": "string",
            "description": "`truncate`: transcribe the first N minutes (`truncated: true`). `skip`: do not transcribe the file at all (free error row).",
            "default": "truncate"
          },
          "maxFileSizeMB": {
            "title": "Max file size (MB)",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Downloads larger than this are stopped (free error row). Video files are big: 1 hour of 720p MP4 is about 500–1500 MB.",
            "default": 2000
          },
          "saveFiles": {
            "title": "Save .txt, .srt, .vtt and .json files",
            "type": "boolean",
            "description": "Store the transcript files in the run's key-value store and add download links (`txtFileUrl`, `srtFileUrl`, `vttFileUrl`, `jsonFileUrl`) to each row.",
            "default": true
          },
          "includeSegments": {
            "title": "Include segments in dataset",
            "type": "boolean",
            "description": "Keep the timestamped `segments` array in each dataset row. Turn off for smaller rows (the JSON file still has them).",
            "default": true
          },
          "downloadTimeoutSecs": {
            "title": "Download timeout (seconds)",
            "minimum": 30,
            "maximum": 3600,
            "type": "integer",
            "description": "Maximum time to download one file. Downloads are retried on network errors and HTTP 429/5xx.",
            "default": 900
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}