Gå til hovedindholdet
SubtitleMatrix

LRC til JSON

FormatkonverteringSangtekst (LRC)
Eller indsæt underteksttekst

Indstillinger

Bruges når kilden ikke har sluttider (almindelig tekst, LRC). Tidslinjen i resultatet genereres her i stedet for at blive konverteret, så dette tal er, hvad du får.

Hvad denne konvertering ændrer

1 ting frasorteres eller kræver en beslutning

  • Timing

    tekstblokkenes sluttider – kilden registrerer dem ikke, så resultatets vil blive genereret i stedet for konverteret

Denne liste kommer fra kapabilitetsmatricen for disse to formater, ikke fra den konkrete fil, du indlæste. En bestemt fil kan miste mere, hvis den bruger egenskaber, som formatet tillader, men matricen ikke modellerer.

Denne side konverterer en LRC Lyrics-fil til SubtitleMatrix JSON. LRC skriver [00:12.00], mens JSON skriver start: 1000; LRC har ingen sluttid, så den udledes af næste starttid.

Når LRC bliver JSON, følger dette ikke med: sluttiderne. Rapporten over filfeltet viser tabene, før du vælger en fil, og tæller dem per fil, når filen er læst.

En fil eller en hel sæson: køen behandler filerne i rækkefølge, du kan afbryde undervejs, og resultaterne hentes samlet som én ZIP-fil. Hele konverteringen kører i browseren – filen forlader aldrig din computer.

Eksempler

En typisk LRC-fil konverteret til JSON

Input

[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.

Resultat

{
  "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."
      ]
    }
  ]
}

Tidskoderne skrives om fra [00:12.00] til start: 1000; ordene og rækkefølgen er den samme. Sammenlign de to filer linje for linje.

Samme konvertering på en beskidt LRC-fil

Input

[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]

Resultat

{
  "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": [
        ""
      ]
    }
  ]
}

Sådan ser beskadigede filer ud i virkeligheden – blandede linjeskift, løse mellemrum og tomme felter. Sammenlign med det pæne eksempel ovenfor for at se, hvad LRC-læseren tilgiver, før filen skrives som JSON.

Ofte stillede spørgsmål

Hvordan skrives den samme tid i LRC og JSON?

LRC skriver [00:12.00], mens JSON skriver start: 1000; LRC har ingen sluttid, så den udledes af næste starttid.

Hvad går tabt, når LRC bliver JSON?

Når LRC bliver JSON, melder kapacitetstabellen: sluttiderne. Teksten og starttiderne bevares; sluttiderne fyldes ud. I målformatet gemmer JSON start og slut som hele millisekunder. Rapporten over filfeltet viser tabene, før du vælger en fil, og tæller dem per fil, når filen er læst.

Kan JSON rumme det, som LRC gemmer uden for tekstblokkene?

Ja. LRC gemmer metadata som [ti:], [ar:] og [offset:] samt tomme linjer uden for tekstblokkene. Der er derfor intet privat indhold at miste. JSON har ingen private blokke, men ukendte nøgler bevares.

Hvordan håndteres en beskidt LRC-fil, før den bliver JSON?

Når LRC bliver JSON, læses kilden sådan: En linje uden et læsbart tidsstempel bevares ordret, og tidsstempler i den forkerte rækkefølge sorteres; findes der slet ingen tidsstempler, men tekst ud over metadata, læses filen som ren tekst med en genereret tidslinje og et tab. [offset:] gemmes, men anvendes ikke, og hundrededele sekunder betyder, at tider rundes til 10 ms, når der skrives LRC. Sådan skrives resultatet: Filen skrives med to mellemrum, LF og tekstblokke sorteret efter starttid.

Hvordan beregnes sluttiderne, når LRC bliver JSON?

Når LRC bliver JSON, gemmer kilden kun starttiden [mm:ss.xx]. Ved læsning bliver hver sluttid sat til næste starttid, og den sidste tekstblok får 2.000 ms. JSON gemmer både start og slut. LRC har kun hundrededele sekunder, så der findes ingen finere information at skrive i JSON.

Bliver min LRC-fil uploadet, når jeg laver JSON?

Nej. Både læsningen af LRC og skrivningen af JSON sker i browseren, så intet af teksten, tiderne eller tagsene sendes i en anmodning. Du kan lægge en hel sæson ind, afbryde undervejs og hente resultaterne som én ZIP-fil; når siden er indlæst, virker den også uden net.

Relaterede værktøjer