API de Transcrição de Vídeo

March 16, 2026

API de Transcrição de Vídeo

Envie um arquivo de vídeo ou áudio e receba uma transcrição em nível de palavra com diarização de locutores (cada segmento rotulado com o locutor detectado). A API suporta vídeos das principais plataformas e arquivos de vídeo/áudio enviados localmente, com suporte a configurações de idioma.

Fontes de Vídeo Suportadas

A API aceita URLs das seguintes plataformas: YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Zoom, Rumble e outras.

Você também pode transcrever arquivos locais de áudio ou vídeo que você enviar — o upload local requer um plano Standard ou superior.

Fluxo de Trabalho

  1. Envie uma tarefa de transcrição a partir de uma URL de vídeo
  2. Consulte os resultados até que o status seja SUCCEEDED

Enviar Tarefa de Transcrição

POST https://wayinvideo-api.wayin.ai/api/v2/transcripts

Corpo da Requisição

ParâmetroTipoObrigatórioPadrãoDescrição
video_urlstringSimURL do vídeo/áudio de origem ou identificador do arquivo enviado
source_langstringNãonullIdioma de origem do vídeo (consulte Idiomas Suportados). Quando null, o sistema detecta automaticamente o idioma original.
target_langstringNãonullIdioma de destino para a transcrição (consulte Idiomas Suportados). Quando null, nenhuma tradução é aplicada. Se target_lang diferir do idioma original do vídeo, a transcrição será automaticamente traduzida para o idioma de destino.

Exemplo de Requisição

curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -d '{"video_url": "https://www.youtube.com/watch?v=example", "target_lang": "en"}'
import requests

requests.post(
    "https://wayinvideo-api.wayin.ai/api/v2/transcripts",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "x-wayinvideo-api-version": "v2",
    },
    json={
        "video_url": "https://www.youtube.com/watch?v=example",
        "target_lang": "en",
    },
)
await fetch("https://wayinvideo-api.wayin.ai/api/v2/transcripts", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_API_KEY",
    "x-wayinvideo-api-version": "v2",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    video_url: "https://www.youtube.com/watch?v=example",
    target_lang: "en",
  }),
});

Resposta

{
  "data": {
    "id": "trans_proj_001",
    "name": "sample project name",
    "status": "CREATED"
  }
}

Exemplos

Cenários comuns de transcrição. Substitua YOUR_API_KEY por uma chave do API Dashboard.

Transcrever um vídeo do YouTube

curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -H "Content-Type: application/json" \
  -d '{"video_url": "https://www.youtube.com/watch?v=EXAMPLE"}'

Transcrever um podcast com vários locutores

Passe qualquer URL de áudio de podcast (ou um identificador de arquivo enviado) — a diarização de locutores é automática; cada segmento na resposta carrega um rótulo speaker.

curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -H "Content-Type: application/json" \
  -d '{"video_url": "https://www.youtube.com/watch?v=EXAMPLE"}'

Traduzir uma transcrição não inglesa para o inglês

Defina target_lang para traduzir em tempo real. Combine com source_lang se você já souber o idioma de origem.

curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "https://www.youtube.com/watch?v=EXAMPLE",
    "source_lang": "ja",
    "target_lang": "en"
  }'

Obter Resultados da Transcrição

GET https://wayinvideo-api.wayin.ai/api/v2/transcripts/results/{id}
curl -X GET https://wayinvideo-api.wayin.ai/api/v2/transcripts/results/trans_proj_001 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2"

Resposta

{
  "data": {
    "status": "SUCCEEDED",
    "cost_usage": 27.0,
    "transcript": [
      {"text": "Welcome to today's presentation", "language": null, "start": 200, "end": 4500, "speaker": "Speaker 1"},
      {"text": "Thanks for coming", "language": null, "start": 5000, "end": 8200, "speaker": "Speaker 2"}
    ]
  }
}

Campos da Resposta

CampoTipoDescrição
statusstringCREATED, QUEUED, ONGOING, SUCCEEDED, FAILED
error_messagestringMotivo do erro (somente quando status é FAILED)
cost_usagenumberAPI Units consumidas por esta requisição
transcriptarrayLista de segmentos de transcrição

Segmento de Transcrição

CampoTipoDescrição
textstringTexto transcrito
languagestring | nullCódigo do idioma detectado, ou null se não detectado
startintegerTempo de início em milissegundos
endintegerTempo de término em milissegundos
speakerstringRótulo do locutor (ex.: "Speaker 1")

Perguntas Frequentes

Qual é a duração máxima do vídeo?

Não há limite rígido de duração. A API suporta tanto clipes curtos quanto conteúdo longo de vídeo ou áudio nas plataformas de origem compatíveis.

A API retorna timestamps em nível de palavra?

Sim. Cada segmento da transcrição inclui timestamps de start e end em milissegundos, o text transcrito, o idioma detectado (language) e o rótulo speaker atribuído pela diarização de locutores.

Como funciona a diarização de locutores?

Os locutores são detectados e rotulados automaticamente (Speaker 1, Speaker 2, …) por segmento. Nenhuma configuração é necessária — a diarização é executada em todas as tarefas de transcrição.

Quais formatos de áudio e vídeo são suportados?

URLs de origem são suportadas do YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Zoom, Rumble e outros. Para uploads locais, envie mp4, mov, webm ou avi (arquivos apenas de áudio podem ser empacotados em um desses contêineres).

Posso traduzir a transcrição para outro idioma?

Sim — passe o parâmetro target_lang. A transcrição é traduzida quando target_lang difere do idioma de origem. Veja Idiomas Suportados para a lista completa de códigos de idioma.