Zum Hauptinhalt springen
SubtitleMatrix

LRC in JSON umwandeln

FormatkonvertierungLiedtexte (LRC)
Oder Untertiteltext einfügen

Optionen

Wird verwendet, wenn die Quelle keine Endzeiten hat (reiner Text, LRC). Die Zeitachse in der Ausgabe wird hier erzeugt und nicht umgerechnet, daher ist dieser Wert das, was Sie erhalten.

Was diese Konvertierung ändert

1 Sache entfällt oder braucht eine Entscheidung

  • Zeitangaben

    die Endzeiten der Untertitelblöcke — die Quelle zeichnet sie nicht auf, die der Ausgabe werden also erzeugt und nicht umgerechnet

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 wandelt LRC in JSON um. Ziehen Sie eine Datei hinein oder fügen Sie den Text ein — Sie erhalten die JSON-Fassung zurück. Die Umwandlung läuft vollständig in Ihrem Browser: kein Upload, keine Anmeldung.

Beide Formate speichern nicht dasselbe, und der Unterschied ist nicht kosmetisch: das Timing hat in JSON keinen Platz. Die Liste oben stammt daraus, was die beiden Formate jeweils ausdrücken können, nicht aus Ihrer Datei; sie gilt also schon, bevor Sie etwas laden.

Eine Datei ist kein Problem, eine ganze Staffel auch nicht: Die Warteschlange arbeitet sie der Reihe nach ab und liefert alle Ergebnisse in einem einzigen ZIP.

Beispiele

Eine typische LRC-Datei, umgewandelt in JSON

Eingabe

[ti:Sample Song]
[ar:Some Artist]
[length:00:41.00]
[offset:+250]
[00:12.00]First line of the song.
[00:15.30]Second line.
[00:15.30]Second line, translated.
[00:18.00]
[00:21.50]Final line.

Ausgabe

{
  "version": 1,
  "title": "Sample Song",
  "cues": [
    {
      "start": 12000,
      "end": 15300,
      "lines": [
        "First line of the song."
      ]
    },
    {
      "start": 15300,
      "end": 18000,
      "lines": [
        "Second line.",
        "Second line, translated."
      ]
    },
    {
      "start": 18000,
      "end": 21500,
      "lines": [
        ""
      ]
    },
    {
      "start": 21500,
      "end": 23500,
      "lines": [
        "Final line."
      ]
    }
  ]
}

In diesem Ergebnis geht verloren: das Timing. Alles andere bleibt Zeile für Zeile gleich.

Dieselbe Umwandlung mit einer unordentlichen Eingabe

Eingabe

[ar:Some Artist]
[0:05.5]Leading zero omitted, one decimal.
[00:07]Second with no centiseconds.
[00:03.00]Out of order.
[00:07.00][00:09.00]Repeated chorus line.
[00:12.00]

Ausgabe

{
  "version": 1,
  "cues": [
    {
      "start": 3000,
      "end": 5500,
      "lines": [
        "Out of order."
      ]
    },
    {
      "start": 5500,
      "end": 7000,
      "lines": [
        "Leading zero omitted, one decimal."
      ]
    },
    {
      "start": 7000,
      "end": 9000,
      "lines": [
        "Second with no centiseconds.",
        "Repeated chorus line."
      ]
    },
    {
      "start": 9000,
      "end": 12000,
      "lines": [
        "Repeated chorus line."
      ]
    },
    {
      "start": 12000,
      "end": 14000,
      "lines": [
        ""
      ]
    }
  ]
}

So sehen echte Dateien aus: gemischte Zeilenenden, verirrte Leerzeichen, leere Felder. Vergleichen Sie das mit dem sauberen Beispiel oben, dann sehen Sie, was der Parser verzeiht.

Häufige Fragen

Wie bekommt eine LRC-Zeile im JSON-Ergebnis eine Endzeit?

Der Start der nächsten Zeile wird ihr Ende; die letzte Zeile erhält die eingestellte Dauer. JSON speichert beide Werte als ganze Millisekunden, aus [00:12.00] werden also start 12000 und end 15300.

Wie sieht das JSON aus, das aus einer LRC-Datei entsteht?

Ein Objekt mit version 1 und einem cues-Array; jeder Block hat start, end und lines. Der Titel aus [ti:] bleibt als title erhalten, LRC-Metadaten wie [ar:] haben im Untertitelmodell keinen Platz.

Wie wird ein zweizeiliger LRC-Eintrag im JSON abgebildet?

Als zwei Einträge im lines-Array desselben Blocks. LRC gruppiert Zeilen über den identischen Zeitstempel; JSON drückt dieselbe Gruppierung über die gemeinsame cue-Struktur aus.

In welcher Reihenfolge stehen die LRC-Blöcke im JSON?

Nach start sortiert, aufsteigend. LRC kennt keine Endzeiten, nur Anfänge; das JSON-Objekt verlangt start vor end. Eine unsortierte LRC-Datei wird dadurch neu geordnet, ihr Text bleibt unverändert.

Kann ich das JSON zurück nach LRC umwandeln?

Ja, und JSON nach LRC verliert Timing, Formatierung, Positionierung, Karaoke und Genauigkeit. Die Rückrichtung kann also nicht wiederherstellen, was JSON zusätzlich zu LRC an Feldern trägt.

Wie wird die Kodierung beim Weg von LRC nach JSON behandelt?

Das JSON-Ergebnis ist UTF-8 mit Unix-Zeilenenden und ohne Byte-Order-Mark. Weicht die LRC-Eingabe ab, wird sie beim Einlesen erkannt und umgewandelt; das Ergebnispanel führt die erkannte Quellkodierung auf.

Verwandte Werkzeuge