Welches Problem es löst
Wer gesprochene Sprache, Code-Switching oder ressourcenarme Sprachen erforscht, findet kaum genug natürliche, gesprächsnahe Daten. Vielen Videos fehlen Untertitel, und vorhandene mischen menschliche und automatische Quellen unterschiedlicher Qualität. Teams brauchen eine einheitliche Pipeline, die viele Sprachen abdeckt und festhält, woher jedes Transkript stammt.
Was in die erste Version gehört
- Erkennung verfügbarer Untertitelsprachen pro Video
- KI-Spracherkennung in 99 Sprachen für Videos ohne Untertitel
- Code-Switching-Unterstützung für Sprache, die mehrere Sprachen mischt
- Zeitstempel auf Wortebene für das Alignment
- Metadaten zu Sprache und Untertitelquelle für jedes Transkript
Schritt für Schritt bauen
- 01
Geeignete Videos finden
Lösen Sie Kanäle oder Playlists auf, die bekanntermaßen Ihre Zielsprachen enthalten, und rufen Sie /transcripts/{video_id}/languages auf, um zu sehen, welche Untertitelspuren existieren.
- 02
Vorhandene Untertitel nutzen
Rufen Sie manuelle Untertitel ab, wo es sie gibt – sie sind meist am genauesten.
- 03
Lücken per Spracherkennung schließen
Fordern Sie für Videos ohne Untertitel ASR an, mit festgelegter oder automatisch erkannter Sprache, und aktivieren Sie codeSwitching für gemischtsprachige Rede.
- 04
Mit Alignment-Daten speichern
Fordern Sie format.words für Zeitstempel auf Wortebene an und speichern Sie Sprache und Quelle jedes Transkripts zusammen mit dem Text.
Starter-Code
Diese Idee basiert auf dem Muster „Rezept 3: Eine Playlist gesammelt in eine Wissensdatenbank laden“. Setzen Sie Ihre eigenen Kanäle, Prompts und Speicherlösungen ein.
import requests
API = "https://www.youtubetranscript.dev/api/v2"
HEADERS = {"Authorization": "Bearer yt_sk_live_YOUR_KEY"}
playlist = requests.post(f"{API}/playlists/resolve", headers=HEADERS,
json={"playlist_url": "https://www.youtube.com/playlist?list=PLAYLIST_ID",
"limit": 100}).json()
ids = [v["video_id"] for v in playlist["items"]]
batch = requests.post(f"{API}/batch", headers=HEADERS, json={
"video_ids": ids,
"format": {"timestamp": True, "paragraphs": True},
}).json()
# Large batches run async: poll GET /batch/{batch_id} until status is "completed"
for r in batch.get("results", []):
if r["status"] == "completed":
for p in r["data"]["transcript"].get("paragraphs") or []:
store(video_id=r["video_id"], start=p["start"], text=p["text"]) # your vector DBWarum es sich lohnt
Labore und KI-Teams erhalten Evaluations- und Forschungsdaten in Sprachen, deren Erhebung sonst teuer ist. Saubere, gut dokumentierte Datensätze für bestimmte Sprachen oder Domänen sind auch für Modellentwickler wertvoll.
Fehler, die Sie vermeiden sollten
- Automatische Untertitel als Ground Truth betrachten: Kennzeichnen Sie Quellen und validieren Sie eine Stichprobe manuell.
- Dialekte ohne Metadaten mischen: Erfassen Sie Kanal und Region, damit sich die Ergebnisse interpretieren lassen.
- Lizenzfragen übersehen: Prüfen Sie Plattformbedingungen und Urheberrecht, bevor Sie einen Datensatz weitergeben.
Fragen zu dieser Idee
Wie viele Sprachen unterstützt die Spracherkennung?
Die KI-Spracherkennung unterstützt 99 Sprachen, mit automatischer Spracherkennung und optionalem Code-Switching für gemischtsprachige Rede.
Kann ich Zeitstempel auf Wortebene erhalten?
Ja. Fordern Sie format.words an, um das Timing jedes einzelnen Worts zu erhalten – nützlich für Alignment und phonetische Forschung.
Darf ich einen aus YouTube erstellten Datensatz weitergeben?
Das hängt von den YouTube-Nutzungsbedingungen, dem Urheberrecht und den Richtlinien Ihrer Einrichtung ab. Viele Forschende teilen Video-IDs und Code statt der Transkripte selbst.