Black Friday · 30% off

Get 30% off

API-Dokumentation

Eine REST-API für YouTube-Transkripte, Suche und Metadaten. Holen Sie sich einen API-Schlüssel über Ihr Dashboard — 100 kostenlose Credits, keine Karte erforderlich.

Authentifizierung

Übergeben Sie Ihren API-Schlüssel als Bearer-Token oder über x-api-key:

Authorization: Bearer sk_live_...
# or
x-api-key: sk_live_...

Basis-URL

https://getyoutubetranscript.com/api/v1

Credits & Pläne

PlanPreisCredits/MonatAufladepreisRate-Limit
Kostenlos0 $/Monat100 (einmalig)—60 Anfragen/Min.
Monatlich5 $/Monat1.0002,50 $ / 1.000200 Anfragen/Min.
Jährlich4,50 $/Monat (54 $/Jahr)1.0001,50 $ / 1.000300 Anfragen/Min.
Starter19 $/Monat7.5001,50 $ / 1.000300 Anfragen/Min.
Pro49 $/Monat25.0001,50 $ / 1.000400 Anfragen/Min.
Scale99 $/Monat60.0001,50 $ / 1.000600 Anfragen/Min.

1 Credit = 1 erfolgreiche Anfrage. Fehlgeschlagene Anfragen werden nie berechnet. Beispiel: 10 Transkript-Anfragen, bei denen 2 Videos keine Untertitel haben, kosten 8 Credits; ein erneuter Versuch bei einem fehlgeschlagenen Video kostet nichts, bis er gelingt. Aufgeladene Zusatz-Credits verfallen 30 Tage nach dem Kauf oder am Ende des aktuellen Abrechnungszeitraums, je nachdem, was später eintritt, und erfordern ein aktives Abonnement, um genutzt werden zu können.

Endpunkte

GET/transcript1 Credit

Ruft das Transkript für ein YouTube-Video ab, inklusive Metadaten (Titel, Kanal, Thumbnail). Liefert außerdem language_code vs. requested_language, caption_type (manual oder auto, null falls unbekannt) sowie cached / fetched_at.

ParameterErforderlichBeschreibung
vJaVideo-ID oder vollständige YouTube-URL
languageNeinSprachcode (Standard: en)
timestampsNeinAuf true setzen, um Zeitstempel pro Zeile zu erhalten (segments: start, duration, text in Sekunden). Standardmäßig aus.
translateNeinSprachcode für eine maschinelle Übersetzung, z. B. es oder zh-CN. Die Zeitstempel bleiben erhalten; die Antwort enthält translated_to. Weiterhin 1 Credit.

Anfrage

curl "https://getyoutubetranscript.com/api/v1/transcript?v=jNQXAC9IVRw" \
  -H "Authorization: Bearer sk_live_..."

Antwort

{
  "success": true,
  "data": {
    "video_id": "jNQXAC9IVRw",
    "language_code": "en",
    "requested_language": "en",
    "caption_type": "manual",
    "title": "Me at the zoo",
    "author_name": "jawed",
    "author_url": "https://www.youtube.com/channel/UC4Qob...",
    "thumbnail_url": "https://...",
    "transcript": "All right, so here we are...",
    "word_count": 39,
    "cached": true,
    "fetched_at": "2026-09-20T03:10:58.938Z"
  }
}
GET/transcript/languages1 Credit

Listet die Untertitelsprachen eines Videos (manuell und automatisch erzeugt), bevor du eine abrufst. default_language_code ist das, was /transcript ohne Sprachangabe liefert; ein Video ohne Untertitel gibt eine leere Liste zurück.

ParameterErforderlichBeschreibung
vJaVideo-ID oder vollständige YouTube-URL

Anfrage

curl "https://getyoutubetranscript.com/api/v1/transcript/languages?v=kJQP7kiw5Fk" \
  -H "Authorization: Bearer sk_live_..."

Antwort

{
  "success": true,
  "data": {
    "video_id": "kJQP7kiw5Fk",
    "default_language_code": "en",
    "languages": [
      { "language_code": "en", "name": "English - en", "caption_type": "manual" },
      { "language_code": "es", "name": "Spanish", "caption_type": "manual" }
    ]
  }
}
POST/batch1 Credit / erfolgreiches Video

