Como obter a transcrición de YouTube cunha API (curl, Python, JavaScript)
Obtén a transcrición de calquera vídeo público de YouTube cunha soa petición HTTP. Exemplos en curl, Python e JavaScript, formatos, códigos de erro e custos.

Para obter a transcrición de YouTube cunha API, envía unha petición HTTP co URL ou o ID do vídeo e unha clave de API, e le a transcrición na resposta. Esta guía mostra a petición en curl, Python e JavaScript coa API de transcricións de sum.video, e despois trata formatos, erros e custos.
Que devolve a API
O punto final devolve os subtítulos existentes dun vídeo público de YouTube, escritos polo creador ou xerados automaticamente por YouTube. Non transcribe audio. Se un vídeo non ten subtítulos, recibes un erro en lugar dunha suposición (máis abaixo).
O básico:
- Punto final:
POST https://sum.video/api/v1/transcript(GETtamén funciona) - Autenticación: a túa clave na cabeceira
X-API-Key, ouAuthorization: Bearer <key> - Entrada:
urlouvideo_id langopcional (por defectoen)formatopcional:json,textousrt
A resposta tamén indica o idioma real da pista de subtítulos e se foi xerada automaticamente, de modo que sabes que calidade esperar.
Paso 1: Crea unha clave de API
Inicia sesión e crea unha clave no panel da API (/dashboard/api en sum.video). Podes ter ata 5 claves activas, útil para separar unha clave de probas dunha de produción. A túa primeira clave vén con 10 créditos gratuítos, abondo para 5 transcricións, así que podes probar todo o que segue sen custo.
Paso 2: Fai a túa primeira petición
curl
curl -X POST https://sum.video/api/v1/transcript \
-H "X-API-Key: $SUMVIDEO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "lang": "en", "format": "text"}'
Como GET tamén funciona, podes probar desde un script que só constrúa URL. É mellor pasar a clave na cabeceira para que non acabe nos rexistros.
Python
import os
import requests
resp = requests.post(
"https://sum.video/api/v1/transcript",
headers={"X-API-Key": os.environ["SUMVIDEO_API_KEY"]},
json={"video_id": "dQw4w9WgXcQ", "lang": "en", "format": "text"},
timeout=30,
)
if resp.status_code == 404:
print("No captions for this video")
else:
resp.raise_for_status()
print(resp.text)
JavaScript (Node 18+ ou o navegador)
const resp = await fetch("https://sum.video/api/v1/transcript", {
method: "POST",
headers: {
"X-API-Key": process.env.SUMVIDEO_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
video_id: "dQw4w9WgXcQ",
lang: "en",
format: "text",
}),
});
if (resp.status === 404) {
console.log("No captions for this video");
} else if (!resp.ok) {
throw new Error(`Request failed: ${resp.status}`);
} else {
console.log(await resp.text());
}
Garda a clave nun servidor. Unha clave no código do navegador pode copiala calquera persoa que abra as ferramentas de desenvolvemento.
Paso 3: Escolle o formato axeitado
| Formato | Que obtés | Ideal para |
|---|---|---|
json |
Segmentos, cada un con offset e duration en segundos |
Marcas de tempo, ligazóns a un momento concreto, división por tempo |
text |
Transcrición en texto plano | Prompts, índices de busca, resumos |
srt |
Contido dun ficheiro de subtítulos | Editores de vídeo, ferramentas de subtítulos |
Se pensas ligar a un momento do vídeo, usa json e constrúe a ligazón a partir do offset do segmento. Para alimentar un LLM, text é máis pequeno e sinxelo. Se máis adiante queres buscar a man dentro dunha transcrición, mira como buscar dentro da transcrición dun vídeo de YouTube.
Paso 4: Escolle un idioma
lang é en por defecto. Pon o idioma que queiras, por exemplo de ou es. A resposta indica o idioma da pista que realmente se devolveu, así que comproba o idioma en lugar de supoñelo. Un vídeo adoita ter só unha pista de subtítulos, e a API devolve subtítulos reais, polo que non os traduce por ti.
Paso 5: Xestiona os erros
Prevé estes casos dende o primeiro día:
404 no_transcript: o vídeo non ten subtítulos, ou é unha emisión en directo, un vídeo privado ou un vídeo eliminado. Non hai nada que reintentar. Sáltao, ou pídelle outro vídeo ao usuario.402 budget_exceeded: chegaches ao límite mensual de créditos que configuraches. Mira a sección seguinte.- Límite de frecuencia: cada clave permite 60 peticións por minuto. Espaza as tarefas por lotes e baixa o ritmo cando te limiten.
- Erros da nosa parte: reintenta tras unha breve espera. Non custan nada.
Un bucle sinxelo que reintente ante erros do servidor e salte os 404 cobre a maioría das necesidades de produción.
Canto custa
Cada transcrición custa 2 créditos. As peticións que non devolven ningunha transcrición ou que fallan por parte de sum.video non custan nada, de xeito que un 404 nunca che baleira o saldo. Podes consultar o saldo con GET /api/v1/credits.
Os créditos véndense en paquetes únicos que nunca caducan:
| Paquete | Prezo | Por transcrición |
|---|---|---|
| 100 créditos | $4.49 | $0.090 |
| 500 créditos | $13.99 | $0.056 |
| 2,000 créditos | $37.99 | $0.038 |
| 5,000 créditos | $74.99 | $0.030 |
Os subscritores de Pro tamén reciben 100 créditos de bonificación cada mes. Para cargas máis pesadas, como ingerir un canle enteiro, le o escenario transcricións de YouTube para unha app RAG a gran escala, que trata a recarga automática e os orzamentos. Mira tamén os prezos.
Límites que convén coñecer antes de construír
- Só funcionan os vídeos con subtítulos. É o motivo principal do
404 no_transcript. - Os subtítulos xerados automaticamente poden ter erros, sobre todo con nomes, acentos e termos técnicos.
- A API só devolve a transcrición. Non resume. Se queres resumos, marcas de tempo e chat sobre unha transcrición, iso faino o resumidor de YouTube, e a ferramenta de transcrición é a versión sen código para un só vídeo.
- A API oficial de YouTube Data non é un substituto aquí. O seu método de descarga de subtítulos esixe permiso para editar o vídeo, así que está pensado para os teus propios vídeos (documentación de Google).
Fontes
Preguntas frecuentes
Podo obter a transcrición de YouTube sen a API oficial de YouTube Data?
Si. A API de transcricións de sum.video acepta o URL ou o ID dun vídeo e devolve os subtítulos existentes, sen necesidade dun proxecto de Google Cloud. O método de descarga de subtítulos de Google esixe permiso para editar o vídeo, así que só serve para os teus propios vídeos.
A API transcribe vídeos que non teñen subtítulos?
Non. Devolve os subtítulos existentes de YouTube, manuais ou xerados automaticamente. Os vídeos sen subtítulos, as emisións en directo, os vídeos privados e os eliminados devolven 404 no_transcript, e esa petición non custa nada.
Canto custa unha transcrición?
2 créditos por transcrición. Os paquetes van dende 100 créditos por $4.49 ($0.090 por transcrición) ata 5,000 créditos por $74.99 ($0.030 por transcrición), e os créditos nunca caducan.
Que formatos de saída hai?
json (segmentos con offset e duration en segundos), text e srt. Define o campo format na petición.
Como o probo de balde?
A túa primeira clave de API vén con 10 créditos gratuítos, é dicir, 5 transcricións. Os subscritores de Pro tamén reciben 100 créditos de bonificación cada mes.
Lecturas relacionadas
Transcricións de YouTube para unha app RAG a gran escala: créditos, recarga automática e orzamentosUnha desenvolvedora inxire 10.000 vídeos de YouTube nunha app RAG. Mira o custo, o cálculo do límite de frecuencia e como a recarga automática e os orzamentos fan previsible o gasto.
As mellores API de transcrición de YouTube comparadas: sum.video, Supadata, Transcribr e a biblioteca de PythonCatro xeitos de obter transcricións de YouTube con código, comparados por prezo, límites e fiabilidade: sum.video, Supadata, Transcribr e youtube-transcript-api.
Últimas publicacións
Transcricións de YouTube para unha app RAG a gran escala: créditos, recarga automática e orzamentosUnha desenvolvedora inxire 10.000 vídeos de YouTube nunha app RAG. Mira o custo, o cálculo do límite de frecuencia e como a recarga automática e os orzamentos fan previsible o gasto.
As mellores API de transcrición de YouTube comparadas: sum.video, Supadata, Transcribr e a biblioteca de PythonCatro xeitos de obter transcricións de YouTube con código, comparados por prezo, límites e fiabilidade: sum.video, Supadata, Transcribr e youtube-transcript-api.