Beranda → Blog → Subtitle SRT dan VTT otomatis dari video dan webinar
Subtitle SRT dan VTT otomatis dari video dan webinar
Subtitle menaikkan durasi tonton, membuat konten bisa diikuti tanpa suara, dan membantu mesin pencari memahami isi video. Mengetiknya manual memakan waktu — berikut cara mendapatkan berkas SRT dan VTT yang sudah jadi secara otomatis.
Beda SRT dan VTT
Keduanya adalah teks bertanda waktu, dan perbedaannya kecil:
- SRT paling luas dipakai: YouTube, program penyuntingan, dan hampir semua pemutar memahaminya. Waktunya ditulis dengan koma:
00:00:12,500. - VTT (WebVTT) adalah standar untuk web dan pemutar HTML5, mendukung gaya dan posisi. Waktunya ditulis dengan titik:
00:00:12.500.
Aturannya sederhana: untuk diunggah ke platform video pakai SRT, untuk pemutar di situs Anda sendiri pakai VTT.
Langkah 1. Ambil audionya dari video
Tidak perlu mengirim berkas video utuh — cukup jalur audionya, yang puluhan kali lebih kecil. Satu perintah sudah cukup:
ffmpeg -i webinar.mp4 -vn -acodec libmp3lame -q:a 5 webinar.mp3
Webinar satu jam setelah konversi ini berukuran sekitar 25 MB — pas di dalam batas ukuran permintaan.
Langkah 2. Dapatkan subtitle dalam satu permintaan
Formatnya ditentukan parameter response_format — layanan mengembalikan berkas yang sudah jadi, jadi Anda tidak perlu memecah teks menjadi baris sendiri:
from openai import OpenAI
client = OpenAI(base_url="https://voicesscribe.com/v1", api_key="kunci Anda")
with open("webinar.mp3", "rb") as f:
srt = client.audio.transcriptions.create(
model="whisper-1", file=f, response_format="srt",
)
open("webinar.srt", "w", encoding="utf-8").write(srt)
Untuk web, satu kata yang berubah:
vtt = client.audio.transcriptions.create(
model="whisper-1", file=f, response_format="vtt",
)
Lewat terminal sama ringkasnya:
curl https://voicesscribe.com/v1/audio/transcriptions \
-H "Authorization: Bearer kunci Anda" \
-F file=@webinar.mp3 -F model=whisper-1 -F response_format=srt \
-o webinar.srtLangkah 3. Pasang subtitle ke pemutar
Di HTML5 cukup satu baris di dalam tag video:
<video controls src="webinar.mp4">
<track kind="subtitles" src="webinar.vtt" srclang="id" label="Indonesia" default>
</video>
Di platform video, berkas SRT diunggah pada bagian subtitle — teks hasil pengenalan tinggal disunting seperlunya.
Rekaman panjang: cara melewati batas
Kalau rekaman tidak muat dalam 25 MB, potong menjadi beberapa bagian dan gabungkan subtitle dengan menggeser tanda waktunya:
ffmpeg -i panjang.mp3 -f segment -segment_time 1800 -c copy bagian%03d.mp3
Kirim setiap bagian terpisah, lalu saat menggabungkan tambahkan pergeseran potongan ke tanda waktunya. Untuk potongan setengah jam ini hanya beberapa baris kode, dan batas itu berhenti mengganggu.
Cara membuat subtitle lebih enak dibaca
- Berikan istilahnya. Nama produk dan nama pembicara diteruskan lewat
prompt— di subtitle keduanya muncul dengan ejaan yang benar. - Sebutkan bahasanya kalau memang satu:
language="id"menghilangkan galat deteksi yang jarang tapi mengganggu. - Baca ulang hasilnya. Subtitle otomatis menghemat berjam-jam, tetapi perbaikan akhir tanda baca dan istilah lebih baik dilakukan dengan mata.
- Pakai verbose_json kalau Anda ingin aturan pemenggalan baris sendiri: di sana ada segmen dengan waktu mulai dan selesai yang tepat.
Coba dengan rekaman Anda sendiri. Pendaftaran memakan waktu satu menit, dan menit gratisnya cukup untuk menilai kualitasnya.
Ambil kunci API gratisPertanyaan yang sering diajukan
Bisakah berkas video dikirim langsung?
Lebih praktis mengambil jalur audionya: ukurannya puluhan kali lebih kecil dan jauh lebih cepat diunggah. Satu perintah ffmpeg menyelesaikannya.
Apakah subtitle ini cocok untuk YouTube?
Ya, format SRT diterima YouTube dan platform video lain tanpa konversi.
Bagaimana kalau rekamannya lebih dari satu jam?
Potong menjadi bagian 20–30 menit, transkrip masing-masing, lalu gabungkan subtitle dengan menggeser tanda waktunya.
Seberapa tepat tanda waktunya?
Cukup tepat untuk ditonton: baris subtitle sejalan dengan ucapan. Untuk ketepatan per bingkai dalam penyuntingan, subtitle biasanya masih disetel manual.
Apakah subtitle bahasa lain didukung?
Ya, 99 bahasa dikenali dan bahasanya terdeteksi otomatis. Untuk rekaman dwibahasa, lebih baik memproses potongannya terpisah.
Bacaan terkait
- Cara mentranskrip rekaman rapat dan mendapat notulen yang berguna — Ubah rekaman Zoom, Teams, dan Google Meet menjadi teks yang bisa dicari serta notulen terstruktur: di mana berkasnya, cara mentranskrip, dan cara menarik keputusannya.
- Transkripsi podcast: show notes, bab, dan episode yang mudah ditemukan — Cara mentranskrip episode podcast secara otomatis lalu mengubah teksnya menjadi show notes, bab, dan halaman yang benar-benar bisa dibaca mesin pencari. Ada kodenya.
- Cara mengubah rekaman telepon menjadi teks — Panduan langkah demi langkah mengubah rekaman percakapan telepon menjadi teks lewat API dalam hitungan menit. Lengkap dengan contoh Python, C#, dan daftar galat.