Lompat ke konten utama
SubtitleMatrix

Konversi VTT ke JSON

Konversi formatWebVTT (VTT)
Atau tempel teks subtitle

Apa yang berubah dalam konversi ini

1 hal dihapus atau memerlukan keputusan

  • Konten khusus format

    konten yang disimpan format sumber di luar cue-nya (blok non-cue, teks header, pengaturan per cue, event yang dikomentari) — format tujuan tidak punya tempat untuknya

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.

Di halaman ini file WebVTT diubah menjadi dokumen JSON yang menjelaskan subtitle yang sama. Skemanya milik situs ini dan sengaja dibentuk mengikuti model cue yang dipakai seluruh konverter: satu nomor versi, lalu satu entri per cue berisi pengenal, waktu mulai dan selesai dalam milidetik bilangan bulat, serta baris-baris berupa teks dengan rentang inline.

Waktu tetap berupa angka, bukan timecode, dan baris cue tetap terpisah alih-alih digabung, sehingga hasilnya dimaksudkan dibaca skrip Anda sendiri, bukan pemutar video. Pengenal cue dipertahankan: berbeda dari SRT, skema ini punya kolom id, jadi nama seperti intro di file VTT tetap intro di hasil JSON.

Hampir semua yang disimpan WebVTT bisa dinyatakan dalam bentuk itu, karena itulah laporan di atas pendek. Yang tidak punya kunci di JSON adalah yang hidup di luar cue: header WEBVTT beserta komentarnya, blok NOTE, STYLE, dan REGION, serta pengaturan setelah stempel waktu seperti align:start. Semuanya dibuang, tidak diselipkan ke kolom cadangan, dan laporannya menghitung berapa banyak yang dimiliki file Anda sebelum Anda mengunduh.

Masukan berantakan tidak masalah: header hilang, akhir baris Windows, baris nyasar, atau byte-order mark semuanya dibaca tanpa keluhan. Satu file atau satu musim, hasil dalam satu ZIP.

Contoh

File VTT biasa, dikonversi ke JSON

Masukan

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

Keluaran

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

Yang hilang pada hasil ini: isi khas format. Sisanya sama baris demi baris.

Konversi yang sama pada input yang berantakan

Masukan

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

Keluaran

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

Ini jenis kerusakan yang nyata pada file asli — akhir baris campuran, spasi berlebih, kolom kosong. Bandingkan dengan contoh rapi di atas untuk melihat apa yang dimaafkan parser.

Pertanyaan yang sering diajukan

Seperti apa JSON hasil konversi VTT?

Dokumen dengan nomor versi dan array cues; setiap cue punya id, start dan end dalam milidetik, serta lines. Baris polos berupa string, sedangkan baris yang membawa pemformatan berupa objek dengan daftar span. Bentuk lengkapnya ada di panel contoh di atas.

Mengapa daftar yang hilang di halaman VTT ke JSON begitu pendek?

Karena hampir semua yang disimpan WebVTT punya padanan dalam skema ini — waktu, teks, pemisah baris, pengenal cue, dan rentang pemformatan. Yang tidak punya kunci hanya yang berada di luar cue, seperti header dan blok NOTE, STYLE, serta REGION.

Apakah pengenal cue VTT dipertahankan di JSON?

Ya. Berbeda dari SRT yang mengganti pengenal dengan nomor berurutan, skema JSON di sini punya kolom id, jadi pengenal seperti intro tersimpan apa adanya dan bisa dipakai untuk merujuk cue tertentu.

Apakah waktu VTT berubah saat menjadi JSON?

Tidak. WebVTT menyimpan milidetik dan skema ini juga memakai milidetik bilangan bulat, jadi 00:00:01.234 menjadi 1234 tanpa pembulatan atau pergeseran. Angka itu bisa langsung dipakai dalam perhitungan.

Apakah aman memproses transkrip rahasia lewat halaman VTT ke JSON?

Aman. File tidak dikirim ke mana pun: penguraian dan penulisan terjadi di tab peramban, dan setelah halaman termuat konversi berjalan tanpa jaringan. Tidak ada akun, tidak ada penyimpanan di sisi server.

Alat terkait