Saltar al contenido principal
SubtitleMatrix

Convertir JSON a VTT

O pega el texto de los subtítulos

Qué cambia esta conversión

3 cosas se descartan o requieren una decisión

  • Estilo

    todo el estilo excepto negrita y cursiva (color, contorno, sombra, márgenes)

  • Posición

    la posición en pantalla (cada bloque vuelve a la posición predeterminada)

  • Karaoke

    la sincronización karaoke (resaltado por sílaba)

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 convierte JSON en VTT. Arrastra un archivo —o pega el texto— y recuperas la versión VTT. La conversión se ejecuta por completo en el navegador, así que no se sube nada y no se necesita cuenta.

Los dos formatos no guardan lo mismo, y la diferencia no es cosmética: el estilo, la posición y el karaoke no tienen dónde ir en VTT. La lista de arriba proviene de lo que cada formato puede expresar, no de tu archivo, así que es idéntica antes de cargar nada.

Un archivo vale, y una temporada entera también: la cola los trata en orden y los resultados bajan juntos en un solo ZIP.

Ejemplos

Un archivo JSON típico, convertido a VTT

Entrada

{
  "version": 1,
  "title": "Fixture: typical",
  "fps": 25,
  "styles": {
    "Default": {
      "name": "Default",
      "fontFamily": "Arial",
      "fontSize": 20,
      "primaryColor": "#FFFFFF",
      "bold": false,
      "italic": false
    }
  },
  "generator": "subtitlematrix fixtures",
  "cues": [
    {
      "id": "1",
      "start": 0,
      "end": 2000,
      "lines": [
        "Hello world.",
        "Second line."
      ],
      "style": "Default",
      "position": {
        "x": 100,
        "y": 200,
        "align": "center"
      }
    },
    {
      "id": "2",
      "start": 2500,
      "end": 4000,
      "lines": [
        "Plain line.",
        {
          "text": "Styled line.",
          "tags": [
            {
              "kind": "italic",
              "start": 0,
              "end": 6
            }
          ]
        }
      ]
    },
    {
      "id": "3",
      "start": 4500,
      "end": 6000,
      "lines": [
        "Roger: I am here."
      ],
      "speaker": "Roger"
    }
  ]
}

Resultado

WEBVTT

1
00:00:00.000 --> 00:00:02.000
Hello world.
Second line.

2
00:00:02.500 --> 00:00:04.000
Plain line.
<i>Styled</i> line.

3
00:00:04.500 --> 00:00:06.000
Roger: I am here.

Se pierden el estilo, la posición y el karaoke. El resto coincide línea por línea.

La misma conversión con una entrada difícil

Entrada

[
    { "start": 0, "end": 1000, "lines": ["First."] },
    { "start": 1000, "end": 2000, "text": "Second." },
    "not an object",
    { "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]

Resultado

WEBVTT

00:00:00.000 --> 00:00:01.000
First.

00:00:01.000 --> 00:00:02.000
Second.

00:00:02.000 --> 00:00:03.000
Third.

Estos son los daños 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

¿Qué estilo se conserva de JSON a VTT?

El énfasis, escrito en el texto como etiquetas: la negrita, la cursiva, el subrayado y un color salen como `<b>`, `<i>`, `<u>` y `<font color="…">`, que los navegadores aplican. Lo que el archivo VTT no llevará es la tabla de estilos en la que se apoya JSON: la fuente, su tamaño, el contorno, la sombra y los márgenes se van, y la página que incrusta los subtítulos los estiliza con su propio CSS.

¿Qué pasa con la posición en pantalla al convertir JSON a VTT?

VTT no puede decir dónde se dibuja un subtítulo, así que la posición guardada con cada bloque se descarta al salir de JSON, y cada bloque vuelve a la posición predeterminada que elige el reproductor: el borde inferior del fotograma, centrado, en la mayoría de los casos.

¿Qué sucede con los tiempos de karaoke al pasar JSON a VTT?

El tiempo se va; las palabras quedan. El karaoke vive en los tramos de karaoke que lleva un bloque JSON, que marcan cuándo se ilumina cada sílaba, y VTT no tiene forma de registrar un instante dentro de una línea, así que las marcas desaparecen y las sílabas llegan como texto normal de VTT.

¿Qué aspecto tiene la salida cuando JSON se convierte en VTT?

Como VTT: una línea de identificador opcional encima de cada bloque, que ningún reproductor muestra. Cada bloque JSON se convierte en un bloque VTT, en el mismo orden y con el mismo texto.

¿Son exactos los tiempos de JSON en el archivo VTT?

Sí, al milisegundo, que es lo más fino que llega cualquiera de los dos formatos. JSON escribe un instante como `4126` y VTT escribe el mismo instante como `00:00:04.126`; nada se redondea ni se desplaza, y un bloque que estaba en pantalla 2,9 segundos sigue estándolo.

¿Cómo sale en VTT un bloque JSON de dos líneas?

Como dos líneas, una debajo de la otra. La pareja se mantiene: las dos líneas JSON siguen perteneciendo a un mismo subtítulo en la salida VTT, y el reproductor las muestra juntas.

¿Conservan los bloques JSON su orden en la salida VTT?

Sí, y de paso se ordenan por hora de inicio: primero los más tempranos, que es lo que esperan todos los formatos de este sitio y cómo los leen los reproductores. Si tu archivo JSON traía los bloques desordenados, la salida VTT los devuelve a su orden; eso cambia la estructura del archivo, no su contenido, y es deliberado.

¿Puedo convertir el VTT de vuelta a JSON?

Sí, y esa dirección tiene su propia lista: convertir VTT en JSON pierde el contenido propio del formato. La lista es distinta de la de arriba porque los dos formatos guardan cosas distintas.

¿Respeta la salida VTT la codificación del archivo JSON?

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

Herramientas relacionadas