Siirry pääsisältöön
SubtitleMatrix

Muunna VTT muotoon JSON

MuunnoksetWebVTT (VTT)
Tai liitä tekstityksen teksti

Mitä tämä muunnos muuttaa

1 asia pudotetaan tai vaatii päätöksen

  • Muotokohtainen sisältö

    sisältö, jonka lähdemuoto pitää alaotsikoidensa ulkopuolella (ei-alaotsikkolohkot, otsikkoteksti, alaotsikkokohtaiset asetukset, kommentoidut tapahtumat) — kohdemuodossa ei ole sille paikkaa

Tämä luettelo tulee näiden kahden muodon kyvykkyysmatriisista, ei lataamastasi tiedostosta. Tietty tiedosto voi menettää enemmän, jos se käyttää ominaisuuksia, jotka muoto sallii mutta matriisi ei mallinna.

Kun VTT muunnetaan JSONiksi, jokainen VTT-tiedoston alaotsikko kirjoitetaan uudelleen muotoon, jossa yksi alaotsikko on cues-taulukon alkio, jossa on start-, end- ja lines-kentät. Aikakoodi vaihtaa muotoa: VTT kirjoittaa sen muodossa 00:00:01.000, JSON puolestaan muodossa {"start": 1000, "end": 3500}. Sanoja ei muuteta, vaan VTT-tiedoston teksti siirretään JSONiin sellaisenaan.

Kun VTT muunnetaan JSONiksi, menetettävää on alaotsikoiden ulkopuolinen sisältö. Kun VTT muunnetaan JSONiksi, kohteen ulkopuolelle jäävät NOTE-, STYLE- ja REGION-lohkot sekä aikakoodin jälkeiset asetukset (align, position). Raportti näkyy VTT → JSON -ruudun yläpuolella ennen muunnosta, ja jokainen kohta lasketaan tiedostokohtaisesti.

Eräajossa VTT-tiedostot jonottuvat ja valmistuvat yksi kerrallaan; keskeytys toimii kesken JSON-muunnoksen ja tulokset pakataan yhdeksi ZIP-tiedostoksi. Mitään ei lähetetä palvelimelle: koko VTT-muunnos JSONiksi tapahtuu omalla koneellasi.

Esimerkit

Tavallinen VTT-tiedosto JSON-muunnoksessa

Syöte

WEBVTT

intro
00:00:01.000 --> 00:00:04.000
Hello there.

00:00:04.500 --> 00:00:08.000 align:start position:10%
Second line with <i>italics</i>.

Tuotos

{
  "version": 1,
  "cues": [
    {
      "id": "intro",
      "start": 1000,
      "end": 4000,
      "lines": [
        "Hello there."
      ]
    },
    {
      "start": 4500,
      "end": 8000,
      "lines": [
        {
          "text": "Second line with italics.",
          "tags": [
            {
              "kind": "italic",
              "start": 17,
              "end": 24
            }
          ]
        }
      ]
    }
  ]
}

Tästä VTT → JSON -tulosteesta puuttuvat muotokohtainen sisältö. Kaikki muu vastaa rivi riviltä.

Hankala VTT-tiedosto ja JSON-muunnos

Syöte

a stray comment line
cue-id-1
00:00:01.000 --> 00:00:02.000
No header, two lines before the timecode.

Tuotos

{
  "version": 1,
  "cues": [
    {
      "start": 1000,
      "end": 2000,
      "lines": [
        "No header, two lines before the timecode."
      ]
    }
  ]
}

VTT- ja JSON-tiedostot ovat usein sekaisin: ylimääräisiä rivejä, tyhjiä kenttiä ja aikoja, joita ei voi lukea. VTT-jäsennin ei kaadu vaan korjaa minkä voi ja kertoo loput raportissa, jonka JSON saa mukanaan.

Usein kysytyt kysymykset

Mitä aikaleimoille tapahtuu, kun VTT muunnetaan JSONiksi?

VTT kirjoittaa ajan muodossa 00:00:01.000: tunnit, minuutit, sekunnit ja millisekunnit pisteellä erotettuina. JSON käyttää muotoa {"start": 1000, "end": 3500}, eli kokonaislukuina millisekunteina. Tarkkuus on molemmilla puolilla sama, joten aika itse ei muutu – vain sen kirjoitusasu vaihtuu.

Mitä kaikkea VTT-tiedostosta jää pois JSONissa?

Kun VTT muunnetaan JSONiksi, menetettävää on alaotsikoiden ulkopuolinen sisältö. Kun VTT muunnetaan JSONiksi, kohteen ulkopuolelle jäävät NOTE-, STYLE- ja REGION-lohkot sekä aikakoodin jälkeiset asetukset (align, position). Alaotsikoiden teksti ja keskinäinen järjestys säilyvät.

Entä lihavointi, kursivointi ja väri – säilyvätkö ne VTT:stä JSONiin?

VTT merkitsee rivinsisäisen muotoilun muodossa <i>, <b> ja <font color> -tagit, ja JSON kirjoittaa sen muodossa merkkirajoina tallennetut tagit.

Miten VTT-tiedoston moniriviset alaotsikot käyttäytyvät JSONissa?

Monirivisen alaotsikon rivit erotetaan VTT:ssä tavallisella rivinvaihdolla, ja JSON merkitsee ne lines-taulukon erillisinä alkioina. JSON:ssa rivit ovat lines-taulukon alkioita, joten rakenne säilyy täsmälleen.

Mitä WebVTT:n NOTE- ja STYLE-lohkoille sekä align-asetuksille tapahtuu JSONissa?

WebVTT tallentaa alaotsikoiden ulkopuolelle NOTE-, STYLE- ja REGION-lohkot sekä jokaisen aikakoodin jälkeiset asetukset kuten align:start ja position:10%. JSON ei tunne niitä, joten ne jäävät pois; itse teksti ja ajoitus säilyvät.

Toimiiko paluumuunnos JSONista VTT:hen samalla tavalla?

Kyllä, mutta paluusuunnassa menetettävää on: väri, ääriviiva, varjo ja marginaalit, sijoittelu ruudulla ja karaoken ajoitus. Kun JSON muunnetaan VTT:ksi, väri, ääriviiva, varjo ja marginaalit jäävät pois, mutta lihavointi ja kursivointi säilyvät. Edestakainen matka VTT:stä JSONiin ja takaisin ei palauta sitä, mitä ensimmäinen muunnos pudotti.

Voinko muuntaa koko kauden VTT:stä JSONiin yhdellä ajolla?

Kyllä. Jono käsittelee VTT-tiedostot yksi kerrallaan, ajon voi keskeyttää milloin tahansa ja tulokset tulevat yhtenä ZIP-tiedostona. Jokainen JSON-tiedosto kirjoitetaan selaimessa, joten mitään ei lähetetä palvelimelle; yksittäinen tekstitystiedosto saa olla enintään 64 Mt.

Aiheeseen liittyvät työkalut