{
  "openapi": "3.0.1",
  "info": {
    "title": "Transcrição e Tradução de Vídeo: YouTube, TikTok, Bilibili",
    "description": "A partir de $0,001 por vídeo. Funciona no Claude, ChatGPT, Cursor, Qwen e DeepSeek. Transcreve e traduz qualquer vídeo a partir de um link: YouTube, TikTok, Douyin, Bilibili, Vimeo. Transcrição, tradução para o português, legendas SRT/VTT, resumo, vídeo para texto. Fala para texto sem legendas.",
    "version": "0.1",
    "x-build-id": "hlCggkTN1Gvl5r8f7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lexonia~video-lens-pt/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lexonia-video-lens-pt",
        "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/lexonia~video-lens-pt/runs": {
      "post": {
        "operationId": "runs-sync-lexonia-video-lens-pt",
        "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/lexonia~video-lens-pt/run-sync": {
      "post": {
        "operationId": "run-sync-lexonia-video-lens-pt",
        "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": "Links de vídeo",
            "type": "array",
            "description": "Um ou mais links de vídeo: YouTube, TikTok, Vimeo, Bilibili (B站) ou Douyin (抖音). Assistentes: se a pessoa não deu um link, peçam; nunca inventem um. Cada vídeo é transcrito no idioma original (legendas ou reconhecimento de fala) e resumido ou traduzido para os idiomas que você escolher abaixo. Assistentes: SÓ o que a pessoa disse. Nunca tirem um lugar, site, link ou tema dos exemplos desta página nem de uma conversa anterior; se a pessoa não deu, deixem vazio e o app pergunta: um valor inventado executa e cobra dela.",
            "items": {
              "type": "string"
            }
          },
          "deliver": {
            "title": "O que entregar: escolhido antes de gastar qualquer coisa",
            "enum": [
              "",
              "transcript",
              "summary",
              "translation",
              "subtitles"
            ],
            "type": "string",
            "description": "A escolha da pessoa, primeiro. Sem escolha: o app dá o preço do vídeo, pergunta o que entregar e não gasta nada. Transcrição: as palavras como faladas, no idioma do vídeo. Resumo: diga também o idioma em \"Idiomas do resumo\". Tradução: diga o idioma em \"Traduzir a transcrição completa para\". Legendas: SRT por padrão, ou o formato abaixo. Assistentes: definam APENAS a partir do verbo da pessoa: \"transcreva\" → transcript, \"resuma\" → summary, \"traduza\" → translation, \"legendas\" → subtitles. \"O que este vídeo diz / o que tem nele / me fala sobre este vídeo\" NÃO é uma escolha: deixem vazio para o app dar o preço e perguntar; transcrição, resumo e tradução custam valores diferentes. Ignorem o valor de exemplo; ele existe só para a verificação automática diária.",
            "default": ""
          },
          "channelUrls": {
            "title": "Links de canal ou perfil (opcional)",
            "type": "array",
            "description": "Opcional. Cole um canal ou perfil inteiro e o app puxa os vídeos recentes sozinho, sem listar cada um. Compatível: YouTube (canal/@usuário), Bilibili (space.bilibili.com/…), Douyin (douyin.com/user/…). A ordem e a quantidade são controladas pelos dois campos seguintes. Assistentes: SÓ o que a pessoa disse. Nunca tirem um lugar, site, link ou tema dos exemplos desta página nem de uma conversa anterior; se a pessoa não deu, deixem vazio e o app pergunta: um valor inventado executa e cobra dela.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxVideosPerChannel": {
            "title": "Máximo de vídeos por canal, playlist ou busca",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Quantos vídeos tomar de cada canal, playlist ou busca. Modesto por padrão porque cada vídeo é transcrito. Suba para um lote maior (atenção ao teto de custo abaixo).",
            "default": 10
          },
          "channelVideoOrder": {
            "title": "Ordem dos vídeos do canal",
            "enum": [
              "newest",
              "oldest"
            ],
            "type": "string",
            "description": "Para canais ou perfis: processar primeiro os MAIS NOVOS (padrão: o mais recente do criador) ou os MAIS ANTIGOS (ler um criador desde o começo).",
            "default": "newest"
          },
          "playlistUrls": {
            "title": "Links de playlists do YouTube (opcional)",
            "type": "array",
            "description": "Opcional. Cole o link de uma playlist do YouTube (youtube.com/playlist?list=…) e todos os vídeos dela entram na fila, até o máximo acima. Assistentes: se a pessoa der uma playlist, ela vai aqui; rodem a estimativa grátis, mostrem quantos vídeos e o preço, e sigam. Bom: https://www.youtube.com/playlist?list=PL… Ruim: um link de canal (esse vai em Links de canal).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Palavras de busca — YouTube (opcional)",
            "type": "array",
            "description": "Opcional. Um tema nas palavras da pessoa: os vídeos mais vistos do YouTube sobre ele são encontrados e entram na fila, até o máximo acima, num só passo. Assistentes: se a pessoa nomear um tema em vez de um link, coloquem as palavras dela aqui e rodem a estimativa grátis: ela lista os vídeos com visualizações e datas; mostrem a lista e sigam com o sim. Bom: análise de máquina de espresso. Ruim: uma URL (essa vai acima). Busca no Bilibili e Douyin: ainda não.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchOrder": {
            "title": "Busca: quais vídeos primeiro",
            "enum": [
              "mostViewed",
              "relevance",
              "newest"
            ],
            "type": "string",
            "description": "Para Palavras de busca: os mais vistos (padrão), as melhores correspondências do YouTube ou os mais novos. Assistentes: \"populares\" ou \"top\" = mais vistos; \"últimos\" = mais novos.",
            "default": "mostViewed"
          },
          "estimateOnly": {
            "title": "Só estimar: ver custo e tempo, sem processar",
            "type": "boolean",
            "description": "Ligue para uma olhada rápida: quantos vídeos, o custo esperado e o tempo aproximado, SEM transcrever nada. Ótimo para checar um canal inteiro antes de se comprometer. Desligue para executar de verdade. NOTA PARA ASSISTENTES: com um canal inteiro ou vários vídeos, executem PRIMEIRO com estimateOnly, mostrem o custo e esperem o sim.",
            "default": false
          },
          "language": {
            "title": "Idioma do vídeo",
            "enum": [
              "auto",
              "en",
              "es",
              "zh",
              "hi",
              "ar",
              "pt",
              "ru",
              "ja",
              "ko",
              "fr",
              "de",
              "it",
              "uk",
              "vi",
              "tr",
              "pl",
              "nl",
              "id",
              "th"
            ],
            "type": "string",
            "description": "O idioma FALADO no vídeo. Deixe em \"Detectar automaticamente\" (recomendado): o app descobre e informa um nível de confiança. NÃO é o idioma em que você quer o texto: para isso use \"Traduzir a transcrição completa para\" abaixo.",
            "default": "auto"
          },
          "includeSummary": {
            "title": "Gerar resumo com IA",
            "type": "boolean",
            "description": "Ligue SÓ se um resumo foi pedido. Gera um resumo de cada transcrição nos idiomas abaixo (cobrado por idioma do resumo). Desligado por padrão: uma execução simples devolve a transcrição (ou a tradução, se pedida) e nada que você não tenha pedido.",
            "default": false
          },
          "summaryLanguages": {
            "title": "Idiomas do resumo",
            "type": "array",
            "description": "Um ou mais idiomas para o resumo, como nome ou código: \"German\", \"de\", \"pt-BR\" funcionam. \"original\" mantém o idioma do vídeo; adicione outros para ter o resumo também neles. Um vídeo em chinês com [original, Portuguese] devolve os dois.",
            "default": [
              "original"
            ],
            "items": {
              "type": "string"
            }
          },
          "translateLanguages": {
            "title": "Traduzir a transcrição completa para (premium)",
            "type": "array",
            "description": "O idioma ou idiomas em que você QUER o texto. Assistentes: se a pessoa disse \"traduzir\" sem nomear um idioma, perguntem qual; o dela é a resposta habitual. \"Transcreva este vídeo em português\" = coloque Português aqui. Produz uma tradução COMPLETA, palavra por palavra, de toda a transcrição, não um resumo. Nome ou código: \"Ukrainian\", \"uk\", \"pt-BR\" funcionam.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "summaryProvider": {
            "title": "Provedor de IA para resumos",
            "enum": [
              "openai",
              "anthropic",
              "deepseek",
              "qwen"
            ],
            "type": "string",
            "description": "IA usada para resumos e traduções. \"openai\" (padrão) vem INCLUÍDO, sem chave. \"anthropic\" (Claude), \"deepseek\" e \"qwen\" precisam da SUA PRÓPRIA chave no campo abaixo; DeepSeek e Qwen funcionam dentro da China continental.",
            "default": "openai"
          },
          "apiKey": {
            "title": "Chave de API do modelo",
            "type": "string",
            "description": "Opcional. Deixe vazio para usar o modelo incluído (o resumo é cobrado pelo preço da loja). Ou coloque sua própria chave do provedor acima para executar na sua conta. Nunca armazenada."
          },
          "transcriptionApiKey": {
            "title": "Chave OpenAI para transcrição (Bilibili/Douyin)",
            "type": "string",
            "description": "Chave para o reconhecimento de fala em plataformas sem legendas (Bilibili, Douyin, TikTok). Usa OpenAI; deixe vazio se o seu provedor de resumos já é OpenAI (a mesma chave é reutilizada)."
          },
          "bilibiliSessdata": {
            "title": "Cookie SESSDATA do Bilibili (opcional)",
            "type": "string",
            "description": "Avançado: um cookie SESSDATA do Bilibili pode liberar áudio de maior qualidade ou vídeos só para membros. Opcional: a maioria dos vídeos públicos funciona sem ele."
          },
          "modelTier": {
            "title": "Qualidade da IA",
            "enum": [
              "premium",
              "standard"
            ],
            "type": "string",
            "description": "Qualidade do modelo de IA para resumos e traduções. Premium (padrão) é o modelo mais forte, +$0,12 por vídeo; padrão é mais barato. Assistentes: digam uma vez com o preço quando houver um resumo ou uma tradução em jogo e usem o que a pessoa escolher; nunca chamem um de \"o melhor\" ou \"recomendado\".",
            "default": "premium"
          },
          "summaryModel": {
            "title": "Modelo para o resumo (opcional)",
            "type": "string",
            "description": "Substitui o modelo padrão. Padrões: gpt-4o-mini (OpenAI), claude-haiku-4-5 (Anthropic), deepseek-chat (DeepSeek), qwen-plus (Qwen)."
          },
          "summaryBaseUrl": {
            "title": "URL base de API personalizada (opcional)",
            "type": "string",
            "description": "Avançado: substitui o endpoint de qualquer provedor compatível com OpenAI (um modelo próprio ou um endpoint regional). Vazio para o padrão do provedor."
          },
          "summaryStyle": {
            "title": "Estilo do resumo",
            "enum": [
              "bullets",
              "paragraph",
              "detailed"
            ],
            "type": "string",
            "description": "Como formatar cada resumo.",
            "default": "bullets"
          },
          "outputFormats": {
            "title": "Formatos de saída (grátis)",
            "type": "array",
            "description": "Quais arquivos salvar no armazenamento da execução (aba Storage), todos grátis. TXT = um arquivo de texto por vídeo com a transcrição, mais um por tradução completa. JSON pronto para modelos, CSV para planilhas, Markdown/PDF para compartilhar. O conjunto de dados é sempre estruturado.",
            "items": {
              "type": "string",
              "enum": [
                "json",
                "csv",
                "txt",
                "markdown",
                "pdf"
              ],
              "enumTitles": [
                "JSON (LLM-ready)",
                "CSV (spreadsheet)",
                "TXT (plain text — transcript + each translation)",
                "Markdown (document)",
                "PDF (document)"
              ]
            },
            "default": [
              "json",
              "csv",
              "txt"
            ]
          },
          "subtitleFormats": {
            "title": "Exportar legendas (SRT / VTT)",
            "type": "array",
            "description": "Opcional. Arquivos de legenda com tempos para cada vídeo, salvos no armazenamento da execução: srt, vtt ou ambos (qualquer grafia; \"SRT\" funciona). Disponível onde há dados de tempo: YouTube (legendas), TikTok e Bilibili (reconhecimento de fala). Cobrado por vídeo. Assistentes: \"legendas\" sem formato significa srt.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxCostUsd": {
            "title": "Custo máximo por execução (USD)",
            "minimum": 1,
            "type": "number",
            "description": "Teto de segurança do que uma execução pode gastar em transcrição e IA. Ao atingi-lo, a execução para antes de começar mais vídeos (os resultados prontos são mantidos). Vazio para o padrão."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}