Konversi xml ke srt

Konverter online gratis XML ke SRT

Konversikan caption XML menjadi subtitle SRT yang kompatibel dan dapat diedit, lalu verifikasi timing dan formatting yang hilang.

Konversi XML ke SRT online - gratis

Uploading…
File yang dipilih melebihi batas total 9 MB. Pilih file yang lebih sedikit atau lebih kecil.

File Anda diproses secara instan dan dihapus segera setelah Anda mengunduhnya.

Cara kerjanya

  1. 1/3

    Unggah file .xml Anda

    Klik untuk memilih file yang ingin Anda konversi, atau cukup seret dan lepas file ke area yang ditentukan.

  2. 2/3

    Jalankan konversi .xml ke .srt

    Setelah file berhasil diunggah, klik konversi saat Anda siap.

  3. 3/3

    Unduh file .srt hasil konversi

    Hasil konversi siap untuk diunduh.

Bagaimana mengkonversi xml ke srt berkas

Editor video, pemutar media, atau layanan caption mungkin memerlukan SRT ketika caption diekspor sebagai XML dari sistem lain. Mengonversi file membuat subtitle portabel dan dapat diedit, tetapi hanya jika XML berisi teks cue dan data waktu yang dapat diidentifikasi.

Apa itu format XML

XML adalah bahasa markup terstruktur, bukan satu format subtitle. Sistem caption dan transkrip menggunakan schema XML yang berbeda, termasuk TTML/DFXP, EBU-TT, Final Cut Pro XML, dan ekspor proprietary dari software editing, broadcast, dan speech-to-text.

File caption XML dapat menyimpan cue dalam elemen seperti <p begin="00:00:01.000" end="00:00:04.000">, atau menggunakan atribut bernama start, end, in, out, atau duration. Final Cut Pro XML dapat mendeskripsikan project editing dan bukan berisi cue subtitle yang dapat langsung digunakan, sehingga mungkin memerlukan ekspor dari aplikasi asli sebelum dikonversi.

XML tidak memiliki struktur subtitle universal. Mengganti nama captions.xml menjadi captions.srt tidak mengonversinya; software harus mengidentifikasi field waktu, mengekstrak teks yang terlihat, dan menulis ulang data dalam sintaks SRT.

Apa itu format SRT

SRT adalah format teks biasa yang didukung oleh sebagian besar video player, editor non-linear, media server, dan platform subtitle. Setiap cue berisi nomor berurutan, waktu mulai dan selesai, teks subtitle, serta baris kosong:

1
00:00:01,000 --> 00:00:04,000
Example caption.

Timestamp SRT menggunakan koma sebelum milidetik dan bentuk HH:MM:SS,mmm. Subtitle XML dapat menggunakan detik desimal, titik, nomor frame, waktu clock, tick, atau durasi ISO 8601. SRT berukuran kecil, mudah diedit di text editor, dan kompatibel secara luas, tetapi memiliki metadata dan styling yang jauh lebih sedikit dibandingkan sebagian besar schema caption XML.

Konversi XML yang dikenali dengan Subtitle Edit

  1. Buat backup XML sumber.
  2. Install versi desktop terbaru Subtitle Edit, yaitu subtitle editor open-source untuk Windows.
  3. Buka file melalui File → Open. Subtitle Edit dapat mengimpor beberapa format subtitle dan caption standar, tetapi dukungan bergantung pada schema XML tertentu.
  4. Periksa cue yang diimpor di subtitle grid dan timeline. Bandingkan cue pertama, tengah, dan terakhir dengan sumber atau video, lalu periksa line break dan karakter non-Latin.
  5. Ekspor melalui File → Save as, pilih SubRip (*.srt), dan pilih encoding UTF-8 jika dialog menyediakan opsi encoding.

Jika file terbuka sebagai XML biasa, tidak mengimpor cue, atau menghasilkan waktu yang salah, kemungkinan file tersebut menggunakan schema yang tidak didukung atau khusus untuk project tertentu. Memeriksa XML di text editor dapat menunjukkan apakah file tersebut berisi teks caption dan data waktu yang sebenarnya; jangan menganggap file yang berhasil dibuka sebagai bukti bahwa konversinya benar.

