{
  "openapi": "3.0.1",
  "info": {
    "title": "Media & Podcast Transcriber: Audio/Video to Text, SRT, VTT",
    "description": "Transcribe audio/video links, podcast RSS feeds, Apple Podcasts, Dropbox and Google Drive files into text, speaker paragraphs, SRT and VTT. $0.015 per audio minute; links that fail are free.",
    "version": "0.1",
    "x-build-id": "EfM6Naiqa9vyGDfLM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/stubborn_otter~media-transcriber/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-stubborn_otter-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/stubborn_otter~media-transcriber/runs": {
      "post": {
        "operationId": "runs-sync-stubborn_otter-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/stubborn_otter~media-transcriber/run-sync": {
      "post": {
        "operationId": "run-sync-stubborn_otter-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",
        "required": [
          "mediaUrls"
        ],
        "properties": {
          "mediaUrls": {
            "title": "Media links",
            "type": "array",
            "description": "One link per line, up to 100: direct audio or video files (.mp3, .m4a, .wav, .mp4, .ogg, .webm, ...), podcast RSS or Atom feeds, podcast web pages that link their feed, Apple Podcasts show or episode links, Dropbox file links, and Google Drive files shared with 'Anyone with the link'. YouTube, TikTok, Instagram, Facebook, X, LinkedIn, Twitch, Loom, Vimeo, Zoom and Spotify links are refused at no charge.",
            "items": {
              "type": "string"
            }
          },
          "maxEpisodesPerFeed": {
            "title": "Max episodes per feed",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "For each podcast feed, transcribe at most this many episodes, newest first.",
            "default": 5
          },
          "maxMinutesPerItem": {
            "title": "Max minutes per file",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "Files longer than this are skipped with status too_long and not charged.",
            "default": 180
          },
          "maxTotalMinutes": {
            "title": "Max minutes per run",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop adding files once their total length would pass this. Later files get status over_budget and aren't charged. The run's 'Maximum cost per run' setting is respected too.",
            "default": 300
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Leave empty to detect each file's language automatically. Or give a language code (en, en-US, es, fr, de, pt-BR, ja, ...) to force one, or 'multi' for conversations that switch between languages."
          },
          "speakerLabels": {
            "title": "Label speakers",
            "type": "boolean",
            "description": "Tell speakers apart (Speaker 1, Speaker 2, ...) in the text, paragraphs and subtitles. Included in the price.",
            "default": true
          },
          "outputFormats": {
            "title": "Output formats",
            "type": "array",
            "description": "What to produce for each transcribed file. Files go to the run's key-value store; each dataset row links them.",
            "items": {
              "type": "string",
              "enum": [
                "text",
                "paragraphs",
                "srt",
                "vtt",
                "words"
              ],
              "enumTitles": [
                "Full text (dataset field + .txt file)",
                "Timestamped speaker paragraphs (dataset field)",
                "SRT subtitles (.srt file)",
                "WebVTT subtitles (.vtt file)",
                "Word-level timings (.json file)"
              ]
            },
            "default": [
              "text",
              "paragraphs",
              "srt",
              "vtt"
            ]
          },
          "skipAlreadyTranscribed": {
            "title": "Skip episodes already transcribed",
            "type": "boolean",
            "description": "For feeds and Apple Podcasts shows: skip episodes this Actor already transcribed for you in an earlier run (status duplicate, not charged), so a scheduled run only pays for new episodes. Direct file links are always transcribed.",
            "default": true
          },
          "includeSummaryRow": {
            "title": "Add a summary row at the end",
            "type": "boolean",
            "description": "Also push the run summary as the last dataset item. Off by default so the dataset stays one row per file. The summary is always in the OUTPUT record.",
            "default": false
          },
          "deepgramApiKey": {
            "title": "Your own Deepgram API key (optional)",
            "type": "string",
            "description": "A Deepgram API key from console.deepgram.com (API Keys, role Member). Files are then transcribed on your Deepgram account."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}