Blog

Como obter a transcrição de um vídeo do YouTube programaticamente (guia 2026)

3 de agosto de 2026· 3 min de leitura tutorialapi

As transcrições são uma das informações mais úteis do YouTube, mas também uma das mais irritantemente difíceis de obter. Você as quer para legendas, para alimentar um LLM, para SEO, para acessibilidade ou para construir um recurso de busca sobre o conteúdo de vídeos. Qualquer que seja sua razão, você precisa de uma forma confiável de transformar uma URL de vídeo em texto simples.

Este guia mostra três formas de fazer isso, de um one-liner a uma chamada de nível de produção, todas contra uma única API HTTP.

Por que não existe um jeito "oficial"

O YouTube não oferece uma API de transcrição pública e documentada para desenvolvedores. É por isso que toda ferramenta neste espaço precisa contornar os internals em constante mudança do YouTube.

Isso funciona… até não funcionar mais: o YouTube bloqueia agressivamente IPs, muda endpoints e adiciona verificações anti-bot. Se você está construindo algo sério, não quer ser o único a travar essa batalha toda semana.

As três opções

1. A biblioteca youtube_transcript_api (Python). Ótima para scripts pontuais. Mas quebra sempre que o YouTube muda algo, é exclusiva para Python e você fica por conta própria com os bloqueios de IP.

2. yt-dlp. Um canivete suíço para downloads. A extração de transcrição é um recurso secundário, e ele traz muita mecanização (e dependências) para o que é, no fim, uma única chamada de API.

3. Uma API de transcrição hospedada. Você envia uma URL de vídeo e recebe JSON de volta. Fácil. Barato. A manutenção vira problema do seu provedor.

O endpoint

O restante deste guia usa o TranscribeMaxx, uma API hospedada. Um único endpoint, GET /api/v1/transcript, retorna a transcrição completa em JSON, com ou sem horários, além de metadados como título e duração do vídeo.

É grátis para começar: obtenha uma chave em um clique na página inicial (sem cadastro) ou leia a documentação da API para mais detalhes.

curl: a forma mais rápida de testar

# transcrição simples, em JSON (padrão)
curl "https://transcribemaxx.com/api/v1/transcript?video_url=jNQXAC9IVRw" \
  -H "Authorization: Bearer tmx_SUA_CHAVE"

# texto simples em vez de JSON
curl "https://transcribemaxx.com/api/v1/transcript?video_url=jNQXAC9IVRw&format=text" \
  -H "Authorization: Bearer tmx_SUA_CHAVE"

# com horários + metadados
curl "https://transcribemaxx.com/api/v1/transcript?video_url=jNQXAC9IVRw&include_timestamp=true&send_metadata=true" \
  -H "Authorization: Bearer tmx_SUA_CHAVE"

A resposta JSON tem esta aparência:

{
  "video_id": "jNQXAC9IVRw",
  "language": "en",
  "transcript": [
    { "text": "All right, so...", "start": 0, "duration": 3.2 },
    { "text": "...", "start": 3.2, "duration": 4.1 }
  ],
  "length_seconds": 19,
  "lengthText": "0:19"
}

Node.js (sem dependências)

Node 18+ já inclui fetch, então uma chamada de transcrição completa leva cerca de 15 linhas:

const res = await fetch(
  "https://transcribemaxx.com/api/v1/transcript?video_url=jNQXAC9IVRw",
  { headers: { Authorization: "Bearer tmx_SUA_CHAVE" } }
);
const data = await res.json();

const fullText = data.transcript.map((s) => s.text).join(" ");
console.log(fullText);

Python

import requests

res = requests.get(
    "https://transcribemaxx.com/api/v1/transcript",
    params={"video_url": "jNQXAC9IVRw"},
    headers={"Authorization": "Bearer tmx_SUA_CHAVE"},
)
data = res.json()
full_text = " ".join(seg["text"] for seg in data["transcript"])
print(full_text)

Horários e idiomas

Passe include_timestamp=true e cada segmento chega com seu tempo de início start e duration, útil para construir um player com legendas ou para pular para seções.

A seleção de idioma é uma lista de prioridade: language=de,en tenta alemão primeiro e cai para inglês. Legendas automáticas também funcionam: a API aceita códigos asr-* (por exemplo, asr-es para legendas automáticas em espanhol), então mesmo vídeos sem legendas manuais podem ser transcritos.

Preços

Os planos começam em $1/mês para 300 transcrições (cobrança anual, $12/ano), até 2.000/mês no plano pro. Também existe um nível gratuito, para você testar sem preocupações. Compare os planos na página de preços.

Resumo

Quer comparar as poucas opções desse mercado? Leia nosso comparativo de APIs de transcrição de YouTube.

Experimente você mesmo: é grátis para começar

Obtenha sua chave de API em um clique e transcreva seu primeiro vídeo em segundos. Nenhum cadastro é necessário para a chave gratuita.

← Todos os artigos