LRC til JSON
Eller lim inn underteksttekst
Innstillinger
Brukes når kilden ikke har sluttider (ren tekst, LRC). Tidslinjen i resultatet genereres her i stedet for å konverteres, så dette tallet er det du får.
Hva denne konverteringen endrer
1 ting slippes eller trenger en avgjørelse
- Tider
tekstblokkenes sluttider — kilden registrerer dem ikke, så resultatets vil bli generert i stedet for konvertert
Denne listen kommer fra egenskapsmatrisen for disse to formatene, ikke fra den bestemte filen du lastet inn. En bestemt fil kan miste mer hvis den bruker egenskaper formatet tillater, men matrisen ikke modellerer.
Slipp inn en LRC-fil på denne siden, og du får den tilbake som JSON, med tidsstemplene skrevet om og teksten i behold.
Konverteringen fra LRC til JSON legger til noe du bør vite om: sluttidene blir genererte, fordi LRC ikke lagrer dem — de utledes fra neste linjes starttid.
Listen over filboksen er regnet ut fra hva LRC og JSON kan uttrykke, ikke fra filen din, så svaret er det samme før du laster opp noe.
En enkelt LRC-fil går like fint som hundre, så du kan sende hele sesongen gjennom JSON-konverteringen og laste ned alt som én ZIP.
Arbeidet med LRC til JSON skjer i nettleseren din — ingen server ser filen.
Eksempler
En typisk LRC-fil konvertert til JSON
Inndata
[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."
]
}
]
}
Ingenting av kildens innhold går tapt, men sluttidene er ikke kopiert: LRC lagrer bare starttider, så hver sluttid utledes fra neste linjes starttid, og den siste linjen får standardvarigheten.
Samme LRC-til-JSON-konvertering med vanskelig inndata
Inndata
[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": [
""
]
}
]
}
Slik ser skader på ekte filer ut — blandede linjeskift, løse mellomrom, tomme felt. Sammenlign med det ryddelige eksempelet over for å se hva LRC-parseren tilgir.
Ofte stilte spørsmål
Hva går tapt når LRC blir JSON?
Ingenting av kildens innhold går tapt, men LRC lagrer ingen sluttider, så hver sluttid i JSON utledes fra neste linjes starttid; den siste linjen får standardvarigheten fra sidefeltet.
Hvordan skrives tidsstemplene om fra LRC til JSON?
En tid i LRC ser slik ut: `[00:04.12]` — hundredeler, og bare starttiden. I JSON skrives den som `"start": 4126` — heltall millisekunder. Slutttidene finnes ikke i LRC; de utledes fra neste linjes starttid når JSON-filen skrives. Rekkefølgen er den samme, og ingen tekstblokk flyttes mer enn avrundingen tilsier.
Hvordan beregnes sluttidene i JSON når kilden er LRC?
LRC lagrer bare når en linje starter, så JSON utleder hver sluttid fra neste linjes starttid. Den siste linjen har ingen etterfølger og får standardvarigheten fra sidefeltet; det rapporteres, slik at du vet at én sluttid er generert.
Hva skjer med formateringen fra LRC i JSON?
LRC har ingen formatering å overføre. JSON har full formatering, men den fylles ikke av noe fra kilden, så utdataen bruker standardstilen.
Hvordan ser en JSON-fil ut når den er laget fra LRC?
JSON er et objekt med `version` og en `cues`-tabell, der hver tekstblokk har `id`, `start`, `end` og `lines`. Konverteringen fra LRC fyller den formen: hver tekstblokk blir én JSON-blokk, i samme rekkefølge, med LRC-ens tekst delt i de samme linjene.
Kan jeg konvertere JSON tilbake til LRC, og hva går tapt da?
Ja, og den veien har sin egen tap-liste: sluttidene forsvinner, fordi LRC bare lagrer når en linje starter — spilleren holder linjen oppe til neste linje begynner; all formatering forsvinner — fet, kursiv, farge, omriss og skygge; plasseringen forsvinner, og hver tekstblokk faller tilbake til standardplassen; karaoketimingen per stavelse forsvinner; den siste desimalen forsvinner, fordi klokken i LRC runder hvert tidsstempel til nærmeste 10 ms. Det er ikke den samme listen som LRC → JSON, fordi de to formatene beholder ulike ting.