Você tem um vídeo no YouTube e precisa da transcrição completa agora—para que você possa resumi-lo, indexá-lo, gerar legendas ou alimentá-lo em seu pipeline de mídia. Ao final deste artigo, você fará uma única solicitação GET para buscar uma transcrição estruturada (texto, duração, deslocamento, idioma) para um vídeo do YouTube e integrá-la ao seu código ou agente de IA sem sair do seu sprint.
O que esta API de Mídia faz e quando usá-la
A API YouTube Sub Extractor retorna a transcrição de texto para um vídeo do YouTube específico. A resposta é uma lista de segmentos de legendas com:
- texto: o texto da legenda/declaração
- duração: comprimento do segmento em segundos
- deslocamento: tempo de início em segundos a partir do início do vídeo
- idioma: a tag de idioma para o segmento
Isso é útil para busca de mídia, moderação de conteúdo, análise de tópicos, geração automatizada de capítulos, fluxos de trabalho de acessibilidade e construção de prompts RAG que resumem ou respondem perguntas sobre um único vídeo. Como a API retorna timestamps, você pode alinhar o texto de volta à linha do tempo do vídeo para destaques e prévias.
Começando no Zyla API Hub
O Zyla API Hub hospeda mais de 10.000 APIs públicas com uma única conta, uma chave de API e um modelo de assinatura + cota (não pago por chamada). A primeira API geralmente oferece um teste de 7 dias ou 50 solicitações; não há Plano Gratuito. Verifique a página da API para opções de acesso e preços atuais.
Para experimentar esta API:
- Abra a lista da API YouTube Sub Extractor e inicie o teste: Iniciar teste de 7 dias na API YouTube Sub Extractor.
- Clique em Inscrever-se ou Iniciar Teste Gratuito, se disponível, para obter sua chave de API.
- Use Authorization: Bearer YOUR_API_KEY em cada chamada.
Se você é novo no marketplace, também pode navegar e se inscrever em outras APIs de Entretenimento & Mídia no Zyla API Hub com a mesma chave e conta.
Visão geral do endpoint
A API YouTube Sub Extractor expõe um endpoint que você precisa implementar para “obter a transcrição de vídeo” rapidamente:
-
Obter Transcrição de Vídeo
Método: GET
URL: https://zylalabs.com/api/5216/youtube-sub-extractor-api/6681/get-video-transcript
Parâmetro de consulta obrigatório:- videoId (string): ID do vídeo do YouTube
cURL que você pode colar agora
Use sua chave de API no cabeçalho de Autorização e chame o endpoint com o videoId necessário. Este é o exemplo oficial:
curl -s -X GET "https://zylalabs.com/api/5216/youtube-sub-extractor-api/6681/get-video-transcript?videoId=eCBABjPcNyo" \
-H "Authorization: Bearer YOUR_API_KEY"
Como é a resposta
Exemplo de resposta oficial (truncado para brevidade em uma interface do usuário do mundo real, mas preservado aqui exatamente como fornecido):
{"success":true,"transcript":[{"text":"o que a gente tem no diante","duration":3.24,"offset":0,"lang":"en"},{"text":"dos nossos olhos não dá muita esperança","duration":3.24,"offset":3.24,"lang":"en"},{"text":"no futuro daqui eu vejo a polícia","duration":3.24,"offset":6.48,"lang":"en"},{"text":"atirando a dignidade de pais de família","duration":3.24,"offset":9.72,"lang":"en"},{"text":"daqui eu vejo o estado transformando pessoas","duration":3.24,"offset":12.96,"lang":"en"},{"text":"que poderiam dar bons frutos carregado em","duration":3.24,"offset":16.200000000000003,"lang":"en"},{"text":"pessoas frustradas eu não julgo entendeu monstro","duration":3.24,"offset":19.44,"lang":"en"},{"text":"não precisa ser nenhum expert title superlotado","duration":3.24,"offset":22.68,"lang":"en"},{"text":"estudado formada uma coisa pra saber que","duration":3.24,"offset":25.92,"lang":"en"},{"text":"está tudo errado para saber qual a","duration":3.24,"offset":29.160000000000004,"lang":"en"},{"text":"posição da gente isso tem que acabar","duration":3.24,"offset":32.400000000000006,"lang":"en"},{"text":"com os palestinos abete paz [Música] gino","duration":3.24,"offset":35.64,"lang":"en"},{"text":"problema queria só paz mas não viu","duration":3.24,"offset":38.88,"lang":"en"},{"text":"o veículo agora sem proteção da vida","duration":3.24,"offset":42.120000000000005,"lang":"en"},{"text":"e arrojado mas ainda era o então","duration":3.24,"offset":45.36,"lang":"en"},{"text":"ainda disparava e agora o que eu","duration":3.24,"offset":48.6,"lang":"en"},{"text":"faço me fala na maturidade na sala","duration":3.24,"offset":51.84,"lang":"en"},{"text":"tem pesadelo é época de eleição nosso","duration":3.24,"offset":55.080000000000005,"lang":"en"},{"text":"descabelo progresso sem previsão no chão torço","duration":3.24,"offset":58.32000000000001,"lang":"en"},{"text":"pro meu filho também não vira lata","duration":3.24,"offset":61.56,"lang":"en"},{"text":"é um opção tem vaca tem sempre","duration":3.24,"offset":64.80000000000001,"lang":"en"},{"text":"cid piada pode justificar nada eu entrei","duration":3.24,"offset":68.04,"lang":"en"},{"text":"político claro que foi pra vencer nelson","duration":3.24,"offset":71.28,"lang":"en"},{"text":"é um nojo esgoto exposto é alguém","duration":3.24,"offset":74.52000000000001,"lang":"en"},{"text":"é tanta injustiça em sangue nas suas","duration":3.24,"offset":77.76,"lang":"en"},{"text":"mãos por não fazer nada a troca","duration":3.24,"offset":81…
Campos que você normalmente usará:
- success: booleano indicando que a chamada funcionou
- transcript: array de segmentos; cada um tem:
- text: conteúdo do segmento de legenda
- duration: comprimento em segundos (float)
- offset: tempo de início em segundos a partir de 0.0 (float)
- lang: tag de idioma para a linha
Notas práticas:
- Deslocamentos e durações são segundos (floats). Multiplique por 1000 se sua interface espera milissegundos.
- Transcrições para um dado videoId são tipicamente estáticas. Armazene em cache por videoId para evitar chamadas repetidas em pipelines de indexação.
- Se um vídeo não tiver legendas, trate um array de transcrição vazio ou ausente de forma elegante na lógica do seu aplicativo.
Exemplo em Python: buscar, achatar e imprimir timestamps
Este trecho de Python chama o mesmo endpoint, verifica o sucesso e formata cada linha com os tempos de início e fim.
import requests
from datetime import timedelta
API_KEY = "YOUR_API_KEY"
VIDEO_ID = "eCBABjPcNyo"
url = "https://zylalabs.com/api/5216/youtube-sub-extractor-api/6681/get-video-transcript"
params = {"videoId": VIDEO_ID}
headers = {"Authorization": f"Bearer {API_KEY}"}
resp = requests.get(url, params=params, headers=headers, timeout=30)
resp.raise_for_status()
data = resp.json()
if not data.get("success"):
raise RuntimeError("A chamada da API não teve sucesso")
segments = data.get("transcript", [])
def fmt(ts):
return str(timedelta(seconds=float(ts)))
for seg in segments:
start = seg.get("offset", 0)
dur = seg.get("duration", 0)
end = float(start) + float(dur)
text = seg.get("text", "")
lang = seg.get("lang", "")
print(f"[{fmt(start)} - {fmt(end)}] ({lang}) {text}")
Troque a lógica de impressão pela sua necessidade: escreva para SRT/VTT, indexe na busca ou alimente seu resumidor.
Fluxos de trabalho de mídia comuns que você pode enviar esta semana
- Indexação de busca para uma biblioteca de vídeos: armazene texto, deslocamento e duração; permita que os usuários saltem para timestamps exatos em seu player.
- Geração automatizada de capítulos: agrupe segmentos por pausas ou mudanças de tópico e gere capítulos clicáveis.
- Moderação de conteúdo: escaneie segmentos de transcrição em busca de termos sinalizados com filas de revisão baseadas em tempo.
- Sumarização e Q&A: passe pedaços de transcrição para seu LLM com deslocamentos para que as respostas possam incluir links profundos no vídeo.
- QA de legendas: compare segmentos com seus próprios arquivos de legenda para encontrar lacunas ou desvios.
Detalhes que economizam tempo na produção
- Mapeie deslocamentos/durações diretamente para a linha do tempo do seu player. Se você precisar de precisão de quadro, converta segundos em quadros usando o FPS do seu player.
- Chunking para LLMs: agrupe segmentos para manter prompts abaixo dos limites de tokens; preserve deslocamentos para que você possa reconstruir timestamps de origem nas saídas.
- Normalização: transcrições podem incluir pontuação ou tags de música. Pré-processar conforme necessário para seu pipeline de busca.
- Tentativas e idempotência: como o conteúdo da transcrição é estável, envolva chamadas em uma tentativa com cache para evitar duplicatas de hits de rede durante backfills.
Chame esta API de agentes de IA via MCP
Você também pode invocar o mesmo endpoint do Hub através de agentes IDE compatíveis com MCP. Aponte seu cliente MCP para o gateway Zyla MCP e forneça sua chave. Veja a documentação aqui: MCP.
Esboço de implementação:
- Configure seu cliente MCP com o gateway base e sua chave de API.
- Chame o caminho URL do Hub para Obter Transcrição de Vídeo com videoId=eCBABjPcNyo.
- Certifique-se de que o cabeçalho Authorization: Bearer YOUR_API_KEY seja passado.
- Analise os mesmos campos JSON (success, transcript[].text/duration/offset/lang) no manipulador da sua ferramenta.
Isso permite que um agente de IA busque transcrições sob demanda e encadeie o resultado em etapas de sumarização ou etiquetagem sem sair do seu editor.
Solução de problemas e tratamento de exceções
- Transcrição vazia: nem todos os vídeos têm legendas; trate um array de transcrição vazio de forma elegante.
- Matemática do tempo: duração e deslocamento são floats. Arredonde cuidadosamente para exibição para evitar erros de um segundo em interfaces.
- Cache: como as transcrições são estáveis, memorize resultados por videoId. Isso mantém sua cota focada em novo conteúdo.
- Idioma: tags de idioma são retornadas por segmento. Se você exibir filtros de idioma, agregue idiomas entre os segmentos primeiro.
Referência rápida
- Lista de APIs: API YouTube Sub Extractor
- Método: GET
- Endpoint: https://zylalabs.com/api/5216/youtube-sub-extractor-api/6681/get-video-transcript
- Parâmetro de consulta obrigatório: videoId (string)
- Cabeçalho de autenticação: Authorization: Bearer YOUR_API_KEY
Para outras integrações de Mídia que você pode precisar a seguir, navegue pela categoria Entretenimento & Mídia no Zyla API Hub. Uma chave funciona em todas as APIs assinadas.
FAQ
Este endpoint requer algum parâmetro além do videoId?
Não. O endpoint Obter Transcrição de Vídeo requer apenas o parâmetro videoId.
Quais unidades de tempo são usadas para duração e deslocamento?
Segundos como valores de ponto flutuante. Converta para milissegundos ou quadros conforme necessário para seu player.
Qual autenticação é necessária?
Passe sua chave com Authorization: Bearer YOUR_API_KEY em cada solicitação.
Como é tratado o faturamento?
A Zyla usa um modelo de assinatura + cota (não pago por chamada). A primeira API geralmente oferece um teste de 7 dias ou 50 solicitações. Verifique a página da API para opções de acesso e preços atuais.
Posso chamar esta API de um agente de IA?
Sim. Use o gateway MCP e inclua seu cabeçalho de Autorização; veja MCP para detalhes.
Pronto para enviar sua integração? Inicie seu teste, obtenha uma chave de API e busque transcrições em minutos: Iniciar teste de 7 dias na API YouTube Sub Extractor.