Konversi SRT ke JSON
Atau tempel teks subtitle
Apa yang berubah dalam konversi ini
Tidak ada yang hilang ke arah ini — setiap fitur format sumber punya tempat di format tujuan.
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 file subtitle menjadi data terstruktur: dokumen JSON yang mencantumkan setiap cue beserta waktu mulai dan selesainya, juga teksnya. Skemanya milik situs ini dan sengaja dibuat kecil — satu nomor versi dan sebuah array cues, dengan waktu berupa bilangan bulat milidetik, bukan timecode. Tidak ada bagian yang bergantung pada pustaka tertentu, dan tidak ada yang perlu ditebak.
Milidetik dipakai karena langsung berguna tanpa perlu diurai. Resolusi terhalus yang disimpan format subtitle mana pun di sini adalah satu milidetik, dan bilangan bulat tidak bisa salah baca karena konvensi koma atau titik. Baris tanpa pemformatan berupa string biasa; baris yang membawa miring, tebal, atau warna menjadi objek berisi teks plus tag yang berlaku, masing-masing mencatat jenisnya dan karakter mana yang dicakupnya.
Hasilnya adalah file yang bisa dimuat ke dalam skrip, di-diff, atau dimasukkan ke kontrol versi, dan mengonversinya kembali mengembalikan subtitle Anda. Seperti semua alat di sini, pekerjaannya berlangsung di peramban Anda.
Contoh
File SRT biasa, dikonversi ke JSON
Masukan
1
00:00:01,000 --> 00:00:03,500
Hello there.
2
00:00:03,500 --> 00:00:06,000
<i>Whispering</i> now.
And a second line.
3
00:00:06,000 --> 00:00:09,250
<b>Bold</b> statement.
Keluaran
{
"version": 1,
"cues": [
{
"id": "1",
"start": 1000,
"end": 3500,
"lines": [
"Hello there."
]
},
{
"id": "2",
"start": 3500,
"end": 6000,
"lines": [
{
"text": "Whispering now.",
"tags": [
{
"kind": "italic",
"start": 0,
"end": 10
}
]
},
"And a second line."
]
},
{
"id": "3",
"start": 6000,
"end": 9250,
"lines": [
{
"text": "Bold statement.",
"tags": [
{
"kind": "bold",
"start": 0,
"end": 4
}
]
}
]
}
]
}
Tidak ada yang hilang di sini: bandingkan kedua sisi baris demi baris.
Konversi yang sama pada input yang berantakan
Masukan
1
0:00:01,00 --> 0:00:03,500
<B>Bold</B> and <I>italic</I>.
2
00:00:03,500 --> 00:00:06,000
3
00:00:08,000 --> 00:00:09,000
Last one.
Keluaran
{
"version": 1,
"cues": [
{
"id": "1",
"start": 1000,
"end": 3500,
"lines": [
{
"text": "Bold and italic.",
"tags": [
{
"kind": "bold",
"start": 0,
"end": 4
},
{
"kind": "italic",
"start": 9,
"end": 15
}
]
}
]
},
{
"id": "2",
"start": 3500,
"end": 6000,
"lines": []
},
{
"id": "3",
"start": 8000,
"end": 9000,
"lines": [
"Last one."
]
}
]
}
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
Skema apa yang dipakai keluaran JSON dari konversi SRT?
Skema milik situs ini, dan contohnya ada di panel di atas: satu nomor versi, lalu array cue. Setiap cue punya id, start dan end dalam milidetik, serta daftar lines. Tidak ada metadata tersembunyi dan tidak ada ketergantungan pada format pihak ketiga.
Mengapa konversi SRT ke JSON memakai milidetik, bukan timecode?
Agar file bisa dipakai tanpa diurai lebih dulu. Menjumlahkan, membandingkan, atau mengurutkan dua waktu menjadi operasi angka biasa pada bilangan bulat, sementara string seperti 00:00:01,000 harus didekode dulu dan bisa didekode dengan salah.
Bagaimana pemformatan SRT diwakili di dalam JSON?
Baris biasa tetap string. Baris yang membawa pemformatan menjadi objek berisi teks dan array tags, dan setiap tag menyebut jenisnya serta posisi awal dan akhir di dalam teks itu. Konversi JSON kembali dan pemformatannya ditulis lagi.
Apakah aman menyunting hasil SRT ke JSON dengan tangan?
Aman, dan konversi balik adalah pemeriksanya. Jika file berhasil diurai, konverter akan menghasilkan cue dengan waktu yang Anda berikan — jadi bolak-balik lewat konverter adalah cara cepat menemukan salah ketik.
Bisakah saya memuat JSON hasil konversi SRT ini ke dalam skrip?
Itulah tujuannya. Baca array cues, ambil start dan end sebagai angka, lalu gabungkan lines — sebuah baris berupa string atau objek yang teksnya ada di kolom text.