Saltar al contenido principal
SubtitleMatrix

Convertir LRC a JSON

O pega el texto de los subtítulos

Opciones

Se usa cuando el origen no tiene horas de fin (texto plano, LRC). La línea de tiempo del resultado se genera aquí en lugar de convertirse, así que este número es el que obtienes.

Qué cambia esta conversión

1 cosa se descarta o requiere una decisión

  • Tiempos

    las horas de fin de los bloques: el origen no las registra, así que las del resultado se generarán en lugar de convertirse

Esta lista proviene de la matriz de capacidades de estos dos formatos, no del archivo concreto que has cargado. Un archivo específico puede perder más si usa características que el formato permite pero que la matriz no modela.

Esta página pasa un archivo LRC de letras a JSON. Arrastra el archivo o pega el texto y recibes el documento; la conversión corre en el navegador, sin subir nada y sin registrarte.

El único dato que se pierde es la sincronización del final. LRC solo registra el inicio de cada línea; el JSON necesita un fin para cada bloque, así que se toma el inicio de la línea siguiente y la última línea recibe la duración que indiques. El resultado lo informa. Las líneas que comparten una marca entre corchetes se convierten en un bloque con varias entradas en lines, y los inicios se conservan al milisegundo en el campo start.

Un archivo o una temporada entera: la cola procesa en orden y entrega todos los resultados en un solo ZIP.

Ejemplos

Un archivo LRC típico convertido a JSON

Entrada

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

Resultado

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

En esta salida se pierde: sincronización. Todo lo demás coincide línea por línea.

La misma conversión con una entrada difícil

Entrada

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

Resultado

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

Es el tipo de daño que traen los archivos reales: finales de línea mezclados, espacios sueltos, campos vacíos. Compáralo con el ejemplo limpio de arriba para ver qué perdona el analizador.

Preguntas frecuentes

¿Cómo recibe un fin de bloque cada línea LRC al convertirla a JSON?

LRC no guarda finales: solo el inicio de cada línea. El JSON necesita start y end para cada bloque, así que el fin se toma del inicio de la línea siguiente, y la última línea recibe la duración que indiques en la página. El resultado lo informa, para que no confundas un fin copiado con uno que estaba en el archivo.

¿Cómo se ve la salida cuando un LRC se convierte en JSON?

Como JSON: un arreglo de objetos de bloque, cada uno con su id, su start y su end. Cada línea LRC se convierte en un bloque JSON, en el mismo orden y con el mismo texto.

¿Qué ocurre con dos líneas LRC con la misma marca al pasar a JSON?

Se convierten en un solo bloque con dos entradas en el arreglo lines. En LRC esa marca compartida significa que el original y su traducción van juntos, y la salida respeta esa intención en lugar de crear dos bloques para el mismo instante.

¿Se conserva el orden de las líneas LRC en la salida JSON?

Sí, y de paso se ordenan por hora de inicio: primero la más temprana, que es lo que esperan todos los formatos de este sitio y cómo los leen los reproductores. Si tu archivo LRC traía las líneas desordenadas, la salida JSON las devuelve al orden; es un cambio en la estructura del archivo, no en su contenido, y es deliberado.

¿Puedo convertir el JSON resultante de vuelta a LRC?

Sí, y esa dirección tiene su propia lista: al convertir JSON a LRC se pierden el fin de cada bloque, los estilos y las posiciones. Esa lista es distinta de la de arriba porque los dos formatos guardan cosas diferentes.

¿La salida JSON mantiene la codificación del archivo LRC?

No: la salida es UTF-8, con finales de línea Unix y sin marca de orden de bytes, sea cual sea la codificación del archivo LRC. Un archivo que llega en UTF-16 o en una codificación mono byte de Windows se decodifica al entrar (el panel de resultados lo indica cuando ocurre); lo que sale es siempre el mismo JSON en UTF-8.

Herramientas relacionadas