Bis zu 100 Videos in einem Aufruf einreihen. Gibt sofort eine batch_id zurück und lädt die Transkripte im Hintergrund. Frage GET /batch ab oder übergib webhook_url, um nach Abschluss einen signierten POST (Header X-GYT-Signature) zu erhalten. Fehlgeschlagene Videos werden nie berechnet.

ParameterErforderlichBeschreibung
videosJaArray aus Video-IDs oder URLs (1-100). Duplikate werden nur einmal abgerufen.
languageNeinSprachcode für alle Videos (Standard: en)
timestampsNeintrue, um zeilenweise Segmente in die Ergebnisse aufzunehmen
webhook_urlNeinÖffentliche https-URL, die nach Abschluss benachrichtigt wird
Idempotency-KeyNeinHeader. Wiederhole die Anfrage gefahrlos: derselbe Schlüssel liefert den ursprünglichen Batch.

Anfrage

curl -X POST "https://getyoutubetranscript.com/api/v1/batch" \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
        "videos": ["jNQXAC9IVRw", "https://youtu.be/dQw4w9WgXcQ"],
        "webhook_url": "https://example.com/hooks/transcripts"
      }'

Antwort

{
  "success": true,
  "data": {
    "batch_id": "324eb615-e4d5-4b3c-b8e7-04235671066b",
    "status": "queued",
    "total": 2,
    "succeeded": 0,
    "failed": 0,
    "pending": 2,
    "results_url": "https://getyoutubetranscript.com/api/v1/batch?id=324eb615-...",
    "webhook_secret": "whsec_..."
  }
}
GET/batchKostenlos

Status, Zähler und eine Seite mit Ergebnissen in Einreichungsreihenfolge. Erfolgreiche Einträge haben dieselben Felder wie /transcript; fehlgeschlagene enthalten einen error_code.

ParameterErforderlichBeschreibung
idJaDie batch_id aus POST /batch
offsetNeinZu überspringende Einträge (Standard: 0)
limitNeinEinträge pro Seite, 1-50 (Standard: 20)

Anfrage

curl "https://getyoutubetranscript.com/api/v1/batch?id=324eb615-e4d5-4b3c-b8e7-04235671066b" \
  -H "Authorization: Bearer sk_live_..."

Antwort

{
  "success": true,
  "data": {
    "batch_id": "324eb615-...",
    "status": "completed",
    "total": 2,
    "succeeded": 1,
    "failed": 1,
    "credits_charged": 1,
    "items": [
      { "position": 0, "status": "succeeded", "charged": true, "video_id": "jNQXAC9IVRw", "caption_type": "manual", "transcript": "All right, so here we are...", ... },
      { "position": 1, "status": "failed", "charged": false, "video_id": "dQw4w9WgXcQ", "error_code": "TRANSCRIPT_DISABLED" }
    ],
    "next_offset": null
  }
}
GET/search1 Credit / Seite

Durchsucht YouTube-Videos mit Filtern und Paginierung.

ParameterErforderlichBeschreibung
qJaSuchbegriff (mind. 2 Zeichen)
countryNein2-Buchstaben-Ländercode (Standard: us)
languageNeinSprachcode (Standard: en)
page_tokenNeincontinuation_token der vorherigen Antwort, um die nächste Seite abzurufen
limitNeinMax. Ergebnisse (Standard 20, max. 50)

Anfrage

curl "https://getyoutubetranscript.com/api/v1/search?q=lofi+beats" \
  -H "Authorization: Bearer sk_live_..."

Antwort

{
  "success": true,
  "data": {
    "query": "lofi beats",
    "video_results": [ { "title": "...", "videoId": "...", "channel": { "name": "..." } } ],
    "continuation_token": "c_bKt9xQ2mVf7LpR0aZ3sWyA"
  }
}
GET/resolve1 Credit

Löst ein Kanal-Handle, eine URL oder einen Benutzernamen zur zugehörigen echten Kanal-ID auf. Eine syntaktische Eingabe (bereits eine Kanal-ID oder eine URL, die eine enthält) wird sofort ohne Netzwerkaufruf aufgelöst; ein reines Handle löst eine echte Abfrage aus.

