GuiderAf Péter Nagy

Sådan henter du en YouTube-transskription med en API (curl, Python, JavaScript)

Hent transskriptionen af enhver offentlig YouTube-video med én HTTP-forespørgsel. Fungerende eksempler i curl, Python og JavaScript, outputformater, fejlkoder og priser.

Opsummer en YouTube-video nu

Indsæt et link og få de vigtigste punkter med klikbare tidsstempler.

For at hente en YouTube-transskription med en API sender du én HTTP-forespørgsel med videoens URL eller ID og en API-nøgle og læser transskriptionen i svaret. Denne guide viser forespørgslen i curl, Python og JavaScript med sum.video Transcript API og gennemgår derefter formater, fejl og pris.

Hvad API'en returnerer

Endepunktet returnerer de eksisterende undertekster til en offentlig YouTube-video, enten skrevet af skaberen eller automatisk genereret af YouTube. Det transskriberer ikke lyd. Hvis en video ikke har undertekster, får du en fejl i stedet for et gæt (mere om det nedenfor).

Det grundlæggende:

  • Endepunkt: POST https://sum.video/api/v1/transcript (GET virker også)
  • Godkendelse: din nøgle i headeren X-API-Key eller Authorization: Bearer <key>
  • Input: url eller video_id
  • Valgfri lang (standard en)
  • Valgfri format: json, text eller srt

Svaret fortæller også det faktiske sprog på undertekstsporet, og om det er automatisk genereret, så du ved, hvilken kvalitet du kan forvente.

Trin 1: Opret en API-nøgle

Log ind og opret en nøgle i API-dashboardet (/dashboard/api på sum.video). Du kan have op til 5 aktive nøgler, hvilket er praktisk til at holde en testnøgle adskilt fra en produktionsnøgle. Din første nøgle leveres med 10 gratis kreditter, nok til 5 transskriptioner, så du kan prøve alt nedenfor uden omkostninger.

Opsummer en YouTube-video nu

Indsæt et link og få de vigtigste punkter med klikbare tidsstempler.

Trin 2: Send din første forespørgsel

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"}'

Da GET også virker, kan du teste fra et script, der kun bygger URL'er. Giv hellere nøglen i headeren, så den ikke ender i logfiler.

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+ eller browseren)

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());
}

Hold nøglen på en server. En nøgle i browserkode kan kopieres af alle, der åbner udviklerværktøjerne.

Trin 3: Vælg det rigtige format

Format Hvad du får Bedst til
json Segmenter, hver med offset og duration i sekunder Tidsstempler, links til et bestemt øjeblik, opdeling efter tid
text Almindelig transskription Prompts, søgeindeks, resuméer
srt Indholdet af en undertekstfil Videoredigeringsprogrammer, undertekstværktøjer

Hvis du vil linke til et øjeblik i videoen, så brug json og byg linket ud fra segmentets offset. Til at fodre en LLM er text mindre og enklere. Hvis du senere vil søge manuelt i en transskription, så se sådan søger du i en YouTube-videos transskription.

Trin 4: Vælg et sprog

lang er som standard en. Sæt det til det sprog, du vil have, for eksempel de eller es. Svaret oplyser sproget på det spor, der faktisk blev returneret, så tjek det i stedet for at antage. En video har ofte kun ét undertekstspor, og API'en returnerer rigtige undertekster, så den oversætter dem ikke for dig.

Trin 5: Håndtér fejl

Planlæg for disse tilfælde fra første dag:

  • 404 no_transcript: videoen har ingen undertekster, eller den er en livestream, en privat video eller en fjernet video. Der er intet at prøve igen. Spring den over, eller bed brugeren om en anden video.
  • 402 budget_exceeded: du har nået den månedlige kreditgrænse, du satte. Se næste afsnit.
  • Hastighedsgrænse: hver nøgle tillader 60 forespørgsler i minuttet. Spred batchjob ud, og sæt tempoet ned, når du bliver begrænset.
  • Fejl hos os: prøv igen efter en kort pause. De koster ingenting.

En enkel løkke, der prøver igen ved serverfejl og springer over ved 404, dækker de fleste produktionsbehov.

Hvad det koster

Hver transskription koster 2 kreditter. Forespørgsler, der ikke returnerer en transskription, eller som fejler hos sum.video, koster ingenting, så en 404 dræner aldrig din saldo. Du kan se din saldo med GET /api/v1/credits.

Kreditter sælges i engangspakker, der aldrig udløber:

Pakke Pris Pr. transskription
100 kreditter $4.49 $0.090
500 kreditter $13.99 $0.056
2,000 kreditter $37.99 $0.038
5,000 kreditter $74.99 $0.030

Pro-abonnenter får også 100 bonuskreditter hver måned. Til tungere arbejde, som at indlæse en hel kanal, kan du læse scenariet YouTube-transskriptioner til en RAG-app i stor skala, der dækker automatisk optankning og budgetter. Se også priserne.

Begrænsninger, du bør kende, før du bygger

  • Kun videoer med undertekster virker. Det er hovedårsagen til 404 no_transcript.
  • Automatisk genererede undertekster kan indeholde fejl, især med navne, accenter og fagudtryk.
  • API'en returnerer kun transskriptionen. Den laver ikke resuméer. Hvis du vil have resuméer, tidsstempler og chat oven på en transskription, gør YouTube-resumeren det, og transskriptionsværktøjet er versionen uden kode til én video.
  • Den officielle YouTube Data API er ikke en erstatning her. Dens metode til at hente undertekster kræver tilladelse til at redigere videoen, så den er beregnet til dine egne videoer (Googles dokumentation).

Kilder

Ofte stillede spørgsmål

Kan jeg hente en YouTube-transskription uden den officielle YouTube Data API?

Ja. sum.video Transcript API tager en videos URL eller ID og returnerer de eksisterende undertekster uden behov for et Google Cloud-projekt. Googles egen metode til at hente undertekster kræver tilladelse til at redigere videoen, så den passer kun til dine egne videoer.

Transskriberer API'en videoer, der ikke har undertekster?

Nej. Den returnerer eksisterende YouTube-undertekster, manuelle eller automatisk genererede. Videoer uden undertekster, livestreams, private og fjernede videoer returnerer 404 no_transcript, og den forespørgsel koster ingenting.

Hvad koster én transskription?

2 kreditter pr. transskription. Pakkerne går fra 100 kreditter for $4.49 ($0.090 pr. transskription) til 5,000 kreditter for $74.99 ($0.030 pr. transskription), og kreditter udløber aldrig.

Hvilke outputformater findes der?

json (segmenter med offset og duration i sekunder), text og srt. Sæt feltet format i forespørgslen.

Hvordan prøver jeg det gratis?

Din første API-nøgle leveres med 10 gratis kreditter, altså 5 transskriptioner. Pro-abonnenter får desuden 100 bonuskreditter hver måned.

Opsummer en YouTube-video nu

Indsæt et link og få de vigtigste punkter med klikbare tidsstempler.

youtube transskriptions-apiapi-vejledningpythonjavascriptcurl

Relateret læsning

Seneste indlæg

Opsummer enhver YouTube-video på få sekunder

Prøv sum.video