Gunakan converter online untuk file yang terdokumentasi dan tidak sensitif

Layanan caption online seperti Happy Scribe dan VEED mendukung format subtitle dan caption tertentu, tetapi dukungan XML berbeda-beda menurut produk dan mungkin terbatas pada schema tertentu seperti TTML. Pastikan layanan tersebut secara eksplisit mencantumkan jenis XML yang tepat sebelum mengunggahnya. Jangan mengunggah caption rahasia, belum dirilis, atau yang memuat informasi identitas pribadi kecuali pemrosesan oleh pihak ketiga diizinkan.

Situs XML-to-text atau XML-to-SRT generik sering memilih elemen yang salah, mengabaikan namespace, menganggap milidetik sebagai detik, atau menghasilkan file kosong. Unduh hasilnya, buka di subtitle editor, dan bandingkan waktunya dengan video sebelum menggunakannya.

Konversi schema custom yang dapat diprediksi dengan Python

Script sesuai digunakan ketika setiap cue memiliki nilai start, end, dan teks yang dapat dikenali. Contoh ini mendukung waktu clock dan detik numerik, serta nilai duration:

import re
import sys
import xml.etree.ElementTree as ET

def seconds(value):
    value = value.strip().replace(',', '.')
    if re.fullmatch(r'\d+(?:\.\d+)?', value):
        return float(value)
    match = re.fullmatch(r'(\d+):(\d{2}):(\d{2})(?:\.(\d+))?', value)
    if not match:
        raise ValueError(f'Unsupported time: {value}')
    h, m, s, fraction = match.groups()
    return int(h) * 3600 + int(m) * 60 + int(s) + float('0.' + (fraction or '0'))

def srt_time(value):
    ms = max(0, round(value * 1000))
    h, remainder = divmod(ms, 3600000)
    m, remainder = divmod(remainder, 60000)
    s, ms = divmod(remainder, 1000)
    return f'{h:02}:{m:02}:{s:02},{ms:03}'

root = ET.parse(sys.argv[1]).getroot()
cues = []
for element in root.iter():
    start = element.get('start') or element.get('begin')
    end = element.get('end')
    duration = element.get('duration') or element.get('dur')
    if not start or (not end and not duration):
        continue
    start = seconds(start)
    end = seconds(end) if end else start + seconds(duration)
    text = ' '.join(''.join(element.itertext()).split())
    if text and end > start:
        cues.append((start, end, text))

cues.sort()
with open(sys.argv[2], 'w', encoding='utf-8', newline='\n') as output:
    for number, (start, end, text) in enumerate(cues, 1):
        output.write(f'{number}\n{srt_time(start)} --> {srt_time(end)}\n{text}\n\n')

Jalankan dengan python xml_to_srt.py captions.xml captions.srt. Ubah nama atribut dan pemilihan cue sesuai dengan schema sumber. Script ini tidak menginterpretasikan timecode SMPTE berbasis frame, durasi ISO 8601, tick, unit milidetik yang tidak terdokumentasi, namespace XML yang memerlukan qualified lookup, atau elemen styling dan speaker yang terpisah. Script ini juga menggabungkan line break yang disematkan menjadi spasi; ganti baris pemrosesan teks tersebut jika struktur baris harus dipertahankan.

Periksa timing, encoding, dan metadata yang hilang

  • Pastikan basis waktu sebelum konversi. Jumlah frame memerlukan frame rate sumber; nilai numerik dapat menyatakan detik, milidetik, atau tick.
  • Konversi durasi relatif dengan benar: cue dengan begin dan dur berakhir pada begin + dur.
  • Periksa cue yang saling tumpang tindih, cue berdurasi nol, waktu yang terbalik, teks yang hilang, cue duplikat, dan beberapa track bahasa. SRT reader menangani kasus-kasus ini secara tidak konsisten.
  • Pertahankan character encoding yang dideklarasikan XML saat membaca sumber dan simpan SRT sebagai UTF-8. Periksa karakter beraksen dan script non-Latin setelah ekspor.
  • Perkirakan hilangnya fitur khusus XML seperti positioning, warna, font, metadata speaker, timing karaoke, urutan baca, dan styling baris yang kompleks. Buat ulang label speaker atau formatting penting secara manual.
  • Buka SRT yang dihasilkan di Subtitle Edit atau subtitle editor lainnya dan preview bersama video. Periksa cue pertama dan terakhir, perubahan scene, line break, serta sinkronisasi sebelum dikirimkan.