ParameterErforderlichBeschreibung
handleJaKanal-ID, URL oder @Handle

Anfrage

curl "https://getyoutubetranscript.com/api/v1/resolve?handle=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

Antwort

{
  "success": true,
  "data": {
    "channel_id": "UCBJycsmduvYEL83R_U4JriQ",
    "title": "Marques Brownlee",
    "handle": "http://www.youtube.com/@mkbhd",
    "resolved_via": "lookup"
  }
}
GET/channel/latest1 Credit

Kanaldetails (Titel, Abonnenten, Beschreibung, Avatar) plus die neuesten Videos vom Startseiten-Tab des Kanals. Für alle Uploads /channel/videos verwenden.

ParameterErforderlichBeschreibung
channelJaKanal-@handle, URL oder Kanal-ID

Anfrage

curl "https://getyoutubetranscript.com/api/v1/channel/latest?channel=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

Antwort

{
  "success": true,
  "data": {
    "channel": { "id": "UCBJycsmduvYEL83R_U4JriQ", "title": "Marques Brownlee", "subscribers": 1160000, "avatar": "https://..." },
    "about": { "description": "...", "links": [] },
    "videos_sections": [ ... ]
  }
}
GET/channel/videos1 Credit / Seite

Alle hochgeladenen Videos eines Kanals, neueste zuerst, mit Seitenumbruch.

ParameterErforderlichBeschreibung
channelJaKanal-@handle, URL oder Kanal-ID
tabNeinvideos (Standard), shorts oder streams (der Live-Tab). Nur erste Seite.
sortNeinlatest (Standard), popular oder oldest. Nur erste Seite.
continuationNeincontinuation_token aus der vorherigen Antwort, um die nächste Seite abzurufen (statt der anderen Parameter). Läuft nach 24 Stunden ab.

Anfrage

curl "https://getyoutubetranscript.com/api/v1/channel/videos?channel=@mkbhd&tab=shorts&sort=popular" \
  -H "Authorization: Bearer sk_live_..."

Antwort

{
  "success": true,
  "data": {
    "videos": [ { "position": 1, "id": "...", "title": "...", "views": "6.2M", "published_time": "1d ago", "length": "10:47" } ],
    "has_more": true,
    "continuation_token": "c_pqHR9v13sqaqxlcKhA4MnA"
  }
}
GET/channel/playlists1 Credit / Seite

Die Playlists eines Kanals (Tab „Playlists“), seitenweise. Mit einer Playlist-ID lassen sich über /playlist ihre Videos auflisten.

ParameterErforderlichBeschreibung
channelJaKanal-@handle, URL oder Kanal-ID
continuationNeincontinuation_token aus der vorherigen Antwort, um die nächste Seite abzurufen (statt der anderen Parameter). Läuft nach 24 Stunden ab.

Anfrage

curl "https://getyoutubetranscript.com/api/v1/channel/playlists?channel=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

Antwort

{
  "success": true,
  "data": {
    "playlists": [ { "position": 1, "id": "PL...", "title": "...", "link": "https://www.youtube.com/playlist?list=PL...", "video_count": 5 } ],
    "has_more": false,
    "continuation_token": null
  }
}
GET/channel/posts1 Credit / Seite

Die Community-Beiträge eines Kanals (Tab „Beiträge“), seitenweise: Text, Links, Likes, Kommentare und ein angehängtes Bild.

ParameterErforderlichBeschreibung
channelJaKanal-@handle, URL oder Kanal-ID
continuationNeincontinuation_token aus der vorherigen Antwort, um die nächste Seite abzurufen (statt der anderen Parameter). Läuft nach 24 Stunden ab.

Anfrage

curl "https://getyoutubetranscript.com/api/v1/channel/posts?channel=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

Antwort

{
  "success": true,
  "data": {
    "posts": [ { "position": 1, "id": "Ugkx...", "url": "https://www.youtube.com/post/Ugkx...", "text": "...", "published_time": "2 years ago", "likes": "12K", "comments": "1K" } ],
    "has_more": true,
    "continuation_token": "c_DfE9mQx2Ln8TbW4kJ1pZsA"
  }
}
GET/channel/search1 Credit / Seite

Suche in den Videos eines Kanals, mit Seitenumbruch.

