Lompat ke konten utama
SubtitleMatrix

Konversi JSON ke TXT

Atau tempel teks subtitle

Apa yang berubah dalam konversi ini

5 hal dihapus atau memerlukan keputusan

  • Waktu

    seluruh timeline (format keluaran tidak mencatat waktu sama sekali)

  • Pemformatan

    seluruh pemformatan (tebal, miring, warna, garis tepi, bayangan)

  • Posisi

    posisi di layar (setiap cue kembali ke posisi bawaan)

  • Karaoke

    timing karaoke (penyorotan per suku kata)

  • Pemisahan baris

    pemisahan baris (cue multi-baris akan disatukan menjadi satu baris)

Daftar ini berasal dari matriks kemampuan untuk kedua format ini, bukan dari file tertentu yang Anda muat. File tertentu bisa kehilangan lebih banyak jika memakai fitur yang diizinkan format tetapi tidak dimodelkan matriks.

Halaman ini mengubah JSON menjadi TXT. File bisa diseret ke jendela ini atau teksnya ditempel; hasilnya adalah versi TXT. Semua proses berjalan di peramban, tanpa unggahan dan tanpa akun.

Kedua format ini tidak menyimpan hal yang sama, dan perbedaannya bukan sekadar kosmetik: timing, gaya, posisi, karaoke, dan pemisah baris tidak punya tempat di TXT. Dokumen JSON di sini adalah model field: setiap cue punya `id`, `start`, dan `end` dalam milidetik, `lines` membawa `tags`, dan objek `styles` menyimpan tabel gaya. TXT hanya berisi teks, tanpa waktu maupun gaya. Daftar di atas berasal dari apa yang dapat diekspresikan masing-masing format, bukan dari file Anda, jadi jawabannya sama sebelum Anda memuat apa pun.

Anda bisa memasukkan satu file atau satu musim penuh; antrean bekerja berurutan, dan semua hasil turun bersama dalam satu ZIP.

Contoh

File JSON umum, dikonversi ke TXT

Masukan

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

Keluaran

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

Yang hilang pada keluaran ini: timing, gaya, posisi, karaoke, dan pemisah baris. Sisanya cocok baris demi baris.

Konversi yang sama pada input berantakan

Masukan

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

Keluaran

First.
Second.
Third.

Inilah jenis kerusakan yang ada pada file nyata — byte-order mark, koma yang hilang, nilai null, atau waktu yang tidak terbaca. Bandingkan dengan contoh rapi di atas untuk melihat apa yang dimaafkan parser.

Pertanyaan yang sering diajukan

Ke mana timecode JSON pergi?

TXT tidak punya waktu untuk diberikan: ekspor teks adalah kata-kata, bukan momen. Urutan baris JSON dipertahankan, jadi baris keempat puluh file Anda adalah baris keempat puluh di sini, tetapi tidak ada yang dalam keluaran mengatakan kapan bagian mana pun muncul di layar.

Apa yang terjadi pada tebal, miring, dan warna dari JSON ke TXT?

TXT tidak menyimpan gaya apa pun, jadi ketika JSON menjadi TXT semuanya hilang: `tags` yang dibawa baris sebuah cue, atau entri dari objek `styles` dokumen itu sendiri — tidak ada yang punya tempat, dan setiap baris ditulis sebagai teks biasa. Kata-katanya sendiri tidak disentuh.

Apa yang terjadi pada posisi di layar dari JSON ke TXT?

TXT tidak dapat menyatakan di mana subtitle digambar, jadi rujukan posisi yang dibawa setiap cue dibuang saat keluar dari JSON, dan setiap cue kembali ke posisi bawaan yang dipilih pemutar — umumnya bagian bawah bingkai dan di tengah.

Apa yang terjadi pada timing karaoke dari JSON ke TXT?

Timingnya hilang; kata-katanya tetap. Karaoke hidup di span karaoke yang dibawa cue JSON, yang menandai kapan setiap suku kata menyala, dan TXT tidak punya cara mencatat momen di dalam satu baris — jadi tandanya dilepas dan suku katanya tiba sebagai teks TXT biasa.

Apa yang terjadi pada cue JSON dua baris di TXT?

Kedua baris dari JSON ditulis, satu di bawah yang lain, tetapi file berhenti menyatakan bahwa keduanya satu kesatuan: TXT tidak dapat mengelompokkan baris menjadi satu cue, sehingga membacanya kembali akan menghasilkan dua subtitle padahal file sumber punya satu. Itu penting bila pemeriksaan ejaan atau alat retime akan membaca file itu nanti.

Seperti apa keluarannya ketika JSON menjadi TXT?

Keluaran TXT disusun seperti TXT — tanpa nomor cue dan tanpa timecode — satu baris teks per baris subtitle. Cue yang di JSON ditulis `4126` menjadi baris teks di TXT, dalam urutan yang sama, dan tidak ada kata yang berubah.

Apakah cue JSON mempertahankan urutannya di keluaran TXT?

Ya. Cue keluar dalam urutan waktu mulai, paling awal dulu, karena semua format di sini mengharapkan urutan itu dan pemutar membacanya begitu. File JSON yang cue-nya tidak berurutan akan dirapikan di keluaran TXT; itu perubahan struktur yang disengaja, bukan perubahan isi.

Bisakah TXT dikonversi balik ke JSON?

Ya, dan arah itu punya daftarnya sendiri: mengonversi TXT ke JSON menghilangkan timing. Daftar itu berbeda dari daftar di atas karena kedua format menyimpan hal yang berbeda.

Apakah keluaran TXT mempertahankan encoding file JSON?

Tidak — keluarannya UTF-8, dengan akhir baris Unix dan tanpa byte-order mark, apa pun yang dipakai file JSON. File yang datang dalam UTF-16 atau encoding satu-byte Windows didekode saat masuk (panel hasil memberi tahu bila itu terjadi); yang keluar selalu TXT UTF-8 yang sama.

Alat terkait