XML vs SRT: perbandingan format

Bagaimana format XML dan SRT dibandingkan pada properti yang paling penting untuk konversi ini.

Perbandingan format file XML dan SRT
Properti .XML Extensible Markup Language .SRT SubRip Subtitle
Standar terbuka Ya Sebagian terbuka
Kompresi Tanpa kompresi Tanpa kompresi
Ukuran file umum Kecil Sangat kecil
Terbuka di browser web Ya, secara native Sebagian
Pengeditan lanjutan Mudah Mudah
Dukungan metadata Dasar Dasar
Dapat dibaca teks biasa Ya Ya
Paling cocok untuk Pertukaran data Berbagi dan distribusi
Diperkenalkan 1998 1997
Pengembang W3C Unknown / SubRip community
Tipe MIME application/xml application/x-subrip

Pertanyaan yang sering diajukan

Apakah konverter XML ke SRT gratis?

Ya, mengonversi XML ke SRT di 101convert.com sepenuhnya gratis. Tidak perlu registrasi, alamat email, atau instalasi. Jika Anda membutuhkan batas ukuran file yang lebih besar atau ingin mengonversi lebih banyak file sekaligus, lihat paket kami.

Seberapa besar file XML yang bisa saya unggah?

Anda dapat mengunggah file XML hingga 100 MB dan mengonversi hingga 100 file sekaligus dalam satu batch.

Apa yang terjadi pada file yang saya unggah?

File diproses secara otomatis dan dihapus dari server kami beberapa menit setelah konversi. Kami tidak pernah melihat atau membagikan file Anda.

Apakah saya perlu menginstal perangkat lunak untuk mengonversi XML ke SRT?

Tidak. Konversi XML ke SRT berjalan sepenuhnya online di browser dan berfungsi di Windows, Mac, Linux, Android, dan iPhone.

Konversi gagal?

Dalam sebagian besar kasus, penyebabnya adalah format file yang tidak sesuai. Unggah file XML yang valid untuk konversi XML ke SRT ini. Terkadang masalah juga dapat terjadi di pihak kami. Kami menganalisis kegagalan konversi yang berulang dan menonaktifkan atau memperbaiki konverter jika menemukan kerusakan.

Apakah format dan posisi caption XML akan hilang saat dikonversi ke SRT?

Biasanya, ya: SRT mempertahankan nomor cue, waktu mulai dan selesai, serta teks subtitle, tetapi gaya XML, warna, metadata pembicara, posisi di layar, dan atribut lainnya mungkin diratakan atau dihapus. Pemisah baris dasar sering kali tetap dipertahankan, tergantung format caption XML.

Apakah waktu subtitle tetap akurat saat mengonversi XML ke SRT?

Waktu dapat tetap akurat jika XML menggunakan timecode yang didukung dan basis waktu yang benar, tetapi waktu berbasis frame atau waktu khusus format mungkin perlu dikonversi. Ketidaksesuaian frame rate dapat menggeser waktu mulai dan selesai cue, sementara cue yang tumpang tindih atau tidak valid mungkin diubah atau ditolak.

Mengapa konversi subtitle XML saya menghasilkan cue SRT yang hilang atau kosong?

XML generik tidak otomatis merupakan format caption, sehingga konversi dapat gagal jika file menggunakan struktur caption, namespace, kolom waktu, atau elemen teks yang tidak didukung. XML harus berisi entri caption yang dapat dikenali, dengan teks yang dapat dibaca serta waktu mulai dan selesai yang valid.

Bisakah saya mengonversi SRT kembali ke XML asli tanpa kehilangan informasi?

Biasanya tidak, karena SRT tidak dapat merepresentasikan semua data caption XML seperti gaya terperinci, posisi, metadata, dan kolom waktu khusus. SRT yang dihasilkan tetap dapat diedit sebagai teks subtitle biasa, tetapi mengonversinya kembali umumnya memerlukan pembuatan ulang informasi yang telah dihapus.