Zum Hauptinhalt springen
SubtitleMatrix

VTT in JSON umwandeln

Oder Untertiteltext einfügen

Was diese Konvertierung ändert

1 Sache entfällt oder braucht eine Entscheidung

  • Formatspezifischer Inhalt

    Inhalt, den das Quellformat außerhalb seiner Blöcke führt (Nicht-Block-Abschnitte, Kopftext, Einstellungen pro Block, auskommentierte Ereignisse) — das Zielformat hat keinen Platz dafür

Diese Liste stammt aus der Fähigkeitsmatrix für diese beiden Formate, nicht aus der konkreten Datei, die Sie geladen haben. Eine bestimmte Datei kann mehr verlieren, wenn sie Merkmale nutzt, die das Format erlaubt, die Matrix aber nicht modelliert.

Diese Seite konvertiert WebVTT in JSON. Datei hineinziehen – oder Text einfügen – und Sie erhalten ein JSON-Dokument mit denselben Untertiteln. Die Konvertierung läuft vollständig in Ihrem Browser: nichts wird hochgeladen, kein Konto ist nötig, und die Seite arbeitet nach dem Laden auch ohne Netz weiter.

Das JSON folgt dem dokumentierten Untertitel-Schema dieser Seite: eine Versionsnummer, dann ein Eintrag pro Block mit Kennung, Start und Ende in ganzen Millisekunden und Zeilen als Arrays aus Text mit Inline-Spans. Zeiten bleiben ganze Millisekunden, Zeilen bleiben getrennt – gedacht für Ihr Skript, nicht für einen Videoplayer.

Fast alles, was WebVTT speichert, ist in dieser Form ausdrückbar, deshalb ist der Bericht oben kurz. Keinen Schlüssel haben, was außerhalb der Blöcke lebt: Kopfzeile und Kommentar, NOTE, STYLE und REGION sowie Einstellungen wie align:start. Sie fallen weg, statt in ein Ersatzfeld zu wandern. Blockkennungen sind die Ausnahme: Anders als SRT hat dieses Schema ein Feld `id`, `intro` bleibt also `intro`.

Eine Datei oder eine ganze Staffel: Die Warteschlange arbeitet der Reihe nach, und die Ergebnisse kommen als ein ZIP-Archiv.

Beispiele

Eine typische WebVTT-Datei, konvertiert nach JSON

Eingabe

WEBVTT

intro
00:00:01.000 --> 00:00:04.000
Hello there.

00:00:04.500 --> 00:00:08.000 align:start position:10%
Second line with <i>italics</i>.

Ausgabe

{
  "version": 1,
  "cues": [
    {
      "id": "intro",
      "start": 1000,
      "end": 4000,
      "lines": [
        "Hello there."
      ]
    },
    {
      "start": 4500,
      "end": 8000,
      "lines": [
        {
          "text": "Second line with italics.",
          "tags": [
            {
              "kind": "italic",
              "start": 17,
              "end": 24
            }
          ]
        }
      ]
    }
  ]
}

In dieser Ausgabe gehen verloren: formatspezifische Inhalte. Alles andere stimmt Zeile für Zeile überein.

Dieselbe Konvertierung mit ungewöhnlicher Eingabe

Eingabe

a stray comment line
cue-id-1
00:00:01.000 --> 00:00:02.000
No header, two lines before the timecode.

Ausgabe

{
  "version": 1,
  "cues": [
    {
      "start": 1000,
      "end": 2000,
      "lines": [
        "No header, two lines before the timecode."
      ]
    }
  ]
}

So sehen echte Dateien aus – gemischte Zeilenenden, verirrte Leerzeichen, leere Felder. Vergleichen Sie mit dem sauberen Beispiel oben.

Häufige Fragen

Wie sieht die JSON-Ausgabe einer WebVTT-Datei aus?

Eine Versionsnummer und ein `cues`-Array. Jeder Block hat eine optionale `id`, `start` und `end` in ganzen Millisekunden und ein `lines`-Array, in dem jede Zeile eine Zeichenkette oder ein Objekt aus Text und Spans ist. Es gibt keine Zeitstempel zu parsen.

Warum ist die Verlustliste bei VTT nach JSON so kurz?

Weil das Schema alles aufnehmen kann, was das Blockmodell des Konverters trägt – fast der gesamte Inhalt von WebVTT. Übrig bleibt, was WebVTT außerhalb der Blöcke hält: Kopfzeile und Kommentar, `NOTE`, `STYLE`, `REGION` und die Per-Block-Einstellungen.

Bleiben die WebVTT-Blockkennungen in der JSON-Ausgabe erhalten?

Ja. WebVTT erlaubt freie Kennungen wie `intro` oder `sign-1`, und dieses Schema hat ein Feld `id` dafür, also wird die Kennung unverändert ausgeschrieben. Eine Konvertierung nach SRT würde stattdessen neu nummerieren.

Ändern sich die Zeitangaben beim Weg von VTT nach JSON?

Nein. Beide Seiten arbeiten in ganzen Millisekunden, aus `00:00:01.234` wird also 1234 und wieder zurück, ohne Rundung und ohne Verschiebung.

Was geht bei WebVTT nach JSON verloren?

Formatspezifische Inhalte: Kopfzeile, Kommentar, `NOTE`, `STYLE`, `REGION` und Per-Block-Einstellungen haben keinen Schlüssel im Schema. Sie werden nicht in ein Ersatzfeld geschoben, sondern entfallen.

Kann ich ein Transkript durch diese VTT-nach-JSON-Seite schicken?

Ja. Parsen und Schreiben laufen im Browser, die Datei wird nie an einen Server geschickt – hier besonders wichtig, weil JSON das ist, was Skripte und Pipelines konsumieren, oft aus Transkripten, die das Haus nicht verlassen dürfen.

Verwandte Werkzeuge