ParameterErforderlichBeschreibung
channelJaKanal-@handle, URL oder Kanal-ID
qJaSuchbegriff (mind. 2 Zeichen)
continuationNeincontinuation_token aus der vorherigen Antwort, um die nächste Seite abzurufen (statt der anderen Parameter). Läuft nach 24 Stunden ab.

Anfrage

curl "https://getyoutubetranscript.com/api/v1/channel/search?channel=@mkbhd&q=iphone" \
  -H "Authorization: Bearer sk_live_..."

Antwort

{
  "success": true,
  "data": {
    "videos": [ { "position": 1, "id": "...", "title": "...", "published_time": "3w ago", "length": "17:14", "channel": { "name": "Marques Brownlee" } } ],
    "has_more": true,
    "continuation_token": "c_pnm10M6orzLgOTVWJk2oww"
  }
}
GET/playlist1 Credit / Seite

Alle Videos einer Playlist, mit Seitenumbruch. Auf der letzten Seite ist continuation_token null.

ParameterErforderlichBeschreibung
listJaPlaylist-ID oder URL
continuationNeincontinuation_token aus der vorherigen Antwort, um die nächste Seite abzurufen (statt der anderen Parameter). Läuft nach 24 Stunden ab.

Anfrage

curl "https://getyoutubetranscript.com/api/v1/playlist?list=PLxxx" \
  -H "Authorization: Bearer sk_live_..."

Antwort

{
  "success": true,
  "data": {
    "playlist_id": "PLxxx",
    "title": "...",
    "videos": [ { "position": 1, "id": "...", "title": "...", "channel": { "name": "..." } } ],
    "has_more": true,
    "continuation_token": "c_DfE9mQx2Ln8TbW4kJ1pZsA"
  }
}
GET/video/related1 Credit

Die Videos, die YouTube neben einem Video vorschlägt, mit Titel, ID, Kanal, Aufrufen, Alter und Länge.

ParameterErforderlichBeschreibung
vJaVideo-ID oder vollständige YouTube-URL

Anfrage

curl "https://getyoutubetranscript.com/api/v1/video/related?v=dQw4w9WgXcQ" \
  -H "Authorization: Bearer sk_live_..."

Antwort

{
  "success": true,
  "data": {
    "video_id": "dQw4w9WgXcQ",
    "related": [ { "position": 1, "id": "...", "title": "...", "channel": { "name": "..." }, "views": "410K", "published_time": "11y ago", "length": "1:01:35" } ]
  }
}
GET/video/dislikes1 Credit

Geschätzte Likes und Dislikes eines Videos. YouTube veröffentlicht keine Dislikes mehr, daher sind die Werte Schätzungen (estimated ist immer true).

ParameterErforderlichBeschreibung
vJaVideo-ID oder vollständige YouTube-URL

Anfrage

curl "https://getyoutubetranscript.com/api/v1/video/dislikes?v=dQw4w9WgXcQ" \
  -H "Authorization: Bearer sk_live_..."

Antwort

{
  "success": true,
  "data": {
    "video_id": "dQw4w9WgXcQ",
    "likes": 19497714,
    "dislikes": 521713,
    "rating": 4.9,
    "view_count": 1830715799,
    "estimated": true
  }
}
GET/channel/banner1 Credit

Das ungeschnittene Banner eines Kanals, alle von YouTube ausgelieferten Zuschnittgrößen und sein Profilbild. has_banner ist false, wenn der Kanal keins hat.

ParameterErforderlichBeschreibung
channelJaKanal-@handle, URL oder Kanal-ID

Anfrage

curl "https://getyoutubetranscript.com/api/v1/channel/banner?channel=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

Antwort

{
  "success": true,
  "data": {
    "channel_id": "UCBJycsmduvYEL83R_U4JriQ",
    "title": "Marques Brownlee",
    "avatar": "https://yt3.googleusercontent.com/...",
    "has_banner": true,
    "banner": { "original": "https://...=s0", "largest": "https://...=w2560", "sizes": [ { "url": "https://...", "width": 1060, "height": 175 } ] }
  }
}
GET/creditsKostenlos

Prüfe das verbleibende Credit-Guthaben für diesen Schlüssel, bevor du es ausgibst - dieselben Daten wie das MCP-Tool get_credits liefert.

