Naar de hoofdinhoud
SubtitleMatrix

JSON naar TXT

Of plak ondertiteltekst

Wat deze conversie verandert

5 dingen vervallen of vragen om een beslissing

  • Timing

    de hele tijdlijn (het uitvoerformaat legt helemaal geen tijden vast)

  • Opmaak

    alle opmaak (vet, cursief, kleur, contour, schaduw)

  • Positionering

    positionering op het scherm (elk blok keert terug naar de standaardpositie)

  • Karaoke

    karaoke-timing (markering per lettergreep)

  • Regeleinden

    regeleinden (blokken van meerdere regels worden tot één regel samengevoegd)

Deze lijst komt uit de capaciteitenmatrix voor deze twee formaten, niet uit het bestand dat je hebt geladen. Een specifiek bestand kan meer verliezen wanneer het kenmerken gebruikt die het formaat toestaat maar de matrix niet modelleert.

Deze pagina zet JSON om naar TXT. Je sleept een bestand naar het vak of plakt de tekst erin, en je krijgt de TXT-versie terug. De conversie draait volledig in je browser: er wordt niets geüpload en je hebt geen account nodig.

De twee formaten bewaren niet hetzelfde, en dat verschil is niet cosmetisch: timing, stijl, positie, karaoke en regelbreuken hebben in TXT geen plek. De lijst hierboven komt uit wat beide formaten elk kunnen uitdrukken, niet uit jouw bestand, dus het antwoord is hetzelfde vóór je iets laadt.

Wat overblijft is de tekst zelf: elke regel van een blok wordt één regel in het tekstbestand. Eén bestand kan, een heel seizoen ook: de wachtrij werkt ze in volgorde af en levert één ZIP op.

Voorbeelden

Een typisch JSON-bestand, omgezet naar TXT

Invoer

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

Uitvoer

Hello world.
Second line.
Plain line.
Styled line.
Roger: I am here.

In deze uitvoer gaan timing, stijl, positie, karaoke en regelbreuken verloren. Al het andere komt regel voor regel overeen.

Dezelfde conversie op een rommelige invoer

Invoer

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

Uitvoer

First.
Second.
Third.

Zo zien echte bestanden er vaak uit: gemengde regeleinden, losse spaties, lege velden. Vergelijk het met het nette voorbeeld hierboven om te zien wat de parser vergeeft.

Veelgestelde vragen

Waar zijn de JSON-tijdcodes in de TXT-uitvoer gebleven?

TXT heeft er geen om te geven: een tekstexport bestaat uit woorden, niet uit momenten. De volgorde van de JSON-regels blijft behouden, dus de veertigste regel van jouw bestand is hier de veertigste regel, maar niets in de uitvoer zegt wanneer iets in beeld komt.

Wat gebeurt er met vet, cursief en kleur van JSON naar TXT?

TXT bewaart geen enkele stijl, dus alles gaat weg: de tags van een regel en de items in het styles-object van het document hebben geen landingsplek. Elke regel wordt als platte tekst geschreven; de woorden zelf blijven ongewijzigd.

Wat gebeurt er met de positie op het scherm van JSON naar TXT?

TXT kan niet zeggen waar een ondertitel wordt getekend. De positie die bij elk blok is opgeslagen, valt weg bij het verlaten van JSON, en elk blok keert terug naar de standaardpositie van de speler: meestal onderaan en gecentreerd.

Wat gebeurt er met karaoketiming van JSON naar TXT?

De timing verdwijnt, de woorden blijven. Karaoke zit in de spans die een JSON-blok meedraagt en die het oplichten van elke lettergreep markeren; TXT kan geen moment binnen een regel opslaan, dus de markeringen gaan eraf en de lettergrepen komen als gewone tekst binnen.

Wat gebeurt er met een JSON-blok van twee regels in TXT?

Beide regels worden geschreven, de ene onder de andere, maar het bestand zegt niet meer dat ze bij elkaar horen: TXT kan regels niet tot één blok groeperen. Bij het teruglezen zou je dus twee ondertitels krijgen waar je JSON-bestand er één had. Dat maakt uit als een vertaalslag of een hertimingstool het bestand daarna leest.

Hoe ziet de uitvoer eruit als JSON TXT wordt?

Als TXT: geen bloknummers en geen tijdcodes, maar één regel tekst per regel ondertitel. Elk JSON-blok wordt één TXT-blok, in dezelfde volgorde en met dezelfde tekst.

Blijft de volgorde van JSON-blokken in de TXT-uitvoer behouden?

Ja, en ze worden onderweg op starttijd gesorteerd: vroegste eerst. Stond jouw JSON-bestand niet in volgorde, dan zet de TXT-uitvoer de regels weer netjes achter elkaar. Dat is een structurele ingreep, geen inhoudelijke, en ze is bewust.

Kan ik de TXT terug naar JSON omzetten?

Ja, en die richting heeft een eigen lijst: TXT naar JSON verliest timing. Die lijst verschilt van de lijst hierboven, omdat beide formaten andere dingen bewaren.

Blijft de tekencodering van het JSON-bestand behouden in de TXT-uitvoer?

Nee. De uitvoer is UTF-8 met Unix-regeleinden en zonder BOM, wat het JSON-bestand ook gebruikte. Een bestand in UTF-16 of in een Windows-codering met één byte wordt bij het inlezen gedecodeerd (het resultaatpaneel zegt het als dat gebeurt); wat eruit komt is altijd dezelfde UTF-8-TXT.

Gerelateerde hulpmiddelen