GuíasPor Péter Nagy

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.

Resume un vídeo de YouTube agora

Pega unha ligazón e obtén os puntos clave con marcas de tempo clicables.

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 (GET tamén funciona)
  • Autenticación: a túa clave na cabeceira X-API-Key, ou Authorization: Bearer <key>
  • Entrada: url ou video_id
  • lang opcional (por defecto en)
  • format opcional: json, text ou srt

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.

Resume un vídeo de YouTube agora

Pega unha ligazón e obtén os puntos clave con marcas de tempo clicables.

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.

Resume un vídeo de YouTube agora

Pega unha ligazón e obtén os puntos clave con marcas de tempo clicables.

api de transcricións de youtubetitorial de apipythonjavascriptcurl

Lecturas relacionadas

Últimas publicacións

Resume calquera vídeo de YouTube en segundos

Proba sum.video