ParameterErforderlichBeschreibung

Anfrage

curl "https://getyoutubetranscript.com/api/v1/credits" \
  -H "Authorization: Bearer sk_live_..."

Antwort

{
  "success": true,
  "data": {
    "plan_credits_left": 87,
    "topup_credits_left": 0,
    "plan": "monthly",
    "rate_limit_per_minute": 200
  }
}

Fehler

Fehler liefern zusätzlich zum HTTP-Status einen JSON-Body mit einem stabilen code-Feld zur Fallunterscheidung:

StatusCodeBedeutung
400BAD_REQUESTFehlender oder ungültiger Parameter
400CURSOR_EXPIREDSeiten-Cursor abgelaufen (nach 24 Stunden) – auf der ersten Seite neu beginnen
401MISSING_API_KEY / INVALID_API_KEYKein Schlüssel angegeben, oder Schlüssel ist ungültig/widerrufen
402PAYMENT_REQUIREDKeine Credits mehr – Aufladung kaufen oder upgraden
404VIDEO_UNAVAILABLE / TRANSCRIPT_NOT_FOUNDVideo oder Ressource nicht gefunden
429RATE_LIMITEDZu viele Anfragen für Ihre Plan-Stufe
503UPSTREAM_UNAVAILABLEVorübergehendes Upstream-Problem – erneuter Versuch möglich
504UPSTREAM_TIMEOUTUpstream hat länger als 25 Sekunden gebraucht – nicht berechnet, erneuter Versuch möglich

Diese API mit einem KI-Tool nutzen

Möchten Sie lieber Claude (oder ein anderes KI-Coding-Tool) diese API für Sie aufrufen lassen, statt Anfragen von Hand zu schreiben? Laden Sie den YouTube Transcript Skill herunter – einen fertigen Claude Skill, der ihm beibringt, Transkripte abzurufen, zu suchen und mehr.

In Zapier nutzen

Ganz ohne Code: Unsere Zapier-App holt ein Transkript, durchsucht YouTube oder listet die Videos eines Kanals in jedem Zap. Verbinde sie mit demselben API-Schlüssel; jede Aktion kostet dieselben Credits wie der API-Aufruf.

Featured on aitoolfame.comFeatured on Aura++Featured on DeepLaunch.ioFeatured on Dofollow.ToolsFeatured on EasyDoFollowFeatured on EarlyHuntFeatured on Findly.toolsFeatured on FoundrListGood AI ToolsFeatured on IndieHuntFeatured on LaunchBuffFeatured on launched.toolsFeatured on Launch Llama ToolsFeatured on LemonLaunchLiftOff launch badgeMy Launch StashGetYouTubeTranscript on Nick LaunchesOpenHunts Club MemberFeatured on saasfame.comShinyLaunchFeatured on ShowMeBestAIFeatured on toolfame.comListed on Turbo0Featured on Twelve ToolsHuzzler Embed BadgeFeatured on CodeHypeGetYouTubeTranscript on Better LaunchDokeyAIFeatured on WayfindioFeatured on LaunchZoneFeatured on NoonlaunchFeatured on WhatsthebigdataSurfaced on CodeTrendyFeatured on ScrollLaunchFeatured on ufind.bestFeatured on ShipBoostProduct WingWe Like ToolsAppa ListAcid ToolsPower Up ToolsToshi ListAIGC 160Appsy ToolsHunt for ToolsBeam ToolsTool Find DirTool SignalSaaS Tools DirSoftware BoltProduct List DirStack DirectorySaaS FieldSaaS WheelSaaS RootsStartup BenchmarksUnite ListTrustinerBest Tool VaultSolver ToolsAsh ListSmart Kit HubAI X CollectionAI Tech ViralMillion Dot HomepageThat App ShowLaunch ScrollMy Start ToolsLatest AI UpdatesSuper AI BoomTools Under RadarThe Key ToolsTool JourneyTools List HQThe App ToolsThe Mega ToolsSource DirTool CosmosTop Trend ToolsTiny Tool HubTool PrismStartup AIdeasFeatured on WonderLaunchFeatured on ShipycornFeatured on ToolsClawListed on ProofStoriesFeatured on ToolListedLaunched on Launch Streak