{
  "openapi": "3.0.1",
  "info": {
    "title": "Audio & Podcast Transcriber – MP3, WAV, RSS to Text, SRT",
    "description": "Transcribe audio files, video files and podcast RSS feeds to text, timed segments, SRT and VTT with the detected language. Open-source Whisper models (base, small) on Apify, a minute cap you set, new-episodes-only mode.",
    "version": "0.1",
    "x-build-id": "Nhr0GrTUAGjucvV9I"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tinlark~audio-podcast-transcriber/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tinlark-audio-podcast-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/tinlark~audio-podcast-transcriber/runs": {
      "post": {
        "operationId": "runs-sync-tinlark-audio-podcast-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/tinlark~audio-podcast-transcriber/run-sync": {
      "post": {
        "operationId": "run-sync-tinlark-audio-podcast-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": "Audio or video file links",
            "type": "array",
            "description": "Direct links (http or https) to audio or video files: mp3, m4a, wav, ogg, flac, mp4, webm and other formats FFmpeg can read. The files must be public and you must have the right to process them. Links to YouTube, Instagram, TikTok, Facebook and X are not supported.",
            "items": {
              "type": "string"
            }
          },
          "podcastFeedUrls": {
            "title": "Podcast RSS feeds",
            "type": "array",
            "description": "Links to podcast RSS (or Atom) feeds. The Actor transcribes the latest episodes of each feed (see 'Episodes per feed') and adds the episode title, guid and publication date to every row. The feed host's robots.txt is checked first.",
            "items": {
              "type": "string"
            }
          },
          "model": {
            "title": "Model",
            "enum": [
              "base",
              "small"
            ],
            "type": "string",
            "description": "base is fast and cheapest. small is slower and usually more accurate, especially with accents, noise and non-English speech. Both are open-source Whisper models running on Apify, no third-party API.",
            "default": "base"
          },
          "language": {
            "title": "Spoken language",
            "type": "string",
            "description": "auto detects the language from the first seconds of audio. If you know it, enter the two-letter code (en, de, fr, es, it, pt, nl, ja, zh ...): it is faster and avoids wrong detection when a recording starts with music.",
            "default": "auto"
          },
          "outputFormats": {
            "title": "Output formats",
            "type": "array",
            "description": "Fields to fill in each row. text: the full transcript. segments: a list of {start, end, text} with times in seconds. srt, vtt: ready subtitle files as text.",
            "items": {
              "type": "string",
              "enum": [
                "text",
                "segments",
                "srt",
                "vtt"
              ],
              "enumTitles": [
                "Transcript text",
                "Timed segments",
                "SRT subtitles",
                "WebVTT subtitles"
              ]
            },
            "default": [
              "text",
              "segments"
            ]
          },
          "episodesPerFeed": {
            "title": "Episodes per feed",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many of the latest episodes of each feed to look at (newest first). With 'New episodes only', set it at least as high as the number of episodes the feed publishes between two runs.",
            "default": 3
          },
          "newEpisodesOnly": {
            "title": "New episodes only",
            "type": "boolean",
            "description": "For scheduled runs: transcribe only episodes that an earlier run with the same state name has not transcribed yet. The first run transcribes the latest episodes and remembers them. Episodes that failed are tried again next time. Applies to podcast feeds only.",
            "default": false
          },
          "stateKey": {
            "title": "State name",
            "type": "string",
            "description": "Name under which 'New episodes only' remembers finished episodes, in a key-value store of your account. Use different names for independent schedules. Letters, digits, dot, dash, underscore.",
            "default": "default"
          },
          "maxTotalMinutes": {
            "title": "Max total minutes (cost cap)",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Hard cap on audio minutes transcribed in this run. When it is reached, the current file is cut at the cap and remaining files get a free error row (budget-reached). A started minute counts as a minute. Set the run's 'Maximum cost per run' as well if you want a cap in dollars.",
            "default": 120
          },
          "maxMinutesPerFile": {
            "title": "Max minutes per file",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "Longer files are cut after this many minutes and the row gets a warning. Files are also limited to 1 GB.",
            "default": 180
          },
          "translateToEnglish": {
            "title": "Translate to English",
            "type": "boolean",
            "description": "Use Whisper's built-in translation task: the transcript and segments are in English whatever language is spoken. Quality is lower than for transcription in the original language.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}