WebVTT-Untertitel erstellen
Senden Sie eine Audiospur und erhalten Sie eine .vtt-Datei mit WEBVTT-Kopfzeile, genauen Zeitmarken und gut lesbaren Zeilen, bereit für das track-Element eines HTML5-Videos. Auch bei langen Aufnahmen bleibt das Timing an jeder Nahtstelle stimmig. Bezahlung pro Nutzung, ohne Abo.
Online ausführen
Führen Sie dies mit Ihrem Konto auf unseren Servern aus. Kostenlose Tools laufen in Ihrem Browser; dieses wird zum oben genannten Preis von Ihrem KIT-Guthaben abgebucht.
KIT erzeugt aus einer Audio- oder Videospur automatisch eine Untertiteldatei im WebVTT-Format, dem Standard für den HTML5-Videoplayer im Browser. Gedacht für alle, die ein Video direkt auf der eigenen Website oder in einer Web-App mit Untertiteln versehen wollen, ohne SRT nachträglich umzuwandeln.
Das Untertitelformat, das fürs Web gebaut wurde
Als Browser Videos selbst abspielen konnten, brauchten sie ein Untertitelformat, das für das Web entworfen und nicht von Desktop-Programmen geerbt war. WebVTT erfüllt genau diese Rolle: eine textbasierte Struktur mit Platz für Angaben zu Stil und Position, gepflegt zusammen mit HTML selbst. Das track-Element erwartet standardmäßig dieses Format, daher zeigt eine Seite Untertitel auf einem HTML5-Video ohne Plug-in oder fremden Player an. Die gelieferte Datei beginnt mit der WEBVTT-Kopfzeile und enthält korrekt formatierte Zeitmarken und Untertiteltext.
Timing, lange Aufnahmen und weitere Sprachen
Jede Zeile wird am tatsächlichen Ton ausgerichtet, statt in starre Intervalle geschnitten zu werden. So erscheint und verschwindet der Text synchron zur Sprache, ohne Verzögerung und ohne mitten im Satz abzubrechen. Verlage nutzen das für native Untertitel, Softwareanbieter für barrierefreie Anleitungsvideos, und Kursseiten erzeugen eine Spur, übersetzen den Text und bieten mehrere Sprachen am selben Video an. Auch Plattformen, die jedes neue Video automatisch untertiteln, binden die Datei direkt ein. Prüfen Sie Namen und Fachbegriffe vor dem Veröffentlichen.
WebVTT statt SRT: der Unterschied zählt
Browser lesen für das Untertitel-Element im Video-Tag das WebVTT-Format, nicht SRT; wer Untertitel direkt auf der eigenen Website einbinden will, braucht also die VTT-Datei und keine nachträgliche Umwandlung. KIT liefert das Format direkt, inklusive des Zeitcodes im Punkt-Stil, den HTML5-Player erwarten.
Typischer Einsatz
Firmen, die Erklärvideos oder Produktvideos direkt auf der eigenen Website statt auf YouTube einbetten, brauchen WebVTT für die native Untertitelanzeige des Browsers. Auch Lernplattformen mit eigenem Videoplayer setzen meist auf dieses Format statt auf SRT.
Grenzen
Die automatische Texttrennung folgt Sprechpausen, ersetzt aber keine Prüfung bei Eigennamen oder Fachbegriffen vor der Veröffentlichung. Die Datei darf bis zu 200 MB groß sein und bis zu 180 Minuten lang; für sehr lange Aufnahmen empfiehlt sich eine vorherige Aufteilung.
Anwendungsfälle
Erklärvideo auf der eigenen Website
Ein Softwareanbieter aus München bindet ein Produktvideo direkt auf der eigenen Landingpage ein und ergänzt es mit WebVTT-Untertiteln, statt auf eine externe Plattform auszuweichen.
Kursvideo für die Lernplattform
Eine Weiterbildungsplattform stattet jedes Kursvideo im eigenen Player mit VTT-Untertiteln aus, damit Teilnehmer auch im Großraumbüro ohne Ton mitlesen können.
Mehrsprachiges Produktvideo
Ein Hersteller aus Stuttgart hinterlegt für ein Produktvideo mehrere VTT-Dateien in unterschiedlichen Sprachen, zwischen denen Besucher der Website per Klick wechseln.
Häufige Fragen
Warum WebVTT und nicht einfach SRT?
Weil Browser für den HTML5-Videoplayer WebVTT erwarten; wer Untertitel direkt im eigenen Player der Website anzeigen will, kommt um dieses Format nicht herum.
Kann ich die Datei auch in SRT umwandeln lassen?
Für SRT gibt es die eigene Funktion „SRT-Untertitel erstellen“; beide Formate lassen sich aus derselben Aufnahme erzeugen.
Muss ich ein Konto haben oder Software installieren, um die Datei zu nutzen?
Nein, die VTT-Datei ist reiner Text und lässt sich mit jedem Editor öffnen und direkt in den HTML-Code einbinden.
Werden meine Videoinhalte gespeichert oder ausgewertet?
Die Datei dient ausschließlich der Erstellung dieser Untertiteldatei und wird nicht für andere Zwecke verwendet oder weitergegeben.
Funktioniert das auch bei sehr langen Aufnahmen?
Ja. Lange Aufnahmen werden in Abschnitten verarbeitet, und das Timing bleibt über jede Nahtstelle hinweg einheitlich. Ein Untertitel kurz vor oder nach einer solchen Grenze erscheint in der fertigen Datei also trotzdem an der richtigen Stelle.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/audio/subtitles-vtt \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"audio":"https://ejemplo.com/audio.mp3"}'const res = await fetch("https://api.kit.forhosting.com/audio/subtitles-vtt", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"audio": "https://ejemplo.com/audio.mp3"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/subtitles-vtt",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"audio": "https://ejemplo.com/audio.mp3"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/subtitles-vtt", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"audio":"https://ejemplo.com/audio.mp3"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"audio":"https://ejemplo.com/audio.mp3"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/subtitles-vtt", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"audio": "https://ejemplo.com/audio.mp3"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.subtitles_vtt",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 200 |
max_minutes | 180 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
422 | task_failed | Die Aufgabe ist fehlgeschlagen und wird nicht berechnet. |
Technische Hinweise
So binden Sie die Datei ein
Nach der Verarbeitung erhalten Sie die VTT-Datei zum Herunterladen; im HTML-Code wird sie als Untertitelspur im Video-Element eingebunden, und der Browser zeigt die Untertitel automatisch an, inklusive Ein- und Ausschalter im Standard-Player, ganz ohne zusätzliches Plugin.
Technische Fragen
Was kostet eine WebVTT-Datei aus einer fünfzehnminütigen Aufnahme?
$0.002 pro Anfrage plus $0.0055 pro Minute, also rund $0,08 für fünfzehn Minuten.